É possivél para uma arquitertura de MMU/TLB dada realizar um andamento da tabela hardware hardware table wolk dos kernel page tables, portanto o TLV flush é feito depois que os page tables terem sido mudados para que depois o hardware só pode carregar a cópia nova da informação de page table para o TLB void flush – cache – all (void); void flush – tlb – all (void).
Essas rotinas são para notificar o architecture specific cade que mapeamento do espaço do endereço kernel uma mudança foi feita ao kernel address space mappings, que significa que os mapeamentos de todos processos foram efetivamente mudados.
4.7.2 – Implementação da Memória Cache
Uma implementação deve:
• Eliminar todos os entradas do cache que são válidas neste momento quando flush-cache-all é invocado isto refere-se
ao virtual cache architecture, se a cache is write-back, essa rotina vai submeter o dado da cache para memoria antes
do que invalidar cada ingresso. Para caches físicos, não é necessário realizar uma ação já que mapeamento físico não
tem ponto de apoio no address space translations.
• Para flush-tlb-all todos TLB mappings para o kernel address space devem ser feito consitente com os OS page tables de
qualquer maneira. Norte que com um arquitetura que possua a nação
• Para flush-tlb-mm, o tlb/mmu hardware é para estar localizado num estado onde isto vai ver (agora corrente) kernal page
table entradas para o espaço de endereço pelo mm-strust.
flush_cache_range(struct mm_struct *mm, unsigned long start, unsigned long end);
flush_tlb_range(struct mm_struct *mm, unsigned long start, unsigned long end);
Uma chance para uma particular range do user address no adelrass space descrito pelo mm-struct passada esta ocorrendo. As duas notas acima para FLUSH – mm( ) relecianando a mm-struct passada aplicam-se aqui também.
• Para Flush-cache-range num virtualmente cached system, todas entradess cache que são nolidas pena a range partem
para o fim no address space descrito pelo mm-struect são para ser invalidadas.
• Para Flush-tlb-range, qualquer ação necessária para causar o MMUITLB hardware não conter traduções estragados são
para ser realizados. Isso significa que quaiquer traduções estão no Kernel page tables no range start para acabar no
address space descrito pelo mm-struet são para que a administração da memoria hardware sera deste ponto avançado,
por qualquer significado.
void flush_cache_page(struct vm_area_struct *vma, unsigned long address);
void flush_tlb_page(struct vm_area_struct *vma, unsigned long address);
Uma chance para uma única página no address dentro do usar space para o address space descrito pelo um area-struet passado esta ocorrendo.