函数源码 |
Source File:arch\x86\kernel\cpu\resctrl\rdtgroup.c |
Create Date:2022-07-27 09:11:01 |
首页 | Copyright©Brick |
514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 | static void move_myself( struct callback_head *head) { struct task_move_callback *callback; struct rdtgroup *rdtgrp; callback = container_of(head, struct task_move_callback, work); rdtgrp = callback->rdtgrp; /* * If resource group was deleted before this task work callback * was invoked, then assign the task to root group and free the * resource group. */ if (atomic_dec_and_test(&rdtgrp->waitcount) && (rdtgrp->flags & RDT_DELETED)) { current->closid = 0; current->rmid = 0; kfree(rdtgrp); } preempt_disable(); /* update PQR_ASSOC MSR to make resource group go into effect */ resctrl_sched_in(); preempt_enable(); kfree(callback); } |