函数源码

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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);
}