Je veux obtenir une liste de tous les PFN qui appartiennent à la pagecache. Une façon est de parcourir chaque fichier/inode ouvert et obtenir les pages address_space
. Existe-t-il un moyen plus simple? Impossible de trouver une grande liste de cache-pages. Y at-il une telle liste/API que je peux utiliser?Liste de cache de pages Linux
0
A
Répondre
0
oui, quelque chose comme ce que vous avez dit - le pointeur adresse_space est appelé i_mapping pour un inode.
Ainsi, par exemple, à l'intérieur fs/drop_cache.c est une fonction qui énumèrent tous les pagecache pour un superbloc:
static void drop_pagecache_sb(struct super_block *sb, void *unused)
{
struct inode *inode, *toput_inode = NULL;
spin_lock(&inode_sb_list_lock);
list_for_each_entry(inode, &sb->s_inodes, i_sb_list) {
spin_lock(&inode->i_lock);
if ((inode->i_state & (I_FREEING|I_WILL_FREE|I_NEW)) ||
(inode->i_mapping->nrpages == 0)) {
spin_unlock(&inode->i_lock);
continue;
}
__iget(inode);
spin_unlock(&inode->i_lock);
spin_unlock(&inode_sb_list_lock);
invalidate_mapping_pages(inode->i_mapping, 0, -1);
iput(toput_inode);
toput_inode = inode;
spin_lock(&inode_sb_list_lock);
}
spin_unlock(&inode_sb_list_lock);
iput(toput_inode);
}
Ainsi, au lieu d'appeler « invalidate_mapping_pages() » utilisera le pointeur de i_mapping d'énumérer tous le composant pagecache.
En ce qui concerne les blocs enumerate, et donc l'identification PFN de la page, u pouvez suivre cette ici:
http://www.makelinux.net/books/ulk3/understandlk-CHP-15-SECT-2#understandlk-CHP-15-SECT-2.6
(15.2.6. Recherche blocs dans la cache de page).
Questions connexes
- 1. Cache HTML5 - Récupérer la liste des pages mises en cache
- 2. Tables de pages sous Linux
- 3. Linux cache clair
- 4. Concepteur de pages ASP.NET pour Linux
- 5. Cache de tampon Linux pour DVD/FUSE?
- 6. pages reload Django sans cache
- 7. Liste des pages de wikipedia
- 8. Pages disparaissant du cache asp.net
- 9. NServiceBus: liste d'abonné de cache?
- 10. Noyau Linux - Rafraîchissement du cache Denison VFS
- 11. Mise en cache de 99% de mes pages MVC3
- 12. Noyau Linux: Où résident les tables de pages de processus?
- 13. Effet de cache de tampon Linux sur IO écrit?
- 14. Mise en cache des pages dynamiques IE9
- 15. Kohana cache module sur les pages dynamiques
- 16. pages PHP Explicitement cache-côté client
- 17. Mise en cache de pages liées dans ASP.NET
- 18. Mise en cache de pages dynamiques en .net
- 19. Empêcher les pages html de parcourir la mise en cache
- 20. Incohérence du cache de pages dans les navigateurs
- 21. Panneau de navigation MARCHE/ARRÊT (cache inter-pages)
- 22. Problème de mise en cache des pages Web asp.net
- 23. Créer une liste de pages dans Orchard
- 24. Pages de liste Wordpress avec des enfants
- 25. liste ordonnée à l'aide de pages vues
- 26. Liste de pages multiples sur SharePoint
- 27. Liste en cache Python
- 28. Déterminez le contenu du cache Linux
- 29. Comment supprimer la liste de cache
- 30. Linux SLAB_CTOR_VERIFY et cache non déclaré