On Thu, Aug 23, 2012 at 03:34:32PM +0300, Michael S. Tsirkin wrote: > > So, nothing has changed here. > > Yes, your patch does change things: > leak_balloon now might return without freeing any pages. > In that case we will not be making any progress, and just > spin, pinning CPU. That's a transitory condition, that migh happen if leak_balloon() takes place when compaction, or migration are under their way and it might only affects the module unload case. Also it won't pin CPU because it keeps releasing the locks it grabs, as it loops. So, we are locubrating about rarities, IMHO. > > > > > > > Just as before, same thing here. If you leaked less than required, balloon() > > > > will keep calling leak_balloon() until the balloon target is reached. This > > > > scheme was working before, and it will keep working after this patch. > > > > > > > > > > IIUC we never hit this path before. > > > > > So, how does balloon() works then? > > > > It gets a request to leak a given number of pages > and executes it, then tells host that it is done. > It never needs to spin busy-waiting on a CPU for this. > So, what this patch changes for the ordinary leak_balloon() case? > Well busy wait pinning CPU is ugly. Instead we should block thread and > wake it up when done. I don't mind how we fix it specifically. > I already told you that we do not do that by any mean introduced by this patch. You're just being stubborn here. If those bits are broken, they were already broken before I did come up with this proposal. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>