[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4AF97A5E.1070801@codemonkey.ws>
Date: Tue, 10 Nov 2009 08:36:14 -0600
From: Anthony Liguori <anthony@...emonkey.ws>
To: Rusty Russell <rusty@...tcorp.com.au>
CC: Adam Litke <agl@...ibm.com>, linux-kernel@...r.kernel.org,
Anthony Liguori <aliguori@...ibm.com>,
virtualization@...ts.linux-foundation.org, qemu-devel@...gnu.org,
Avi Kivity <avi@...hat.com>
Subject: Re: [Qemu-devel] Re: virtio: Add memory statistics reporting to the
balloon driver
Rusty Russell wrote:
> On Tue, 10 Nov 2009 03:02:06 am Adam Litke wrote:
>
>> A simpler approach is to collect memory statistics in the virtio
>> balloon driver and communicate them to the host via the device config space.
>>
>
> There are two issues I see with this. First, there's an atomicity problem
> since you can't tell when the stats are consistent.
Actually, config writes always require notification from the guest to
the host. This means the host knows when they config space is changed
so atomicity isn't a problem.
In fact, if it were a problem, then the balloon driver would be
fundamentally broken because target and actual are stored in the config
space.
If you recall, we had this discussion originally wrt the balloon driver :-)
> Second, polling is
> ugly.
>
As opposed to? The guest could set a timer and update the values
periodically but that's even uglier because then the host cannot
determine the update granularity.
> A stats vq might solve this more cleanly?
>
actual and target are both really just stats. Had we implemented those
with a vq, I'd be inclined to agree with you but since they're
implemented in the config space, it seems natural to extend the config
space with other stats.
Regards,
Anthony Liguori
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists