Explicação do modo de alocação

1

Eu tenho "falha de alocação de página" informada no meu sistema:

[some_app]: page allocation failure: order:4, mode:0x2040d0

Alguém poderia explicar o que exatamente significa esse modo? Estou certo de que isso é para os seguintes sinalizadores GFP: GFP_NOTRACK | GFP_COMP | GFP_WAIT | GFP_IO | GFP_FS ?

A versão do kernel é 3.10.0-693.21.1.el7.AV1.x86_64 .

    
por sys463 07.06.2018 / 14:38

1 resposta

1

Os sinalizadores parecem estar definidos no arquivo <kernel source directory>/include/linux/gfp.h , e pelo menos no kernel 4.9.105, o modo 0x2040d0 parece mapear para:

GFP_NOTRACK | GFP_COMP | GFP_FS | GFP_IO | GFP_RECLAIMABLE

Mas se eu usar o Google para sinalizar as definições, vejo em algumas fontes o valor 0x10 definido como GFP_WAIT em vez de GFP_RECLAIMABLE, que parece corresponder à sua fonte.

Esta discussão do LWN pode ser uma leitura útil, mas a melhor descrição que posso ver está nos comentários no arquivo include/linux/gfp.h .

Em geral, esses sinalizadores de modo modificam o funcionamento do alocador de páginas.

  • GFP_NOTRACK: evita o acompanhamento com kmemcheck .
  • GFP_COMP: endereço metadados da página composta
  • GFP_FS: indica que o alocador pode chamar o sistema de arquivos de baixo nível para recuperar páginas, se necessário; se isso estiver desmarcado, acho que indicaria que a alocação é para algum código do sistema de arquivos que pode conter bloqueios ... o que pode ser importante ao usar um arquivo de troca, por exemplo.
  • GFP_IO: indica que o alocador pode iniciar a E / S física para recuperar páginas para atender a essa solicitação.
  • GFP_RECLAIMABLE: "[this] é usado para alocações de slab que especificam SLAB_RECLAIM_ACCOUNT e cujas páginas podem ser liberadas por retalhistas". Este sinalizador é aparentemente usado por alocações de memória para sistemas de arquivos. Basicamente, parece significar que existe uma função do kernel (um shrinker) que pode ser chamada para liberar ou minimizar esta alocação, se necessário.
por 07.06.2018 / 15:38

Tags