Ich versuche, in Android 5.1.1 mit Kernel 3.4 eine schmutzige Seite in Seiten-Cache zu verfolgen. Mein Gerät ist Nexus 7 2013 mit Prozessor Qualcomm Snapdragon S4 Pro APQ8064.Wie kann ich verfolgen, wenn memcpy() in Linux Kernel aufgerufen wird?
Ich weiß, dass ein Prozess kann (1) auf Seiten-Cache aus seinem Puffer schreiben oder (2) es kann Mmap verwenden Seiten-Cache direkt mit seinem virtuellen Adressraum abzubilden. In (1) wird eine Funktion wie generic_perform_write aufgerufen werden. Aber in (2) verwendet der Prozess memcpy(), um in den Seitencache zu schreiben?
Darüber hinaus gibt es eine Menge Definition von „memcpy“ im Kernel-Quellcode, die wirklich verwirrend ist. Wie kann ich verfolgen, wenn ein Prozess mit Mmap in den Seitencache schreibt, anstatt seinen Puffer zu verwenden. Und wie kann ich viele im Kernel-Quellcode definierte Memcpys klassifizieren?
Eine weitere Frage, wenn ich die Writeback-Funktion betrachte, fand ich eine Datei, die zurück auf die Festplatte geschrieben wird, hat Inode-Nummer als 0. Ich bin auch damit wirklich verwirrt. Ich denke, Inode-Nummer sollte bei 1 beginnen. Vielen Dank für jede Hilfe.
Danke. Aber ich fand schließlich, dass diese Kopie in "iov_iter_copy_from_user_atomic" gemacht werden sollte. Aber ich bin immer noch verwirrt, warum ich Inode-Nummer als 0 bekomme. –