All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Scott Tsai <scottt.tw@gmail.com>
Cc: Paul Brook <paul@codesourcery.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Re: [PATCH] qemu/virtio: make wmb compiler barrier + comments
Date: Wed, 11 Nov 2009 20:08:08 +0200	[thread overview]
Message-ID: <20091111180808.GA31061@redhat.com> (raw)
In-Reply-To: <ef2f888d0911110918g2c30aba6y765461d2c1737baf@mail.gmail.com>

On Thu, Nov 12, 2009 at 01:18:11AM +0800, Scott Tsai wrote:
> On Wed, Nov 11, 2009 at 10:08 PM, Michael S. Tsirkin <mst@redhat.com> wrote:
> > On Wed, Nov 11, 2009 at 01:45:35PM +0000, Paul Brook wrote:
> >> If you don't need real barriers, then why does the kvm code have them?
> >
> > We need real barriers but AFAIK kvm does not have them :(
> > IOW: virtio is currently broken with kvm, and my patch did
> > not fix this. The comment that I added says as much.
> 
> How about just using GCC's __sync__synchronize atomic builtin (if
> detected as available by configure)?
> It's a full memory barrier instead of just a write barrier,  for x86,
> it generates the same code as the current Linux mb() implementation:
> "mfence" on x86_64
> "lock orl $0x0,(%esp)" on x86 unless -march is specified to a
> processor with "mfence".
> PPC could continue to use "eieio" while other architectures could just
> default to __sync_synchronize

Hmm, on x86 that's more expensive than it needs to be...
We can also ifdef platforms that we care about ...

> I do have a newbie question, when exactly would vrtio have to handle
> concurrent access from multiple threads?
> My current reading of the code suggests:
> 1. when CONFIG_IOTHREAD is true
> 2. when CONFIG_KVM is true and the guest machine has multiple CPUs

  reply	other threads:[~2009-11-11 18:10 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-26 13:17 [Qemu-devel] [PATCH] qemu/virtio: make wmb compiler barrier + comments Michael S. Tsirkin
2009-11-11  1:34 ` Paul Brook
2009-11-11  9:37   ` [Qemu-devel] " Michael S. Tsirkin
2009-11-11 13:01     ` Paul Brook
2009-11-11 13:12       ` Michael S. Tsirkin
2009-11-11 13:45         ` Paul Brook
2009-11-11 14:08           ` Michael S. Tsirkin
2009-11-11 14:16             ` Paul Brook
2009-11-11 14:34               ` Michael S. Tsirkin
2009-11-11 16:13                 ` Paul Brook
2009-11-11 17:18             ` Scott Tsai
2009-11-11 18:08               ` Michael S. Tsirkin [this message]
2009-11-11 18:09               ` Michael S. Tsirkin
2009-11-11 18:37                 ` Scott Tsai
2009-11-11 19:56                   ` Michael S. Tsirkin
2009-11-13  3:00               ` Jamie Lokier
2009-11-11 13:15       ` Michael S. Tsirkin

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=20091111180808.GA31061@redhat.com \
    --to=mst@redhat.com \
    --cc=paul@codesourcery.com \
    --cc=qemu-devel@nongnu.org \
    --cc=scottt.tw@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.