From: "Michael S. Tsirkin" <mst@redhat.com> To: virtio-comment@lists.oasis-open.org, virtio-dev@lists.oasis-open.org, jasowang@redhat.com, mst@redhat.com, cohuck@redhat.com, sgarzare@redhat.com, stefanha@redhat.com, nrupal.jani@intel.com, Piotr.Uminski@intel.com, hang.yuan@intel.com Cc: virtio@lists.oasis-open.org, Jiri Pirko <jiri@nvidia.com>, Zhu Lingshan <lingshan.zhu@intel.com>, pasic@linux.ibm.com, Shahaf Shuler <shahafs@nvidia.com>, Parav Pandit <parav@nvidia.com>, Max Gurtovoy <mgurtovoy@nvidia.com> Subject: [virtio-dev] [PATCH v13 02/10] admin: introduce device group and related concepts Date: Fri, 5 May 2023 11:40:41 -0400 [thread overview] Message-ID: <d12263629be44bda17b8e12beea69bc6ef82eeb1.1683301091.git.mst@redhat.com> (raw) In-Reply-To: <cover.1683301091.git.mst@redhat.com> Each device group has a type. For now, define one initial group type: SR-IOV type - PCI SR-IOV virtual functions (VFs) of a given PCI SR-IOV physical function (PF). This group may contain zero or more virtio devices according to NumVFs configured. Each device within a group has a unique identifier. This identifier is the group member identifier. Note: one can argue both ways whether the new device group handling functionality (this and following patches) is closer to a new device type or a new transport type. However, it's expected that we will add more features in the near future. To facilitate this as much as possible of the text is located in the new admin chapter. Effort was made to minimize transport-specific text. There's a bit of duplication with 0x1 repeated twice and no special section for group type identifiers. It seems ok to defer adding these until we have more group types. Based-on-patch-by: Max Gurtovoy <mgurtovoy@nvidia.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> --- changes in v12: stefan's ack minor commit log tweaks, Parav use neutral tone, Parav changes in v11: dropped Max's S.O.B. dropped an unmatched ) as reported by Parav document that member id is 1 to numvfs document that vf enable must be set (will also be reflected in the conformance section) document that we deferred generalizing text as requested by Parav - I think we can do it later minor wording fixes to address comments by David add concepts of owner and member driver. unused currently but will come in handy later, as suggested by Stefan --- admin.tex | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ content.tex | 2 ++ 2 files changed, 65 insertions(+) create mode 100644 admin.tex diff --git a/admin.tex b/admin.tex new file mode 100644 index 0000000..05d506a --- /dev/null +++ b/admin.tex @@ -0,0 +1,63 @@ +\section{Device groups}\label{sec:Basic Facilities of a Virtio Device / Device groups} + +It is occasionally useful to have a device control a group of +other devices. Terminology used in such cases: + +\begin{description} +\item[Device group] + or just group, includes zero or more devices. +\item[Owner device] + or owner, the device controlling the group. +\item[Member device] + a device within a group. The owner device itself is not + a member of the group. +\item[Member identifier] + each member has this identifier, unique within the group + and used to address it through the owner device. +\item[Group type identifier] + specifies what kind of member devices there are in a + group, how the member identifier is interpreted + and what kind of control the owner has. + A given owner can control multiple groups + of different types but only a single group of a given type, + thus the type and the owner together identify the group. + \footnote{Even though some group types only support + specific transports, group type identifiers + are global rather than transport-specific - + a flood of new group types is not expected.} +\end{description} + +\begin{note} +Each device only has a single driver, thus for the purposes of +this section, "the driver" is usually unambiguous and refers to +the driver of the owner device. When there's ambiguity, "owner +driver" refers to the driver of the owner device, while "member +driver" refers to the driver of a member device. +\end{note} + +The following group types, and their identifiers, are currently specified: +\begin{description} +\item[SR-IOV group type (0x1)] +This device group has a PCI Single Root I/O Virtualization +(SR-IOV) physical function (PF) device as the owner and includes +all its SR-IOV virtual functions (VFs) as members (see +\hyperref[intro:PCIe]{[PCIe]}). + +The PF device itself is not a member of the group. + +The group type identifier for this group is 0x1. + +A member identifier for this group can have a value from 0x1 to +\field{NumVFs} as specified in the +SR-IOV Extended Capability of the owner device +and equals the SR-IOV VF number of the member device; +the group only exists when the \field{VF Enable} bit +in the SR-IOV Control Register within the +SR-IOV Extended Capability of the owner device is set +(see \hyperref[intro:PCIe]{[PCIe]}). + +Both owner and member devices for this group type use the Virtio +PCI transport (see \ref{sec:Virtio Transport Options / Virtio Over PCI Bus}). +\end{description} + + diff --git a/content.tex b/content.tex index 4ec2d76..aecda0e 100644 --- a/content.tex +++ b/content.tex @@ -493,6 +493,8 @@ \section{Exporting Objects}\label{sec:Basic Facilities of a Virtio Device / Expo types. It is RECOMMENDED that devices generate version 4 UUIDs as specified by \hyperref[intro:rfc4122]{[RFC4122]}. +\input{admin.tex} + \chapter{General Initialization And Device Operation}\label{sec:General Initialization And Device Operation} We start with an overview of device initialization, then expand on the -- MST --------------------------------------------------------------------- To unsubscribe, e-mail: virtio-dev-unsubscribe@lists.oasis-open.org For additional commands, e-mail: virtio-dev-help@lists.oasis-open.org
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com> To: virtio-comment@lists.oasis-open.org, virtio-dev@lists.oasis-open.org, jasowang@redhat.com, mst@redhat.com, cohuck@redhat.com, sgarzare@redhat.com, stefanha@redhat.com, nrupal.jani@intel.com, Piotr.Uminski@intel.com, hang.yuan@intel.com Cc: virtio@lists.oasis-open.org, Jiri Pirko <jiri@nvidia.com>, Zhu Lingshan <lingshan.zhu@intel.com>, pasic@linux.ibm.com, Shahaf Shuler <shahafs@nvidia.com>, Parav Pandit <parav@nvidia.com>, Max Gurtovoy <mgurtovoy@nvidia.com> Subject: [virtio-comment] [PATCH v13 02/10] admin: introduce device group and related concepts Date: Fri, 5 May 2023 11:40:41 -0400 [thread overview] Message-ID: <d12263629be44bda17b8e12beea69bc6ef82eeb1.1683301091.git.mst@redhat.com> (raw) In-Reply-To: <cover.1683301091.git.mst@redhat.com> Each device group has a type. For now, define one initial group type: SR-IOV type - PCI SR-IOV virtual functions (VFs) of a given PCI SR-IOV physical function (PF). This group may contain zero or more virtio devices according to NumVFs configured. Each device within a group has a unique identifier. This identifier is the group member identifier. Note: one can argue both ways whether the new device group handling functionality (this and following patches) is closer to a new device type or a new transport type. However, it's expected that we will add more features in the near future. To facilitate this as much as possible of the text is located in the new admin chapter. Effort was made to minimize transport-specific text. There's a bit of duplication with 0x1 repeated twice and no special section for group type identifiers. It seems ok to defer adding these until we have more group types. Based-on-patch-by: Max Gurtovoy <mgurtovoy@nvidia.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> --- changes in v12: stefan's ack minor commit log tweaks, Parav use neutral tone, Parav changes in v11: dropped Max's S.O.B. dropped an unmatched ) as reported by Parav document that member id is 1 to numvfs document that vf enable must be set (will also be reflected in the conformance section) document that we deferred generalizing text as requested by Parav - I think we can do it later minor wording fixes to address comments by David add concepts of owner and member driver. unused currently but will come in handy later, as suggested by Stefan --- admin.tex | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++ content.tex | 2 ++ 2 files changed, 65 insertions(+) create mode 100644 admin.tex diff --git a/admin.tex b/admin.tex new file mode 100644 index 0000000..05d506a --- /dev/null +++ b/admin.tex @@ -0,0 +1,63 @@ +\section{Device groups}\label{sec:Basic Facilities of a Virtio Device / Device groups} + +It is occasionally useful to have a device control a group of +other devices. Terminology used in such cases: + +\begin{description} +\item[Device group] + or just group, includes zero or more devices. +\item[Owner device] + or owner, the device controlling the group. +\item[Member device] + a device within a group. The owner device itself is not + a member of the group. +\item[Member identifier] + each member has this identifier, unique within the group + and used to address it through the owner device. +\item[Group type identifier] + specifies what kind of member devices there are in a + group, how the member identifier is interpreted + and what kind of control the owner has. + A given owner can control multiple groups + of different types but only a single group of a given type, + thus the type and the owner together identify the group. + \footnote{Even though some group types only support + specific transports, group type identifiers + are global rather than transport-specific - + a flood of new group types is not expected.} +\end{description} + +\begin{note} +Each device only has a single driver, thus for the purposes of +this section, "the driver" is usually unambiguous and refers to +the driver of the owner device. When there's ambiguity, "owner +driver" refers to the driver of the owner device, while "member +driver" refers to the driver of a member device. +\end{note} + +The following group types, and their identifiers, are currently specified: +\begin{description} +\item[SR-IOV group type (0x1)] +This device group has a PCI Single Root I/O Virtualization +(SR-IOV) physical function (PF) device as the owner and includes +all its SR-IOV virtual functions (VFs) as members (see +\hyperref[intro:PCIe]{[PCIe]}). + +The PF device itself is not a member of the group. + +The group type identifier for this group is 0x1. + +A member identifier for this group can have a value from 0x1 to +\field{NumVFs} as specified in the +SR-IOV Extended Capability of the owner device +and equals the SR-IOV VF number of the member device; +the group only exists when the \field{VF Enable} bit +in the SR-IOV Control Register within the +SR-IOV Extended Capability of the owner device is set +(see \hyperref[intro:PCIe]{[PCIe]}). + +Both owner and member devices for this group type use the Virtio +PCI transport (see \ref{sec:Virtio Transport Options / Virtio Over PCI Bus}). +\end{description} + + diff --git a/content.tex b/content.tex index 4ec2d76..aecda0e 100644 --- a/content.tex +++ b/content.tex @@ -493,6 +493,8 @@ \section{Exporting Objects}\label{sec:Basic Facilities of a Virtio Device / Expo types. It is RECOMMENDED that devices generate version 4 UUIDs as specified by \hyperref[intro:rfc4122]{[RFC4122]}. +\input{admin.tex} + \chapter{General Initialization And Device Operation}\label{sec:General Initialization And Device Operation} We start with an overview of device initialization, then expand on the -- MST This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/
next prev parent reply other threads:[~2023-05-05 15:40 UTC|newest] Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-05-05 15:40 [virtio-dev] [PATCH v13 00/10] Introduce device group and device management Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-dev] [PATCH v13 01/10] virtio: document forward compatibility guarantees Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 15:40 ` Michael S. Tsirkin [this message] 2023-05-05 15:40 ` [virtio-comment] [PATCH v13 02/10] admin: introduce device group and related concepts Michael S. Tsirkin 2023-05-05 16:46 ` [virtio-dev] " Parav Pandit 2023-05-05 16:46 ` [virtio-comment] " Parav Pandit 2023-05-05 15:40 ` [virtio-dev] [PATCH v13 03/10] admin: introduce group administration commands Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 16:03 ` [virtio-dev] " Parav Pandit 2023-05-05 16:03 ` [virtio-comment] " Parav Pandit 2023-05-05 16:39 ` [virtio-dev] RE: [virtio] " Parav Pandit 2023-05-05 16:39 ` [virtio-comment] " Parav Pandit 2023-05-05 15:40 ` [virtio-dev] [PATCH v13 04/10] admin: introduce virtio admin virtqueues Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 16:59 ` [virtio-dev] " Parav Pandit 2023-05-05 16:59 ` [virtio-comment] " Parav Pandit 2023-05-05 15:40 ` [virtio-dev] [PATCH v13 05/10] pci: add admin vq registers to virtio over pci Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 17:21 ` [virtio-dev] " Parav Pandit 2023-05-05 17:21 ` [virtio-comment] " Parav Pandit 2023-05-05 15:40 ` [virtio-dev] [PATCH v13 06/10] mmio: document ADMIN_VQ as reserved Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-dev] [PATCH v13 07/10] ccw: " Michael S. Tsirkin 2023-05-05 15:40 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 15:41 ` [virtio-dev] [PATCH v13 08/10] admin: command list discovery Michael S. Tsirkin 2023-05-05 15:41 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 17:26 ` [virtio-dev] " Parav Pandit 2023-05-05 17:26 ` [virtio-comment] " Parav Pandit 2023-05-05 15:41 ` [virtio-dev] [PATCH v13 09/10] admin: conformance clauses Michael S. Tsirkin 2023-05-05 15:41 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 15:41 ` [virtio-dev] [PATCH v13 10/10] ccw: document more reserved features Michael S. Tsirkin 2023-05-05 15:41 ` [virtio-comment] " Michael S. Tsirkin 2023-05-05 17:23 ` [virtio-dev] " Parav Pandit 2023-05-05 17:23 ` [virtio-comment] " Parav Pandit 2023-05-05 15:45 ` [virtio-dev] Re: [PATCH v13 00/10] Introduce device group and device management Michael S. Tsirkin 2023-05-05 15:45 ` [virtio-comment] " Michael S. Tsirkin 2023-05-10 14:30 ` [virtio-dev] " Jiri Pirko 2023-05-10 14:30 ` [virtio-comment] " Jiri Pirko 2023-05-10 14:33 ` [virtio-dev] " Parav Pandit 2023-05-10 14:33 ` [virtio-comment] " Parav Pandit 2023-05-10 14:45 ` [virtio-dev] " Jiri Pirko 2023-05-10 14:45 ` [virtio-comment] " Jiri Pirko 2023-05-10 16:11 ` Michael S. Tsirkin 2023-05-10 16:11 ` [virtio-dev] " 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=d12263629be44bda17b8e12beea69bc6ef82eeb1.1683301091.git.mst@redhat.com \ --to=mst@redhat.com \ --cc=Piotr.Uminski@intel.com \ --cc=cohuck@redhat.com \ --cc=hang.yuan@intel.com \ --cc=jasowang@redhat.com \ --cc=jiri@nvidia.com \ --cc=lingshan.zhu@intel.com \ --cc=mgurtovoy@nvidia.com \ --cc=nrupal.jani@intel.com \ --cc=parav@nvidia.com \ --cc=pasic@linux.ibm.com \ --cc=sgarzare@redhat.com \ --cc=shahafs@nvidia.com \ --cc=stefanha@redhat.com \ --cc=virtio-comment@lists.oasis-open.org \ --cc=virtio-dev@lists.oasis-open.org \ --cc=virtio@lists.oasis-open.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: linkBe 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.