Re: [PATCH] virtio-blk: Convert QEMUBH callback to "bitops.h" API

2021-05-06 Thread Philippe Mathieu-Daudé
On 5/6/21 9:42 PM, Philippe Mathieu-Daudé wrote: > On 5/6/21 8:22 PM, Richard Henderson wrote: >> On 5/6/21 8:54 AM, Philippe Mathieu-Daudé wrote: >>>   static void notify_guest_bh(void *opaque) >>>   { >>>   VirtIOBlockDataPlane *s = opaque; >>> -    unsigned nvqs = s->conf->num_queues; >>> - 

Re: [PATCH] virtio-blk: Convert QEMUBH callback to "bitops.h" API

2021-05-06 Thread Philippe Mathieu-Daudé
On 5/6/21 8:22 PM, Richard Henderson wrote: > On 5/6/21 8:54 AM, Philippe Mathieu-Daudé wrote: >>   static void notify_guest_bh(void *opaque) >>   { >>   VirtIOBlockDataPlane *s = opaque; >> -    unsigned nvqs = s->conf->num_queues; >> -    unsigned long bitmap[BITS_TO_LONGS(nvqs)]; >> -    uns

Re: [PATCH] virtio-blk: Convert QEMUBH callback to "bitops.h" API

2021-05-06 Thread Richard Henderson
On 5/6/21 8:54 AM, Philippe Mathieu-Daudé wrote: static void notify_guest_bh(void *opaque) { VirtIOBlockDataPlane *s = opaque; -unsigned nvqs = s->conf->num_queues; -unsigned long bitmap[BITS_TO_LONGS(nvqs)]; -unsigned j; -memcpy(bitmap, s->batch_notify_vqs, sizeof(bi

[PATCH] virtio-blk: Convert QEMUBH callback to "bitops.h" API

2021-05-06 Thread Philippe Mathieu-Daudé
By directly using test_and_clear_bit() from the "bitops.h" API, we can remove the bitmap[] variable-length array copy on the stack and the complex manual bit testing/clearing logic. Suggested-by: Stefan Hajnoczi Signed-off-by: Philippe Mathieu-Daudé --- hw/block/dataplane/virtio-blk.c | 15 ++--