Significado de PF_VCPU e PF_WQ_WORKER

Significado de PF_VCPU e PF_WQ_WORKER

você sabe qual o significado das constantes é definido em linux/sched.h:

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

O que significa quando um processo tem ambos os sinalizadores definidos (o nono parâmetro em /proc/[pid]/statis 0x30ou decimal 48)

Só achei comentários curtos depois das definições, mas não consigo imaginar nenhum sentido.

Responder1

Esta parte explica o propósito do PF_WQ_WORKER.

excerto

A fila de trabalho gerenciada por simultaneidade precisa saber quando os trabalhadores vão dormir e acordar e, quando um trabalhador adormece, ser capaz de acordar outro trabalhador para manter a simultaneidade adequada. Este patch introduz PF_WQ_WORKERa identificação de trabalhadores da fila de trabalho e adiciona os dois ganchos a seguir.

  • wq_worker_waking_up(): chamado quando um trabalhador é acordado.

  • wq_worker_sleeping(): chamado quando um trabalhador vai dormir e pode retornar um ponteiro para uma tarefa local que deve ser despertada. A tarefa retornada é ativada usando try_to_wake_up_local()o que é simplificado ttwue chamado rq locke só pode ativar tarefas locais.

Ambos os ganchos estão atualmente definidos como noopem kernel/workqueue_sched.h. A implementação posterior cmwqirá substituí-los pela implementação adequada.

Esses ganchos são codificados, pois sempre estarão habilitados.

Fonte: [PATCH 4/4] sched: adicionar ganchos para workqueue

Responder2

OPF_VCPUbandeira está colocada emguest_enterque é chamado porkvm_guest_enterque é chamado emkvm_arch_vcpu_ioctl_run. Pelo que entendi, é uma anotação em um processo que está sendo executado dentro de uma máquina virtual KVM; no que diz respeito ao escalonador host, o processo está ativo sob a forma de sua máquina virtual. Eraintroduzidopara rastrear adequadamente o gasto em um processo em execução dentro de uma VM versus o tempo gasto pela própria VM.

informação relacionada