Messages in this thread | | | Date | Mon, 9 Dec 2013 16:59:56 +0000 | From | Christoph Lameter <> | Subject | Re: [PATCH 14/15] mm: fix TLB flush race between migration, and change_protection_range |
| |
On Mon, 9 Dec 2013, Mel Gorman wrote:
> I looked at what would be required to implement migration entry support for > PMDs. It's major surgery because we do not have something like swap-like > entries to use at that page table level. It looked like it would require > inserting a fake entry (easiest would be to point to a global page) that > all page table walkers would recognise, blocking on it and teaching every > page table walker to get it right.
Well something needs to cause a fault and stop accesses to the page.
> One can't do something simple like clear the entry out because then the > no page handlers for GUP or faults insert the zero page behind and it goes > to hell and we can't hold the page table lock across the migration copy.
Right you need to have special migration entry there. Same as for regular sized pages.
> The patch flushes the TLBs as it is and future accesses are help up in the > NUMA hinting fault handler. It's functionally similar to having a migration > entry albeit it is special cased to handle just automatic NUMA balancing
Hmmm... Hopefully that will work. I'd rather see a clean extension of what we use for regular pages. If we add functionality to huge pages to operate more like regular ones then this could be an issue.
| |