question on modifying pte entries
Chris Friesen
cfriesen at nortel.com
Thu Nov 1 06:45:07 EST 2007
Hi all,
We've got some kernel code that monitors which pages have been dirtied
by an application.
The pages are locked in memory, and the system has no swap. Initially
we mark the pages clean using ptep_clear_flush_dirty(), then when
requested by the app we scanning through the pages and check the dirty
bit using pte_dirty(). If it's dirty we store the address and then mark
it clean using the same function as above. The above is all done while
holding both mm->mmap_sem and mm->page_table_lock.
This worked fine in 2.6.10 but now in 2.6.14 it's giving us problems.
Periodically we'll get a page that we know has been dirtied, but it
doesn't get detected as such. It appears that once this occurs, that
page will never again be detected as dirty.
Does anyone have any ideas what may be happening? Were there any
changes in the page table area other than moving to 4-level mappings?
Anyone aware of any missing tlb flushes that were fixed later?
Thanks,
Chris
More information about the Linuxppc-dev
mailing list