From: "Michael S. Tsirkin" <mst@redhat.com>
To: Sasha Levin <levinsasha928@gmail.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
kvm <kvm@vger.kernel.org>,
virtualization <virtualization@lists.linux-foundation.org>
Subject: Re: virtio-pci new configuration proposal
Date: Wed, 2 Nov 2011 21:08:06 +0200 [thread overview]
Message-ID: <20111102190804.GA13914@redhat.com> (raw)
In-Reply-To: <1320259767.22582.2.camel@lappy>
On Wed, Nov 02, 2011 at 08:49:27PM +0200, Sasha Levin wrote:
> This is a proposal for a new layout of the virtio-pci config space.
>
> We will separate the current configuration into two: A virtio-pci common
> configuration and a device specific configuration. This allows more flexibility
> with adding features and makes usage easier, specifically in cases like the
> ones in virtio-net where device specific configurations depend on device
> specific features.
>
> The preferred location of the configuration will be a MMIO BAR, therefore
> several size optimizations such as the queue selector which were useful
> on a PIO BAR were removed and linked lists were introduced to add
> flexibility to existing structures in attempt to keep their size and
> offsets constant and not dependent on features.
>
> While this is not a complete specification, it describes all the main
> structures and should be enough to make sure the idea is solid before
> going into implementation specifics.
>
> A new virtio-pci capability structure will be introduced. This structure
> will be used to describe the basics of a virtio-pci device. The
> structure is actually a PCI capability structure which wraps the new virtio-pci
> capability structure:
>
> +------------++------------+------------+------------+--------------+-----------------
> | Bits || 8 | 8 | 8 | 8 | Cap specific
> +------------++------------+------------+------------+--------------+-----------------
> | Read/Write || R | R | R | R | Cap specific
> +------------++------------+------------+------------+--------------+-----------------
> | Purpose || Capability | Capability | virtio-pci | virtio-pci | Cap specific
> | || ID | Next PTR | Cap ID | Next Cap PTR |
> +------------++------------+------------+------------+--------------+-----------------
>
> Currently, only one virtio-pci capability is defined, and is the one that defines
> the layout of the virtio-pci config space.
>
> VIRTIO_PCI_C_LAYOUT:
>
> +------------++---------------+---------------+-----------------+-----------------+
> | Bits || 29 | 3 | 29 | 3 |
> +------------++---------------+---------------+-----------------+-----------------+
> | Read/Write || R | R | R | R |
> +------------++---------------+---------------+-----------------+-----------------+
> | Purpose || Common config | Common config | Device specific | Device specific |
> | || Offset | BIR | Offset | BIR |
> +------------++---------------+---------------+-----------------+-----------------+
I'm implementing a different layout, with
separate capabilities for common and device specific
fields.
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Sasha Levin <levinsasha928@gmail.com>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
linux-kernel <linux-kernel@vger.kernel.org>,
kvm <kvm@vger.kernel.org>,
virtualization <virtualization@lists.linux-foundation.org>
Subject: Re: virtio-pci new configuration proposal
Date: Wed, 2 Nov 2011 21:08:06 +0200 [thread overview]
Message-ID: <20111102190804.GA13914@redhat.com> (raw)
In-Reply-To: <1320259767.22582.2.camel@lappy>
On Wed, Nov 02, 2011 at 08:49:27PM +0200, Sasha Levin wrote:
> This is a proposal for a new layout of the virtio-pci config space.
>
> We will separate the current configuration into two: A virtio-pci common
> configuration and a device specific configuration. This allows more flexibility
> with adding features and makes usage easier, specifically in cases like the
> ones in virtio-net where device specific configurations depend on device
> specific features.
>
> The preferred location of the configuration will be a MMIO BAR, therefore
> several size optimizations such as the queue selector which were useful
> on a PIO BAR were removed and linked lists were introduced to add
> flexibility to existing structures in attempt to keep their size and
> offsets constant and not dependent on features.
>
> While this is not a complete specification, it describes all the main
> structures and should be enough to make sure the idea is solid before
> going into implementation specifics.
>
> A new virtio-pci capability structure will be introduced. This structure
> will be used to describe the basics of a virtio-pci device. The
> structure is actually a PCI capability structure which wraps the new virtio-pci
> capability structure:
>
> +------------++------------+------------+------------+--------------+-----------------
> | Bits || 8 | 8 | 8 | 8 | Cap specific
> +------------++------------+------------+------------+--------------+-----------------
> | Read/Write || R | R | R | R | Cap specific
> +------------++------------+------------+------------+--------------+-----------------
> | Purpose || Capability | Capability | virtio-pci | virtio-pci | Cap specific
> | || ID | Next PTR | Cap ID | Next Cap PTR |
> +------------++------------+------------+------------+--------------+-----------------
>
> Currently, only one virtio-pci capability is defined, and is the one that defines
> the layout of the virtio-pci config space.
>
> VIRTIO_PCI_C_LAYOUT:
>
> +------------++---------------+---------------+-----------------+-----------------+
> | Bits || 29 | 3 | 29 | 3 |
> +------------++---------------+---------------+-----------------+-----------------+
> | Read/Write || R | R | R | R |
> +------------++---------------+---------------+-----------------+-----------------+
> | Purpose || Common config | Common config | Device specific | Device specific |
> | || Offset | BIR | Offset | BIR |
> +------------++---------------+---------------+-----------------+-----------------+
I'm implementing a different layout, with
separate capabilities for common and device specific
fields.
next prev parent reply other threads:[~2011-11-02 19:08 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-02 18:49 virtio-pci new configuration proposal Sasha Levin
2011-11-02 18:49 ` Sasha Levin
2011-11-02 19:08 ` Michael S. Tsirkin [this message]
2011-11-02 19:08 ` Michael S. Tsirkin
2011-11-02 19:07 ` Sasha Levin
2011-11-02 19:07 ` Sasha Levin
2011-11-02 19:14 ` Michael S. Tsirkin
2011-11-02 19:14 ` Michael S. Tsirkin
2011-11-03 1:58 ` Rusty Russell
2011-11-03 8:33 ` Sasha Levin
2011-11-03 8:33 ` Sasha Levin
2011-11-03 12:46 ` Michael S. Tsirkin
2011-11-03 12:46 ` Michael S. Tsirkin
2011-11-03 13:19 ` Sasha Levin
2011-11-03 13:19 ` Sasha Levin
2011-11-03 13:48 ` Michael S. Tsirkin
2011-11-03 13:48 ` Michael S. Tsirkin
2011-11-04 9:44 ` Rusty Russell
2011-11-04 11:40 ` Michael S. Tsirkin
2011-11-04 12:32 ` Sasha Levin
2011-11-04 12:32 ` Sasha Levin
2011-11-04 13:51 ` Michael S. Tsirkin
2011-11-04 13:51 ` Michael S. Tsirkin
2011-11-04 13:53 ` Sasha Levin
2011-11-04 14:23 ` Michael S. Tsirkin
2011-11-04 14:53 ` Sasha Levin
2011-11-04 14:53 ` Sasha Levin
2011-11-06 7:30 ` Michael S. Tsirkin
2011-11-06 7:30 ` Michael S. Tsirkin
2011-11-06 20:24 ` Sasha Levin
2011-11-06 20:24 ` Sasha Levin
2011-11-06 21:38 ` Michael S. Tsirkin
2011-11-06 21:38 ` Michael S. Tsirkin
2011-11-07 5:16 ` Rusty Russell
2011-11-07 5:16 ` Rusty Russell
2011-11-07 21:14 ` Michael S. Tsirkin
2011-11-07 21:14 ` Michael S. Tsirkin
2011-11-07 23:53 ` Rusty Russell
2011-11-07 23:53 ` Rusty Russell
2011-11-08 6:32 ` Michael S. Tsirkin
2011-11-08 6:32 ` Michael S. Tsirkin
2011-11-08 10:21 ` Rusty Russell
2011-11-08 10:21 ` Rusty Russell
2011-11-08 21:31 ` Michael S. Tsirkin
2011-11-08 21:31 ` Michael S. Tsirkin
2011-11-08 14:15 ` Sasha Levin
2011-11-08 14:15 ` Sasha Levin
2011-11-04 14:23 ` Michael S. Tsirkin
2011-11-04 13:53 ` Sasha Levin
2011-11-04 11:40 ` Michael S. Tsirkin
2011-11-04 9:44 ` Rusty Russell
2011-11-03 11:03 ` Michael S. Tsirkin
2011-11-03 11:03 ` Michael S. Tsirkin
2011-11-03 1:58 ` 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=20111102190804.GA13914@redhat.com \
--to=mst@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=levinsasha928@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=virtualization@lists.linux-foundation.org \
/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.