Elenca tutti i file presenti nella cache


8

Questa domanda risponde alla domanda su come trovare ciò che fa parte della cache. Tuttavia, fincorenell'eseguibile devi passare il nome file per verificare se fa parte della cache.

C'è uno strumento o un metodo per trovare tutte le voci che fanno parte della memoria cache senza passare i nomi dei file.

PS: lo stiamo eseguendo in un sistema incorporato, e eseguire un ciclo for e passare tutti i file a fincorese stesso è un processo che richiede più tempo e memoria. Quindi, sto cercando altri metodi.

Risposte:


6

Non conosco alcun luogo in cui il kernel espone i nomi dei file associati ai blocchi che ha memorizzato nella cache. Secondo questa risposta

https://stackoverflow.com/a/4941371

Il meglio che potresti probabilmente fare anche con un modulo kernel personalizzato sarebbe quello di ottenere un elenco di inode e dispositivi. Da lì probabilmente avresti ancora bisogno di camminare sul filesystem cercando quei file.

Potresti quindi chiedere "Ma come fa a fincoresapere dei file che ho elencato?" Oppure potresti non farlo, ma ho trovato il metodo abbastanza intelligente, quindi eccolo qui. Lo fincorestrumento funziona nel modo seguente:

La mincorechiamata di sistema indica se le pagine di memoria indicate sono nella memoria principale (ad esempio, se non si accedesse non causerebbe un errore di pagina). Poiché mmappigramente carica il file mappato e non abbiamo ancora letto alcuna regione mappata, qualsiasi pagina che non causerebbe un errore di pagina deve essere parte della nostra cache.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.