From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: Avi Kivity <avi@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>,
Sasha Levin <levinsasha928@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
Pekka Enberg <penberg@kernel.org>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [patch 0/3] kvm tool: Serial emulation overhaul
Date: Mon, 12 Dec 2011 21:36:52 +0000 [thread overview]
Message-ID: <20111212213652.0855c892@pyramind.ukuu.org.uk> (raw)
In-Reply-To: <4EE64512.3080709@redhat.com>
On Mon, 12 Dec 2011 20:16:50 +0200
Avi Kivity <avi@redhat.com> wrote:
> On 12/12/2011 01:20 PM, Alan Cox wrote:
> > > [*] Also, those 10K cycles include some significant Qemu
> > > overhead - a couple of thousand cycles - that should be much
> > > lower in the tools/kvm case.
> >
> > Are all the traps going into qemu
>
> Only the ones that go to devices modelled in userspace.
>
> > - is KVM still that braindead ?
>
> How would you do it?
See my posting from years back about this...
Your trap handler returns the kernel a predictor tree (say a 1 page tree)
of the next expected ins out and actions - where the action is either
store, or trap out.
Each kernel trap then boils down to
Does this trap match an entry in the top of our predictor tree. Ie is it
an in/out (or equivalent mmio) that the driver has given us expected
behaviour for.
We could of course have several for different ranges of devices
no - hit emulator and return position in predictor tree we failed
at plus tree buffer if needed
yes - follow the tree node
For IN
copy predicted byte/word/dword to tree buffer
move along tree
return
For Out
store store byte/word/dword in tree buffer
(one of which can be used for discard)
move along the tree
return
Thats enough to do things like write predictors for the kernel console
emulating the serial fifo, to script PIO IDE transfers etc
The kernel side is miniscule and generic, the user space can migrate to
doing this where it pays off and not where it doesn't.
Alan
next prev parent reply other threads:[~2011-12-12 21:36 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-10 13:27 Thomas Gleixner
2011-12-10 13:27 ` [patch 1/3] kvm tool: serial: Cleanup coding style Thomas Gleixner
2011-12-10 13:27 ` [patch 3/3] kvm tool: serial: Fix interrupt handling Thomas Gleixner
2011-12-10 13:27 ` [patch 2/3] kvm tool: serial: Simplify switch cases Thomas Gleixner
2011-12-10 15:17 ` [patch 0/3] kvm tool: Serial emulation overhaul Pekka Enberg
2011-12-10 20:51 ` Thomas Gleixner
2011-12-11 8:15 ` Pekka Enberg
2011-12-11 10:30 ` Ingo Molnar
2011-12-11 10:46 ` Ingo Molnar
2011-12-11 14:04 ` Thomas Gleixner
2011-12-11 15:53 ` Ingo Molnar
2011-12-12 5:30 ` Sasha Levin
2011-12-12 11:12 ` Ingo Molnar
2011-12-12 11:20 ` Alan Cox
2011-12-12 17:20 ` Ingo Molnar
2011-12-12 18:16 ` Avi Kivity
2011-12-12 18:16 ` Avi Kivity
2011-12-12 21:36 ` Alan Cox [this message]
2011-12-13 10:32 ` Avi Kivity
2011-12-12 11:23 ` Cyrill Gorcunov
2011-12-12 17:40 ` Sasha Levin
2011-12-12 17:45 ` Ingo Molnar
2011-12-12 9:42 ` Thomas Gleixner
2011-12-12 11:19 ` Pekka Enberg
2011-12-12 17:20 ` Ingo Molnar
2011-12-12 18:40 ` Pekka Enberg
2011-12-12 19:14 ` Pekka Enberg
2011-12-12 19:21 ` Ingo Molnar
2011-12-13 0:59 ` Thomas Gleixner
2011-12-13 7:03 ` Pekka Enberg
2011-12-13 11:05 ` Alan Cox
2011-12-13 10:58 ` Avi Kivity
2011-12-13 13:52 ` Thomas Gleixner
2011-12-13 14:23 ` Avi Kivity
2011-12-13 14:30 ` Sasha Levin
2011-12-13 14:51 ` Thomas Gleixner
2011-12-13 14:58 ` Avi Kivity
2011-12-12 21:03 ` James Courtier-Dutton
2011-12-12 18:19 ` Avi Kivity
2011-12-12 18:31 ` Pekka Enberg
2011-12-13 10:33 ` Avi Kivity
2011-12-12 10:27 ` Alan Cox
2011-12-12 10:59 ` Sasha Levin
2011-12-12 11:02 ` Alan Cox
2011-12-12 18:21 ` Avi Kivity
2011-12-12 17:21 ` Ingo Molnar
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=20111212213652.0855c892@pyramind.ukuu.org.uk \
--to=alan@lxorguk.ukuu.org.uk \
--cc=avi@redhat.com \
--cc=levinsasha928@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=penberg@kernel.org \
--cc=tglx@linutronix.de \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®