From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: virtio-fs@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Virtio-fs] [PATCH 1/5] virtiofsd: skip unnecessary vu_queue_get_avail_bytes()
Date: Wed, 31 Jul 2019 17:50:46 +0100 [thread overview]
Message-ID: <20190731165046.GI3203@work-vm> (raw)
In-Reply-To: <20190726091103.23503-2-stefanha@redhat.com>
* Stefan Hajnoczi (stefanha@redhat.com) wrote:
> When debug output is disabled there is no need to calculate the number
> of in/out bytes available.
>
> There is also no need to skip a request if there are 0 out bytes. The
> request parsing code already handles invalid requests.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Thanks, I've squashed this in to existing commits.
Dave
> ---
> contrib/virtiofsd/fuse_virtio.c | 13 +++++--------
> 1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/contrib/virtiofsd/fuse_virtio.c b/contrib/virtiofsd/fuse_virtio.c
> index 083e4fc317..d543c6d30f 100644
> --- a/contrib/virtiofsd/fuse_virtio.c
> +++ b/contrib/virtiofsd/fuse_virtio.c
> @@ -507,18 +507,16 @@ static void *fv_queue_thread(void *opaque)
> ret = pthread_rwlock_rdlock(&qi->virtio_dev->vu_dispatch_rwlock);
> assert(ret == 0); /* there is no possible error case */
>
> - /* out is from guest, in is too guest */
> - unsigned int in_bytes, out_bytes;
> - vu_queue_get_avail_bytes(dev, q, &in_bytes, &out_bytes, ~0, ~0);
> + if (se->debug) {
> + /* out is from guest, in is too guest */
> + unsigned int in_bytes, out_bytes;
> + vu_queue_get_avail_bytes(dev, q, &in_bytes, &out_bytes, ~0, ~0);
>
> - if (se->debug)
> fuse_debug("%s: Queue %d gave evalue: %zx available: in: %u out: %u\n",
> __func__, qi->qidx, (size_t)evalue, in_bytes,
> out_bytes);
> -
> - if (!out_bytes) {
> - goto next;
> }
> +
> while (1) {
> bool allocated_bufv = false;
> struct fuse_bufvec bufv;
> @@ -708,7 +706,6 @@ static void *fv_queue_thread(void *opaque)
> elem = NULL;
> }
>
> -next:
> pthread_rwlock_unlock(&qi->virtio_dev->vu_dispatch_rwlock);
> }
> pthread_mutex_destroy(&ch.lock);
> --
> 2.21.0
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
WARNING: multiple messages have this Message-ID (diff)
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: virtio-fs@redhat.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 1/5] virtiofsd: skip unnecessary vu_queue_get_avail_bytes()
Date: Wed, 31 Jul 2019 17:50:46 +0100 [thread overview]
Message-ID: <20190731165046.GI3203@work-vm> (raw)
In-Reply-To: <20190726091103.23503-2-stefanha@redhat.com>
* Stefan Hajnoczi (stefanha@redhat.com) wrote:
> When debug output is disabled there is no need to calculate the number
> of in/out bytes available.
>
> There is also no need to skip a request if there are 0 out bytes. The
> request parsing code already handles invalid requests.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Thanks, I've squashed this in to existing commits.
Dave
> ---
> contrib/virtiofsd/fuse_virtio.c | 13 +++++--------
> 1 file changed, 5 insertions(+), 8 deletions(-)
>
> diff --git a/contrib/virtiofsd/fuse_virtio.c b/contrib/virtiofsd/fuse_virtio.c
> index 083e4fc317..d543c6d30f 100644
> --- a/contrib/virtiofsd/fuse_virtio.c
> +++ b/contrib/virtiofsd/fuse_virtio.c
> @@ -507,18 +507,16 @@ static void *fv_queue_thread(void *opaque)
> ret = pthread_rwlock_rdlock(&qi->virtio_dev->vu_dispatch_rwlock);
> assert(ret == 0); /* there is no possible error case */
>
> - /* out is from guest, in is too guest */
> - unsigned int in_bytes, out_bytes;
> - vu_queue_get_avail_bytes(dev, q, &in_bytes, &out_bytes, ~0, ~0);
> + if (se->debug) {
> + /* out is from guest, in is too guest */
> + unsigned int in_bytes, out_bytes;
> + vu_queue_get_avail_bytes(dev, q, &in_bytes, &out_bytes, ~0, ~0);
>
> - if (se->debug)
> fuse_debug("%s: Queue %d gave evalue: %zx available: in: %u out: %u\n",
> __func__, qi->qidx, (size_t)evalue, in_bytes,
> out_bytes);
> -
> - if (!out_bytes) {
> - goto next;
> }
> +
> while (1) {
> bool allocated_bufv = false;
> struct fuse_bufvec bufv;
> @@ -708,7 +706,6 @@ static void *fv_queue_thread(void *opaque)
> elem = NULL;
> }
>
> -next:
> pthread_rwlock_unlock(&qi->virtio_dev->vu_dispatch_rwlock);
> }
> pthread_mutex_destroy(&ch.lock);
> --
> 2.21.0
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2019-07-31 16:50 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-26 9:10 [Virtio-fs] [PATCH 0/5] virtiofsd: multithreading preparation Stefan Hajnoczi
2019-07-26 9:10 ` [Qemu-devel] " Stefan Hajnoczi
2019-07-26 9:10 ` [Virtio-fs] [PATCH 1/5] virtiofsd: skip unnecessary vu_queue_get_avail_bytes() Stefan Hajnoczi
2019-07-26 9:10 ` [Qemu-devel] " Stefan Hajnoczi
2019-07-26 21:35 ` [Virtio-fs] " Liu Bo
2019-07-26 21:35 ` [Qemu-devel] " Liu Bo
2019-07-31 16:50 ` Dr. David Alan Gilbert [this message]
2019-07-31 16:50 ` [Qemu-devel] " Dr. David Alan Gilbert
2019-07-26 9:11 ` [Virtio-fs] [PATCH 2/5] virtiofsd: prevent lo_lookup() NULL pointer dereference Stefan Hajnoczi
2019-07-26 9:11 ` [Qemu-devel] " Stefan Hajnoczi
2019-07-26 21:26 ` [Virtio-fs] " Liu Bo
2019-07-26 21:26 ` [Qemu-devel] " Liu Bo
2019-07-29 8:15 ` Stefan Hajnoczi
2019-07-29 8:15 ` [Qemu-devel] " Stefan Hajnoczi
2019-07-28 2:06 ` piaojun
2019-07-29 12:35 ` piaojun
2019-07-29 15:41 ` [Virtio-fs] [Qemu-devel] " Stefan Hajnoczi
2019-07-29 15:41 ` [Qemu-devel] [Virtio-fs] " Stefan Hajnoczi
2019-07-30 0:34 ` piaojun
2019-07-26 9:11 ` [Virtio-fs] [PATCH 3/5] virtiofsd: make lo_release() atomic Stefan Hajnoczi
2019-07-26 9:11 ` [Qemu-devel] " Stefan Hajnoczi
2019-07-31 16:56 ` [Virtio-fs] " Dr. David Alan Gilbert
2019-07-31 16:56 ` [Qemu-devel] " Dr. David Alan Gilbert
2019-07-26 9:11 ` [Virtio-fs] [PATCH 4/5] virtiofsd: drop lo_dirp->fd field Stefan Hajnoczi
2019-07-26 9:11 ` [Qemu-devel] " Stefan Hajnoczi
2019-07-31 17:27 ` [Virtio-fs] " Dr. David Alan Gilbert
2019-07-31 17:27 ` [Qemu-devel] " Dr. David Alan Gilbert
2019-08-01 9:07 ` [Virtio-fs] " Stefan Hajnoczi
2019-08-01 9:07 ` [Qemu-devel] " Stefan Hajnoczi
2019-07-26 9:11 ` [Virtio-fs] [PATCH 5/5] virtiofsd: prevent races with lo_dirp_put() Stefan Hajnoczi
2019-07-26 9:11 ` [Qemu-devel] " Stefan Hajnoczi
2019-07-31 17:44 ` [Virtio-fs] " Dr. David Alan Gilbert
2019-07-31 17:44 ` [Qemu-devel] " Dr. David Alan Gilbert
2019-08-01 9:15 ` [Virtio-fs] " Stefan Hajnoczi
2019-08-01 9:15 ` [Qemu-devel] " Stefan Hajnoczi
2019-08-01 11:14 ` [Virtio-fs] " Dr. David Alan Gilbert
2019-08-01 11:14 ` [Qemu-devel] " Dr. David Alan Gilbert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190731165046.GI3203@work-vm \
--to=dgilbert@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
--cc=virtio-fs@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.