[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120208172037.615a1fdd@pyramind.ukuu.org.uk>
Date: Wed, 8 Feb 2012 17:20:37 +0000
From: Alan Cox <alan@...rguk.ukuu.org.uk>
To: Anthony Liguori <anthony@...emonkey.ws>
Cc: Alexander Graf <agraf@...e.de>, Avi Kivity <avi@...hat.com>,
qemu-devel <qemu-devel@...gnu.org>,
kvm-ppc <kvm-ppc@...r.kernel.org>,
KVM list <kvm@...r.kernel.org>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [Qemu-devel] [RFC] Next gen kvm api
> > register_pio_hook_ptr_r(PIO_IDE, SIZE_BYTE,&s->cmd[0]);
> > for (i = 1; i< 7; i++) {
> > register_pio_hook_ptr_r(PIO_IDE + i, SIZE_BYTE,&s->cmd[i]);
> > register_pio_hook_ptr_w(PIO_IDE + i, SIZE_BYTE,&s->cmd[i]);
> > }
>
> You can't easily serialize updates to that address with the kernel since two
> threads are likely going to be accessing it at the same time. That either means
> an expensive sync operation or a reliance on atomic instructions.
Who cares
If your API is right this isn't a problem (and for IDE the guess that it
won't happen you will win 99.999% of the time).
In fact IDE you can do even better in many cases because you'll get a
single rep outsw you can trap and shortcut.
> But not all architectures offer non-word sized atomic instructions so it gets
> fairly nasty in practice.
Thats their problem. We don't screwup the fast paths because some
hardware vendor screwed up that bit of their implementation. That's
*their* problem not everyone elses.
So on x86 IDE should be about 10 outb traps that can be predicted, a rep
outsw which can be shortcut and a completion set of inb/inw ops that can
be predicted.
You should hit userspace about once per IDE operation. Fix the hot paths
with good design and the noise doesn't matter.
Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists