Intereting Posts
Как получить список имен общих библиотек в Linux? openssh: если ssh добавляет ключи к агенту по мере необходимости Возьмите два столбца в файле с разделителями табуляции и объедините их в один Сила, чтобы забыть записи Всегда отвечайте Да, чтобы заменить пакет Arch Linux Должен ли я дать своему пользователю доступ к / dev / mapper / control? Какую оболочку по умолчанию использовать для пользователя SSH, ограниченного одной командой Как / Почему кошка записывает загрузочный ISO на устройство GRUB-загрузчик не работает с Kali Linux Dual Boot файловая система uid и gid в Linux Модуль MIDI Gadget (g_midi) с iPad на малине Pi Могу ли я калибровать цветной монитор Dell U2413 с широким диапазоном в Linux? Ошибка NT_STATUS_CONNECTION_REFUSED при доступе к гостевой системе Windows 7 с хоста Centos «Tar (дочерний элемент): не удается подключиться к https: разрешить сбой» при установке Bitmask Сделать sudo запрос пароля

Значение PF_VCPU и PF_WQ_WORKER

знаете ли вы, что значение констант определено в linux/sched.h :

  #define PF_VCPU 0x00000010 /* I'm a virtual CPU */ #define PF_WQ_WORKER 0x00000020 /* I'm a workqueue worker */ 

Что это значит, когда в процессе установлены оба флага (девятый параметр в /proc/[pid]/stat равен 0x30 или десятичному 48 )

Я только обнаружил, что короткие комментарии после определения, но я не могу представить никакого смысла.

Этот бит объясняет цель PF_WQ_WORKER .

выдержка

Параллелизм, управляемый параллелизмом, должен знать, когда работники будут спать и просыпаться, а когда работник ложится спать, сможет разбудить другого работника для поддержания адекватного параллелизма. Этот патч вводит PF_WQ_WORKER для определения рабочих мест и добавляет следующие два крючка.

  • wq_worker_waking_up() : wq_worker_waking_up() когда рабочий проснулся.

  • wq_worker_sleeping() : wq_worker_sleeping() когда рабочий собирается спать и может возвращать указатель на локальную задачу, которую нужно разбудить. try_to_wake_up_local() задача try_to_wake_up_local() с помощью try_to_wake_up_local() которая упрощена ttwu которая вызывается под rq lock и может только ttwu локальные задачи.

Оба крючка в настоящее время определяются как noop в kernel/workqueue_sched.h . Позже реализация cmwq заменит их на правильную реализацию.

Эти крючки жестко закодированы, поскольку они всегда будут включены.

Источник: [PATCH 4/4] расписание: добавить крючки для работы

Флаг PF_VCPU устанавливается в guest_enter который вызывается kvm_guest_enter который вызывается в kvm_arch_vcpu_ioctl_run . Насколько я понимаю, это аннотация для процесса, который выполняется внутри виртуальной машины KVM; что касается планировщика хоста, процесс активен под видом его виртуальной машины. Было введено правильное отслеживание проведенного в процессе, выполняющемся внутри VM, и времени, затраченного самой VM.