All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@redhat.com>
To: Aarushi Mehta <mehta.aaru20@gmail.com>
Cc: Fam Zheng <fam@euphon.net>, Kevin Wolf <kwolf@redhat.com>,
	qemu-block@nongnu.org, qemu-devel@nongnu.org,
	Max Reitz <mreitz@redhat.com>,
	saket.sinha89@gmail.com, Paolo Bonzini <pbonzini@redhat.com>,
	Julia Suvorova <jusual@mail.ru>,
	Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v4 4/9] block/io_uring: implements interfaces for io_uring
Date: Fri, 7 Jun 2019 15:45:55 +0200	[thread overview]
Message-ID: <20190607134555.GB5220@stefanha-x1.localdomain> (raw)
In-Reply-To: <20190603123823.32661-5-mehta.aaru20@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1152 bytes --]

On Mon, Jun 03, 2019 at 06:08:18PM +0530, Aarushi Mehta wrote:
> +static void qemu_luring_process_completions(LuringState *s)
> +{
> +    struct io_uring_cqe *cqes;
> +    int ret;
> +
> +    /*
> +     * Request completion callbacks can run the nested event loop.
> +     * Schedule ourselves so the nested event loop will "see" remaining
> +     * completed requests and process them.  Without this, completion
> +     * callbacks that wait for other requests using a nested event loop
> +     * would hang forever.
> +     */
> +    qemu_bh_schedule(s->completion_bh);
> +
> +    while (io_uring_peek_cqe(&s->ring, &cqes) == 0) {
> +        if (!cqes) {
> +            break;
> +        }
> +        LuringAIOCB *luringcb = io_uring_cqe_get_data(cqes);
> +        read_barrier();

What is the purpose of this barrier?

> +static void qemu_luring_process_completions_and_submit(LuringState *s)
> +{
> +    aio_context_acquire(s->aio_context);
> +    qemu_luring_process_completions(s);
> +
> +    if (!s->io_q.plugged && !s->io_q.in_queue) {

Submit when there are queued requesting waiting for submission:

s/!s->io_q.in_queue/s->io_q.in_queue > 0/

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2019-06-07 13:53 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-03 12:38 [Qemu-devel] [PATCH v4 0/9] Add support for io_uring Aarushi Mehta
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 1/9] configure: permit use of io_uring Aarushi Mehta
2019-06-06 11:47   ` [Qemu-devel] [Qemu-block] " Maxim Levitsky
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 2/9] qapi/block-core: add option for io_uring Aarushi Mehta
2019-06-05  5:58   ` Markus Armbruster
2019-06-06 11:49     ` [Qemu-devel] [Qemu-block] " Maxim Levitsky
2019-06-07 12:25     ` [Qemu-devel] " Stefan Hajnoczi
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 3/9] block/block: add BDRV flag " Aarushi Mehta
2019-06-06 11:52   ` [Qemu-devel] [Qemu-block] " Maxim Levitsky
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 4/9] block/io_uring: implements interfaces " Aarushi Mehta
2019-06-07 13:45   ` Stefan Hajnoczi [this message]
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 5/9] stubs: add stubs for io_uring interface Aarushi Mehta
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 6/9] util/async: add aio interfaces for io_uring Aarushi Mehta
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 7/9] blockdev: accept io_uring as option Aarushi Mehta
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 8/9] block/file-posix.c: extend to use io_uring Aarushi Mehta
2019-06-03 12:38 ` [Qemu-devel] [PATCH v4 9/9] block: add trace events for io_uring Aarushi Mehta
2019-06-07 10:59 ` [Qemu-devel] [PATCH v4 0/9] Add support " Sergio Lopez
2019-06-07 13:46   ` Stefan Hajnoczi
2019-06-07 14:10   ` Stefan Hajnoczi
2019-06-07 14:17     ` Sergio Lopez

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=20190607134555.GB5220@stefanha-x1.localdomain \
    --to=stefanha@redhat.com \
    --cc=armbru@redhat.com \
    --cc=fam@euphon.net \
    --cc=jusual@mail.ru \
    --cc=kwolf@redhat.com \
    --cc=mehta.aaru20@gmail.com \
    --cc=mreitz@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=saket.sinha89@gmail.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.