qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v19 3/7] xbitmap: add more operations


From: Wei Wang
Subject: Re: [Qemu-devel] [PATCH v19 3/7] xbitmap: add more operations
Date: Sat, 16 Dec 2017 18:12:35 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0

On 12/16/2017 02:42 AM, Matthew Wilcox wrote:
On Tue, Dec 12, 2017 at 07:55:55PM +0800, Wei Wang wrote:
+int xb_preload_and_set_bit(struct xb *xb, unsigned long bit, gfp_t gfp);
I'm struggling to understand when one would use this.  The xb_ API
requires you to handle your own locking.  But specifying GFP flags
here implies you can sleep.  So ... um ... there's no locking?

In the regular use cases, people would do xb_preload() before taking the lock, and the xb_set/clear within the lock.

In the virtio-balloon usage, we have a large number of bits to set with the balloon_lock being held (we're not unlocking for each bit), so we used the above wrapper to do preload and set within the balloon_lock, and passed in GFP_NOWAIT to avoid sleeping. Probably we can change to put this wrapper implementation to virtio-balloon, since it would not be useful for the regular cases.


Best,
Wei



reply via email to

[Prev in Thread] Current Thread [Next in Thread]