From: Rusty Russell <rusty@rustcorp.com.au>
To: Christoph Hellwig <hch@infradead.org>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
Christoph Hellwig <hch@infradead.org>,
Chris Wright <chrisw@sous-sol.org>, Jens Axboe <axboe@kernel.dk>,
Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/5] virtio: support unlocked queue kick
Date: Thu, 03 Nov 2011 14:31:48 +1030 [thread overview]
Message-ID: <874nylua4z.fsf@rustcorp.com.au> (raw)
In-Reply-To: <20111102072544.GA6967@infradead.org>
On Wed, 2 Nov 2011 03:25:44 -0400, Christoph Hellwig <hch@infradead.org> wrote:
> On Wed, Nov 02, 2011 at 01:49:36PM +1030, Rusty Russell wrote:
> > I thought it was still a WIP?
>
> The whole series - yes. This patch (and the serial number rewrite): no
> - these are pretty much rock solid.
OK, thanks.
> > Since the problem is contention on the lock inside the block layer, the
> > simplest solution is to have a separate lock to protect the virtqueue.
>
> As long as we still use a ->request_fn based driver that is not going
> to buy us anything, in fact it's going to make things worse.
Of course...
> With the ->make_request_fn based driver vlkb->lock does't protect
> anything but the virtuequeue anyway, but not having to take it
> over the wakeup there is a) done easily and b) neatly fits the model.
It adds YA API though. But I can't better it. Doing the "should we
kick" check outside the lock is problematic, and doing it inside every
add() is inefficient.
So let's change the API for everyone, into:
bool virtqueue_should_kick(struct virtqueue *vq);
void virtqueue_kick(struct virtqueue *vq);
Patch series coming...
Thanks,
Rusty.
next prev parent reply other threads:[~2011-11-03 4:58 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-05 19:54 [PATCH 0/5] RFC: ->make_request support for virtio-blk Christoph Hellwig
2011-10-05 19:54 ` [PATCH 1/5] block: add bio_map_sg Christoph Hellwig
2011-10-05 22:51 ` Boaz Harrosh
2011-10-06 13:40 ` Christoph Hellwig
2011-10-05 19:54 ` [PATCH 2/5] virtio: support unlocked queue kick Christoph Hellwig
2011-10-06 8:42 ` Stefan Hajnoczi
[not found] ` <87r52qgaf3.fsf@rustcorp.com.au>
2011-10-06 13:19 ` Michael S. Tsirkin
2011-11-01 14:40 ` Michael S. Tsirkin
2011-11-02 3:19 ` Rusty Russell
2011-11-02 7:25 ` Christoph Hellwig
2011-11-03 4:01 ` Rusty Russell [this message]
2011-11-03 5:15 ` Rusty Russell
2011-11-03 6:45 ` Minchan Kim
2011-10-05 19:54 ` [PATCH 3/5] virtio-blk: remove the unused list of pending requests Christoph Hellwig
2011-10-05 19:54 ` [PATCH 4/5] virtio-blk: reimplement the serial attribute without using requests Christoph Hellwig
2011-10-05 19:54 ` [PATCH 5/5] virtio-blk: implement ->make_request Christoph Hellwig
2011-10-06 1:52 ` Rusty Russell
2011-10-06 13:42 ` Christoph Hellwig
2011-10-06 13:53 ` Jens Axboe
2011-10-05 20:31 ` [PATCH 0/5] RFC: ->make_request support for virtio-blk Vivek Goyal
2011-10-05 21:53 ` Christoph Hellwig
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=874nylua4z.fsf@rustcorp.com.au \
--to=rusty@rustcorp.com.au \
--cc=axboe@kernel.dk \
--cc=chrisw@sous-sol.org \
--cc=hch@infradead.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mst@redhat.com \
--cc=stefanha@linux.vnet.ibm.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.