On 04/06/2010 09:25 PM, Jeremy Fitzhardinge wrote:On 04/06/2010 09:32 AM, Avi Kivity wrote:Yeah. If we wanted commonality, we could make a balloon_core.c that contains the common code. IMO that's premature, but perhaps there's some meat there (like suspend/resume support and /proc//sys interface).
I think it would be useful to have common:
1. User and kernel mode ABIs for controlling ballooning. It assumes
that the different balloon implementations are sufficiently
similar in semantics. (Once there's a kernel ABI, adding a
common user ABI is trivial.)
2. Policy driving the ballooning driver, at least from the guest
side. That is, some good metrics from the vm subsystem about
memory pressure (both positive and negative), and something to
turn those metrics into requests to the balloon driver.
1) is not a huge amount of code, but something consistent would be nice. 2) is something we've been missing and is a bit of an open question/research project anyway.
3) Code that attempts to reclaim 2MB pages when possible