Thread (21 messages) 21 messages, 5 authors, 2021-06-16

Re: [PATCH 1/3] virtio: add virtioqueue_more_used()

From: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2021-05-25 08:48:27
Also in: linux-block, lkml

On Tue, May 25, 2021 at 10:23:39AM +0800, Jason Wang wrote:
在 2021/5/20 下午10:13, Stefan Hajnoczi 写道:
quoted
Add an API to check whether there are pending used buffers. There is
already a similar API called virtqueue_poll() but it only works together
with virtqueue_enable_cb_prepare(). The patches that follow add blk-mq
->poll() support to virtio_blk and they need to check for used buffers
without re-enabling virtqueue callbacks, so introduce an API for it.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Typo in the subject.
Thanks, will fix.
quoted
+/**
+ * virtqueue_more_used - check if there are used buffers pending
+ * @_vq: the struct virtqueue we're talking about.
+ *
+ * Returns true if there are used buffers, false otherwise. May be called at
+ * the same time as other virtqueue operations, but actually calling
+ * virtqueue_get_buf() requires serialization so be mindful of the race between
+ * calling virtqueue_more_used() and virtqueue_get_buf().
+ */
+bool virtqueue_more_used(const struct virtqueue *_vq)
+{
+	struct vring_virtqueue *vq = to_vvq(_vq);
+
+	return more_used(vq);
+}
+EXPORT_SYMBOL_GPL(virtqueue_more_used);

It's worth to mention that the function is not serialized (no barriers).
Thanks, will fix.

Stefan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help