From: Avi Kivity <avi@redhat.com>
To: michael@ellerman.id.au
Cc: Arnd Bergmann <arnd@arndb.de>,
qemu-devel@nongnu.org, Alexander Graf <agraf@suse.de>,
KVM list <kvm@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Eric Northup <digitaleric@google.com>,
Scott Wood <scottwood@freescale.com>
Subject: Re: [Qemu-devel] [RFC] Next gen kvm api
Date: Thu, 16 Feb 2012 21:28:14 +0200 [thread overview]
Message-ID: <4F3D58CE.2070209@redhat.com> (raw)
In-Reply-To: <1329354245.6976.25.camel@concordia>
On 02/16/2012 03:04 AM, Michael Ellerman wrote:
> >
> > ioctl is good for hardware devices and stuff that you want to enumerate
> > and/or control permissions on. For something like KVM that is really a
> > core kernel service, a syscall makes much more sense.
>
> Yeah maybe. That distinction is at least in part just historical.
>
> The first problem I see with using a syscall is that you don't need one
> syscall for KVM, you need ~90. OK so you wouldn't do that, you'd use a
> multiplexed syscall like epoll_ctl() - or probably several
> (vm/vcpu/etc).
No. Many of our ioctls are for state save/restore - we reduce that to
two. Many others are due to the with/without irqchip support - we slash
that as well. The device assignment stuff is relegated to vfio.
I still have to draw up a concrete proposal, but I think we'll end up
with 10-15.
>
> Secondly you still need a handle/context for those syscalls, and I think
> the most sane thing to use for that is an fd.
The context is the process (for vm-wide calls) and thread (for vcpu
local calls).
>
> At that point you've basically reinvented ioctl :)
>
> I also think it is an advantage that you have a node in /dev for
> permissions. I know other "core kernel" interfaces don't use a /dev
> node, but arguably that is their loss.
Have to agree with that. Theoretically we don't need permissions for
/dev/kvm, but in practice we do.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
WARNING: multiple messages have this Message-ID (diff)
From: Avi Kivity <avi@redhat.com>
To: michael@ellerman.id.au
Cc: Alexander Graf <agraf@suse.de>, Arnd Bergmann <arnd@arndb.de>,
KVM list <kvm@vger.kernel.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
qemu-devel@nongnu.org, Eric Northup <digitaleric@google.com>,
Scott Wood <scottwood@freescale.com>
Subject: Re: [Qemu-devel] [RFC] Next gen kvm api
Date: Thu, 16 Feb 2012 21:28:14 +0200 [thread overview]
Message-ID: <4F3D58CE.2070209@redhat.com> (raw)
In-Reply-To: <1329354245.6976.25.camel@concordia>
On 02/16/2012 03:04 AM, Michael Ellerman wrote:
> >
> > ioctl is good for hardware devices and stuff that you want to enumerate
> > and/or control permissions on. For something like KVM that is really a
> > core kernel service, a syscall makes much more sense.
>
> Yeah maybe. That distinction is at least in part just historical.
>
> The first problem I see with using a syscall is that you don't need one
> syscall for KVM, you need ~90. OK so you wouldn't do that, you'd use a
> multiplexed syscall like epoll_ctl() - or probably several
> (vm/vcpu/etc).
No. Many of our ioctls are for state save/restore - we reduce that to
two. Many others are due to the with/without irqchip support - we slash
that as well. The device assignment stuff is relegated to vfio.
I still have to draw up a concrete proposal, but I think we'll end up
with 10-15.
>
> Secondly you still need a handle/context for those syscalls, and I think
> the most sane thing to use for that is an fd.
The context is the process (for vm-wide calls) and thread (for vcpu
local calls).
>
> At that point you've basically reinvented ioctl :)
>
> I also think it is an advantage that you have a node in /dev for
> permissions. I know other "core kernel" interfaces don't use a /dev
> node, but arguably that is their loss.
Have to agree with that. Theoretically we don't need permissions for
/dev/kvm, but in practice we do.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
next prev parent reply other threads:[~2012-02-16 19:28 UTC|newest]
Thread overview: 236+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-02 16:09 [RFC] Next gen kvm api Avi Kivity
2012-02-02 16:09 ` [Qemu-devel] " Avi Kivity
2012-02-02 22:13 ` Rob Earhart
2012-02-02 22:13 ` [Qemu-devel] " Rob Earhart
2012-02-02 22:16 ` Rob Earhart
2012-02-02 22:16 ` Rob Earhart
2012-02-05 13:14 ` Avi Kivity
2012-02-05 13:14 ` [Qemu-devel] " Avi Kivity
2012-02-06 17:41 ` Rob Earhart
2012-02-06 19:11 ` Anthony Liguori
2012-02-06 19:11 ` [Qemu-devel] " Anthony Liguori
2012-02-06 19:11 ` Anthony Liguori
2012-02-07 12:03 ` Avi Kivity
2012-02-07 12:03 ` [Qemu-devel] " Avi Kivity
2012-02-07 15:17 ` Anthony Liguori
2012-02-07 16:02 ` Avi Kivity
2012-02-07 16:18 ` Jan Kiszka
2012-02-07 16:18 ` [Qemu-devel] " Jan Kiszka
2012-02-07 16:18 ` Jan Kiszka
2012-02-07 16:21 ` Anthony Liguori
2012-02-07 16:21 ` Anthony Liguori
2012-02-07 16:29 ` Jan Kiszka
2012-02-07 16:29 ` Jan Kiszka
2012-02-15 13:41 ` Avi Kivity
2012-02-15 13:41 ` Avi Kivity
2012-02-07 16:19 ` Anthony Liguori
2012-02-15 13:47 ` Avi Kivity
2012-02-07 12:01 ` Avi Kivity
2012-02-03 2:09 ` Anthony Liguori
2012-02-03 2:09 ` [Qemu-devel] " Anthony Liguori
2012-02-03 2:09 ` Anthony Liguori
2012-02-04 2:08 ` Takuya Yoshikawa
2012-02-04 2:08 ` [Qemu-devel] " Takuya Yoshikawa
2012-02-04 2:08 ` Takuya Yoshikawa
2012-02-22 13:06 ` Peter Zijlstra
2012-02-22 13:06 ` Peter Zijlstra
2012-02-05 9:24 ` Avi Kivity
2012-02-05 9:24 ` [Qemu-devel] " Avi Kivity
2012-02-05 9:24 ` Avi Kivity
2012-02-07 1:08 ` Alexander Graf
2012-02-07 1:08 ` Alexander Graf
2012-02-07 1:08 ` Alexander Graf
2012-02-07 1:08 ` Alexander Graf
2012-02-07 12:24 ` [Qemu-devel] " Avi Kivity
2012-02-07 12:24 ` Avi Kivity
2012-02-07 12:24 ` Avi Kivity
2012-02-07 12:51 ` Alexander Graf
2012-02-07 12:51 ` Alexander Graf
2012-02-07 12:51 ` Alexander Graf
2012-02-07 13:16 ` Avi Kivity
2012-02-07 13:16 ` Avi Kivity
2012-02-07 13:16 ` Avi Kivity
2012-02-07 13:40 ` Alexander Graf
2012-02-07 13:40 ` Alexander Graf
2012-02-07 13:40 ` Alexander Graf
2012-02-07 14:21 ` Avi Kivity
2012-02-07 14:21 ` Avi Kivity
2012-02-07 14:21 ` Avi Kivity
2012-02-07 14:21 ` Avi Kivity
2012-02-07 14:39 ` [Qemu-devel] " Alexander Graf
2012-02-07 14:39 ` Alexander Graf
2012-02-07 14:39 ` Alexander Graf
2012-02-15 11:18 ` Avi Kivity
2012-02-15 11:18 ` Avi Kivity
2012-02-15 11:18 ` Avi Kivity
2012-02-15 11:57 ` Alexander Graf
2012-02-15 11:57 ` Alexander Graf
2012-02-15 11:57 ` Alexander Graf
2012-02-15 13:29 ` Avi Kivity
2012-02-15 13:29 ` Avi Kivity
2012-02-15 13:29 ` Avi Kivity
2012-02-15 13:37 ` Alexander Graf
2012-02-15 13:37 ` Alexander Graf
2012-02-15 13:37 ` Alexander Graf
2012-02-15 13:57 ` Avi Kivity
2012-02-15 13:57 ` Avi Kivity
2012-02-15 13:57 ` Avi Kivity
2012-02-15 14:08 ` Alexander Graf
2012-02-15 14:08 ` Alexander Graf
2012-02-15 14:08 ` Alexander Graf
2012-02-16 19:24 ` Avi Kivity
2012-02-16 19:24 ` Avi Kivity
2012-02-16 19:24 ` Avi Kivity
2012-02-16 19:24 ` Avi Kivity
2012-02-16 19:34 ` [Qemu-devel] " Alexander Graf
2012-02-16 19:34 ` Alexander Graf
2012-02-16 19:34 ` Alexander Graf
2012-02-16 19:38 ` Avi Kivity
2012-02-16 19:38 ` Avi Kivity
2012-02-16 19:38 ` Avi Kivity
2012-02-16 20:41 ` Scott Wood
2012-02-16 20:41 ` Scott Wood
2012-02-16 20:41 ` Scott Wood
2012-02-17 0:23 ` Alexander Graf
2012-02-17 0:23 ` Alexander Graf
2012-02-17 0:23 ` Alexander Graf
2012-02-17 18:27 ` Scott Wood
2012-02-17 18:27 ` Scott Wood
2012-02-17 18:27 ` Scott Wood
2012-02-18 9:49 ` Avi Kivity
2012-02-18 9:49 ` Avi Kivity
2012-02-18 9:49 ` Avi Kivity
2012-02-18 9:49 ` Avi Kivity
2012-02-17 0:19 ` [Qemu-devel] " Alexander Graf
2012-02-17 0:19 ` Alexander Graf
2012-02-17 0:19 ` Alexander Graf
2012-02-18 10:00 ` Avi Kivity
2012-02-18 10:00 ` Avi Kivity
2012-02-18 10:00 ` Avi Kivity
2012-02-18 10:00 ` Avi Kivity
2012-02-18 10:43 ` [Qemu-devel] " Alexander Graf
2012-02-18 10:43 ` Alexander Graf
2012-02-18 10:43 ` Alexander Graf
2012-02-15 19:17 ` Scott Wood
2012-02-15 19:17 ` Scott Wood
2012-02-15 19:17 ` Scott Wood
2012-02-12 7:10 ` Takuya Yoshikawa
2012-02-12 7:10 ` Takuya Yoshikawa
2012-02-12 7:10 ` Takuya Yoshikawa
2012-02-12 7:10 ` Takuya Yoshikawa
2012-02-15 13:32 ` [Qemu-devel] " Avi Kivity
2012-02-15 13:32 ` Avi Kivity
2012-02-15 13:32 ` Avi Kivity
2012-02-07 15:23 ` Anthony Liguori
2012-02-07 15:23 ` Anthony Liguori
2012-02-07 15:23 ` Anthony Liguori
2012-02-07 15:28 ` Alexander Graf
2012-02-07 15:28 ` Alexander Graf
2012-02-07 15:28 ` Alexander Graf
2012-02-08 17:20 ` Alan Cox
2012-02-08 17:20 ` Alan Cox
2012-02-08 17:20 ` Alan Cox
2012-02-15 13:33 ` Avi Kivity
2012-02-15 13:33 ` Avi Kivity
2012-02-15 13:33 ` Avi Kivity
2012-02-15 22:14 ` Arnd Bergmann
2012-02-15 22:14 ` Arnd Bergmann
2012-02-10 3:07 ` Jamie Lokier
2012-02-10 3:07 ` Jamie Lokier
2012-02-03 18:07 ` Eric Northup
2012-02-03 18:07 ` [Qemu-devel] " Eric Northup
2012-02-03 18:07 ` Eric Northup
2012-02-03 22:52 ` Anthony Liguori
2012-02-03 22:52 ` [Qemu-devel] " Anthony Liguori
2012-02-03 22:52 ` Anthony Liguori
2012-02-06 19:46 ` Scott Wood
2012-02-06 19:46 ` Scott Wood
2012-02-07 6:58 ` Michael Ellerman
2012-02-07 6:58 ` [Qemu-devel] " Michael Ellerman
2012-02-07 6:58 ` Michael Ellerman
2012-02-07 10:04 ` Alexander Graf
2012-02-07 10:04 ` Alexander Graf
2012-02-15 22:21 ` Arnd Bergmann
2012-02-15 22:21 ` Arnd Bergmann
2012-02-16 1:04 ` Michael Ellerman
2012-02-16 1:04 ` [Qemu-devel] " Michael Ellerman
2012-02-16 1:04 ` Michael Ellerman
2012-02-16 19:28 ` Avi Kivity [this message]
2012-02-16 19:28 ` Avi Kivity
2012-02-17 0:09 ` Michael Ellerman
2012-02-17 0:09 ` [Qemu-devel] " Michael Ellerman
2012-02-17 0:09 ` Michael Ellerman
2012-02-18 10:03 ` Avi Kivity
2012-02-18 10:03 ` [Qemu-devel] " Avi Kivity
2012-02-18 10:03 ` Avi Kivity
2012-02-16 10:26 ` Avi Kivity
2012-02-16 10:26 ` [Qemu-devel] " Avi Kivity
2012-02-16 10:26 ` Avi Kivity
2012-02-07 12:28 ` Anthony Liguori
2012-02-07 12:28 ` Anthony Liguori
2012-02-07 12:40 ` Avi Kivity
2012-02-07 12:40 ` Avi Kivity
2012-02-07 12:51 ` Anthony Liguori
2012-02-07 12:51 ` Anthony Liguori
2012-02-07 13:18 ` Avi Kivity
2012-02-07 13:18 ` [Qemu-devel] " Avi Kivity
2012-02-07 13:18 ` Avi Kivity
2012-02-07 15:15 ` Anthony Liguori
2012-02-07 15:15 ` Anthony Liguori
2012-02-07 18:28 ` Chris Wright
2012-02-07 18:28 ` Chris Wright
2012-02-08 17:02 ` Scott Wood
2012-02-08 17:02 ` Scott Wood
2012-02-08 17:12 ` Alan Cox
2012-02-08 17:12 ` [Qemu-devel] " Alan Cox
2012-02-08 17:12 ` Alan Cox
2012-02-05 9:37 ` Gleb Natapov
2012-02-05 9:37 ` [Qemu-devel] " Gleb Natapov
2012-02-05 9:37 ` Gleb Natapov
2012-02-05 9:44 ` Avi Kivity
2012-02-05 9:44 ` [Qemu-devel] " Avi Kivity
2012-02-05 9:44 ` Avi Kivity
2012-02-05 9:51 ` Gleb Natapov
2012-02-05 9:51 ` [Qemu-devel] " Gleb Natapov
2012-02-05 9:51 ` Gleb Natapov
2012-02-05 9:56 ` Avi Kivity
2012-02-05 9:56 ` [Qemu-devel] " Avi Kivity
2012-02-05 9:56 ` Avi Kivity
2012-02-05 10:58 ` Gleb Natapov
2012-02-05 10:58 ` [Qemu-devel] " Gleb Natapov
2012-02-05 10:58 ` Gleb Natapov
2012-02-05 13:16 ` Avi Kivity
2012-02-05 13:16 ` [Qemu-devel] " Avi Kivity
2012-02-05 13:16 ` Avi Kivity
2012-02-05 16:36 ` Anthony Liguori
2012-02-05 16:36 ` [Qemu-devel] " Anthony Liguori
2012-02-05 16:36 ` Anthony Liguori
2012-02-06 9:34 ` Avi Kivity
2012-02-06 9:34 ` [Qemu-devel] " Avi Kivity
2012-02-06 9:34 ` Avi Kivity
2012-02-06 13:33 ` Anthony Liguori
2012-02-06 13:33 ` Anthony Liguori
2012-02-06 13:54 ` Avi Kivity
2012-02-06 13:54 ` Avi Kivity
2012-02-06 14:00 ` Anthony Liguori
2012-02-06 14:00 ` Anthony Liguori
2012-02-06 14:08 ` Avi Kivity
2012-02-06 14:08 ` Avi Kivity
2012-02-07 18:12 ` Rusty Russell
2012-02-07 18:12 ` [Qemu-devel] " Rusty Russell
2012-02-07 18:12 ` Rusty Russell
2012-02-15 13:39 ` Avi Kivity
2012-02-15 13:39 ` Avi Kivity
2012-02-15 21:59 ` Anthony Liguori
2012-02-15 21:59 ` Anthony Liguori
2012-02-16 8:57 ` Gleb Natapov
2012-02-16 8:57 ` [Qemu-devel] " Gleb Natapov
2012-02-16 8:57 ` Gleb Natapov
2012-02-16 14:46 ` Anthony Liguori
2012-02-16 14:46 ` Anthony Liguori
2012-02-16 19:34 ` Avi Kivity
2012-02-16 19:34 ` [Qemu-devel] " Avi Kivity
2012-02-16 19:34 ` Avi Kivity
2012-02-15 23:08 ` Rusty Russell
2012-02-15 23:08 ` [Qemu-devel] " Rusty Russell
2012-02-15 23:08 ` Rusty Russell
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=4F3D58CE.2070209@redhat.com \
--to=avi@redhat.com \
--cc=agraf@suse.de \
--cc=arnd@arndb.de \
--cc=digitaleric@google.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael@ellerman.id.au \
--cc=qemu-devel@nongnu.org \
--cc=scottwood@freescale.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.