Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

306
Vistas
Dividir la página enorme del núcleo (THP) devuelta por alloc_pages()

Estoy buscando una manera de dividir las asignaciones de página enorme (2MiB) del kernel en las entradas de tabla de página más pequeñas (4KiB). Hasta ahora, solo encontré la función set_memory_4k , que solo funciona durante la etapa inicial de arranque (la variable global early_boot_irqs_disabled debe ser verdadera). Soy un poco reacio a deshabilitar las interrupciones para llamar a esta función, pero no conozco ninguna otra forma de dividir una tabla de páginas del kernel (no del usuario).

El objetivo es mapear páginas individuales de 4 KB con diferentes permisos. Sin embargo, las páginas devueltas a través alloc_pages() suelen formar parte de asignaciones de 2 MB. No tengo la opción de usar ningún otro asignador ( vmalloc , kmalloc , memblock , ...), por lo que debo usar la función alloc_pages() o cualquiera de sus variantes.

Información adicional:

Soy consciente de la función existente split_huge_page . Desafortunadamente, este enfoque no funciona para las struct page que representan la memoria del kernel. La razón de esto (según LWN ) es que el campo page->mapping , que se verifica antes de la división, no debe ser NULL . Esto no se aplica a las páginas del kernel, por lo que este enfoque también parece funcionar solo para las páginas del espacio del usuario.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No estoy seguro de entender su pregunta con claridad. Veo que lo que necesitas es split_huge_pmd no split_huge_page ?

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda