L’ingegnere software di Google, Pasha Tatashin, ha recentemente proposto di aggiungere al kernel Linux lo strumento “Page Detective”. Si tratta un nuovo tool per il debugging del kernel capace di fornire una maggiore comprensione sull’utilizzo e la mappatura delle pagine di memoria fisica. Il codice iniziale di Page Detective è stato pubblicato nel modulo “Richiesta di commenti” e utilizza l’interfaccia Linux DebugFS per fornire informazioni sugli indirizzi virtuali e fisici. Le informazioni fornite dallo strumento possono aiutare sviluppatori e amministratori di server a comprendere l’utilizzo delle pagine di memoria da parte del sistema. Ciò è utile, ad esempio, per diagnosticare problemi di memoria, errori di checksum durante la migrazione live, guasti nei journal dei file system, errori di segmentazione e altri possibili casi di corruzione della memoria.
Page Detective: come funziona lo strumento di debug su Linux
Le patch RFC per Page Detective sono state pubblicate sulla mailing list del kernel Linux. Come riportato nel documento: “Spesso si sa che una particolare pagina è corrotta, ma è difficile estrarre maggiori informazioni su di essa dal sistema live… Page Detective aiuta a estrarre più informazioni dal kernel, per permettere agli sviluppatori di individuare la causa principale del problema associato. Funziona tramite l’interfaccia debugfs di Linux, con due file: ‘virt’ e ‘phys’. Il primo prende un indirizzo virtuale e un PID e restituisce informazioni sulla pagina corrispondente. Il secondo prende un indirizzo fisico e restituisce informazioni su quella pagina. L’output viene presentato tramite messaggi di log del kernel (accessibili con dmesg) e include informazioni come: conteggio dei riferimenti della pagina, mappatura, flag e cgroup di memoria. Mostra anche se la pagina è mappata nella tabella delle pagine del kernel e, in tal caso, quante volte“.
L’idea alla base di Page Detective è molto interessante, ma non è ancora chiaro dove porterà tale lavoro. Infine, bisognerà anche capire se, nella sua forma attuale, tale strumento susciterà l’interesse di altri stakeholder al punto da integrarlo nel kernel Linux principale.