Como lidar com uma página excepcional ao alocar páginas de cache contíguas no Linux

3

Eu tenho um código de módulo do kernel que aloca páginas de cache contíguas. Eu uso radix_tree_for_each_contig (). Aqui está o snippet parcial do código.

radix_tree_for_each_contig(slot, tree_root, iter, index) {
struct page *page;
page = radix_tree_deref_slot(slot);
if (unlikely(!page)) 
     continue;
if (radix_tree_exceptional_entry(page))

Neste código acima, eu procuro por exception_entry após radix_tree_deref_slot (). No kernel mais recente (4.x), o radix_tree_exceptional_entry () retorna diferente de zero onde o mesmo código no kernel 3.13.x mais antigo fornece zero.

Então, minha pergunta é como lidar com exception_entry ao alocar páginas contíguas no cache?

    
por stev 04.05.2017 / 06:39

0 respostas