[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/4] linux-aio: queue requests that cannot be su
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 1/4] linux-aio: queue requests that cannot be submitted |
Date: |
Thu, 11 Dec 2014 13:52:12 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 |
On 11/12/2014 13:49, Kevin Wolf wrote:
> > - } else {
> > - i = ret;
> > + abort();
> > }
>
> abort() doesn't feel right here.
man doesn't suggest any error that can actually happen.
> > + QSIMPLEQ_INSERT_TAIL(&s->io_q.pending, laiocb, next);
> > + s->io_q.idx++;
> > + if (s->io_q.idx == (s->io_q.plugged ? MAX_QUEUED_IO : 1)) {
>
> More naturally written and more obviously correct as (!s->io_q,plugged ||
> s->io_q.idx >= MAX_QUEUED_IO). Which happens to be what the next patch
> converts it to, so I won't spend much time thinking about whether this
> version is actually right.
Sort of. If the queue is blocked due to -EAGAIN, I don't want to
io_submit every time an operation is queued, hence the ==. The next
patch adds !s->io_q.blocked, so it can use the more natural and indeed
more obvious expression.
Paolo
[Qemu-devel] [PATCH 2/4] linux-aio: track whether the queue is blocked, Paolo Bonzini, 2014/12/10
[Qemu-devel] [PATCH 4/4] linux-aio: simplify removal of completed iocbs from the list, Paolo Bonzini, 2014/12/10
[Qemu-devel] [PATCH 3/4] linux-aio: rename LaioQueue idx field to "n", Paolo Bonzini, 2014/12/10