Messages in this thread | | | Date | Sun, 21 Oct 2012 10:39:28 +0800 | From | Ni zhan Chen <> | Subject | Re: question on NUMA page migration |
| |
On 10/19/2012 11:53 PM, Rik van Riel wrote: > Hi Andrea, Peter, > > I have a question on page refcounting in your NUMA > page migration code. > > In Peter's case, I wonder why you introduce a new > MIGRATE_FAULT migration mode. If the normal page > migration / compaction logic can do without taking > an extra reference count, why does your code need it?
Hi Rik van Riel,
This is which part of codes? Why I can't find MIGRATE_FAULT in latest v3.7-rc2?
Regards, Chen
> > In Andrea's case, we have a comment suggesting an > extra refcount is needed, immediately followed by > a put_page: > > /* > * Pin the head subpage at least until the first > * __isolate_lru_page succeeds (__isolate_lru_page pins it > * again when it succeeds). If we unpin before > * __isolate_lru_page successd, the page could be freed and > * reallocated out from under us. Thus our previous checks on > * the page, and the split_huge_page, would be worthless. > * > * We really only need to do this if "ret > 0" but it doesn't > * hurt to do it unconditionally as nobody can reference > * "page" anymore after this and so we can avoid an "if (ret > > * 0)" branch here. > */ > put_page(page); > > This also confuses me. > > If we do not need the extra refcount (and I do not > understand why NUMA migrate-on-fault needs one more > refcount than normal page migration), we can get > rid of the MIGRATE_FAULT mode. > > If we do need the extra refcount, why is normal > page migration safe? :) >
| |