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: > > 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! _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization