Re: [PATCH v8 1/5] mm: introduce a common interface for balloon pages mobility
From: Rafael Aquini <hidden>
Date: 2012-08-23 17:28:45
On Thu, Aug 23, 2012 at 07:25:05PM +0300, Michael S. Tsirkin wrote:
On Thu, Aug 23, 2012 at 04:53:28PM +0300, Michael S. Tsirkin wrote:quoted
Basically it was very simple: we assumed page->lru was never touched for an allocated page, so it's safe to use it for internal book-keeping by the driver. Now, this is not the case anymore, you add some logic in mm/ that might or might not touch page->lru depending on things like reference count.Another thought: would the issue go away if balloon used page->private to link pages instead of LRU? mm core could keep a reference on page to avoid it being used while mm handles it (maybe it does already?).
I don't think so. That would be a lot more trikier and complex, IMHO.
If we do this, will not the only change to balloon be to tell mm that it can use compaction for these pages when it allocates the page: using some GPF flag or a new API?
What about keep a conter at virtio_balloon structure on how much pages are isolated from balloon's list and check it at leak time? if the counter gets > 0 than we can safely put leak_balloon() to wait until balloon page list gets completely refilled. I guess that is simple to get accomplished and potentially addresses all your concerns on this issue. Cheers!