From: "Daniel P. Berrange" <berrange@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: "Tian, Kevin" <kevin.tian@intel.com>,
kvm@vger.kernel.org, libvir-list@redhat.com,
Jike Song <jike.song@intel.com>,
Zhenyu Wang <zhenyuw@linux.intel.com>,
linux-kernel@vger.kernel.org, kwankhede@nvidia.com, "Gao,
Ping A" <ping.a.gao@intel.com>
Subject: Re: [libvirt] [RFC]Add new mdev interface for QoS
Date: Fri, 28 Jul 2017 09:10:10 +0100 [thread overview]
Message-ID: <20170728081010.GA31495@redhat.com> (raw)
In-Reply-To: <20170727120158.2a48f9ea@w520.home>
On Thu, Jul 27, 2017 at 12:01:58PM -0600, Alex Williamson wrote:
> On Thu, 27 Jul 2017 17:17:48 +0100
> "Daniel P. Berrange" <berrange@redhat.com> wrote:
>
> > On Wed, Jul 26, 2017 at 10:43:43AM -0600, Alex Williamson wrote:
> > > [cc +libvir-list]
> > >
> > > On Wed, 26 Jul 2017 21:16:59 +0800
> > > "Gao, Ping A" <ping.a.gao@intel.com> wrote:
> > >
> > > > The vfio-mdev provide the capability to let different guest share the
> > > > same physical device through mediate sharing, as result it bring a
> > > > requirement about how to control the device sharing, we need a QoS
> > > > related interface for mdev to management virtual device resource.
> > > >
> > > > E.g. In practical use, vGPUs assigned to different quests almost has
> > > > different performance requirements, some guests may need higher priority
> > > > for real time usage, some other may need more portion of the GPU
> > > > resource to get higher 3D performance, corresponding we can define some
> > > > interfaces like weight/cap for overall budget control, priority for
> > > > single submission control.
> > > >
> > > > So I suggest to add some common attributes which are vendor agnostic in
> > > > mdev core sysfs for QoS purpose.
> > >
> > > I think what you're asking for is just some standardization of a QoS
> > > attribute_group which a vendor can optionally include within the
> > > existing mdev_parent_ops.mdev_attr_groups. The mdev core will
> > > transparently enable this, but it really only provides the standard,
> > > all of the support code is left for the vendor. I'm fine with that,
> > > but of course the trouble with and sort of standardization is arriving
> > > at an agreed upon standard. Are there QoS knobs that are generic
> > > across any mdev device type? Are there others that are more specific
> > > to vGPU? Are there existing examples of this that we can steal their
> > > specification?
> > >
> > > Also, mdev devices are not necessarily the exclusive users of the
> > > hardware, we can have a native user such as a local X client. They're
> > > not an mdev user, so we can't support them via the mdev_attr_group.
> > > Does there need to be a per mdev parent QoS attribute_group standard
> > > for somehow defining the QoS of all the child mdev devices, or perhaps
> > > representing the remaining host QoS attributes?
> > >
> > > Ultimately libvirt and upper level management tools would be the
> > > consumer of these control knobs, so let's immediately get libvirt
> > > involved in the discussion. Thanks,
> >
> > My view on this from libvirt side is pretty much unchanged since the
> > last time we discussed this.
> >
> > We would like the kernel maintainers to define standard sets of properties
> > for mdevs, whether global to all mdevs, or scoped to certain classes of
> > mdev (eg a class=gpu). These properties would be exported in sysfs, with
> > one file per property.
>
> Yes, I think that much of the mechanics are obvious (standardized
> sysfs layout, one property per file, properties under the device node
> in sysfs, etc). Are you saying that you don't want to be consulted on
> which properties are exposed and how they operate and therefore won't
> complain regardless of what we implement in the kernel? ;)
Well ultimately the kernel maintainers know what is possible from the
hardware / driver POV, so yeah, I think we can mostly leave it upto
you what individual things need to be exposed - not much different
scenario from all the knobs we already exposed for physical devices.
> I'm hoping that libvirt folks have some experience managing basic
> scheduling level QoS attributes and might have some input as to what
> sorts of things work well vs what seems like a good idea, but falls
> apart or isn't useful in practice.
Sure, happy to give feedback where desired.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
WARNING: multiple messages have this Message-ID (diff)
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: "Gao, Ping A" <ping.a.gao@intel.com>,
"Tian, Kevin" <kevin.tian@intel.com>,
kvm@vger.kernel.org, libvir-list@redhat.com,
Jike Song <jike.song@intel.com>,
Zhenyu Wang <zhenyuw@linux.intel.com>,
linux-kernel@vger.kernel.org, kwankhede@nvidia.com
Subject: Re: [libvirt] [RFC]Add new mdev interface for QoS
Date: Fri, 28 Jul 2017 09:10:10 +0100 [thread overview]
Message-ID: <20170728081010.GA31495@redhat.com> (raw)
In-Reply-To: <20170727120158.2a48f9ea@w520.home>
On Thu, Jul 27, 2017 at 12:01:58PM -0600, Alex Williamson wrote:
> On Thu, 27 Jul 2017 17:17:48 +0100
> "Daniel P. Berrange" <berrange@redhat.com> wrote:
>
> > On Wed, Jul 26, 2017 at 10:43:43AM -0600, Alex Williamson wrote:
> > > [cc +libvir-list]
> > >
> > > On Wed, 26 Jul 2017 21:16:59 +0800
> > > "Gao, Ping A" <ping.a.gao@intel.com> wrote:
> > >
> > > > The vfio-mdev provide the capability to let different guest share the
> > > > same physical device through mediate sharing, as result it bring a
> > > > requirement about how to control the device sharing, we need a QoS
> > > > related interface for mdev to management virtual device resource.
> > > >
> > > > E.g. In practical use, vGPUs assigned to different quests almost has
> > > > different performance requirements, some guests may need higher priority
> > > > for real time usage, some other may need more portion of the GPU
> > > > resource to get higher 3D performance, corresponding we can define some
> > > > interfaces like weight/cap for overall budget control, priority for
> > > > single submission control.
> > > >
> > > > So I suggest to add some common attributes which are vendor agnostic in
> > > > mdev core sysfs for QoS purpose.
> > >
> > > I think what you're asking for is just some standardization of a QoS
> > > attribute_group which a vendor can optionally include within the
> > > existing mdev_parent_ops.mdev_attr_groups. The mdev core will
> > > transparently enable this, but it really only provides the standard,
> > > all of the support code is left for the vendor. I'm fine with that,
> > > but of course the trouble with and sort of standardization is arriving
> > > at an agreed upon standard. Are there QoS knobs that are generic
> > > across any mdev device type? Are there others that are more specific
> > > to vGPU? Are there existing examples of this that we can steal their
> > > specification?
> > >
> > > Also, mdev devices are not necessarily the exclusive users of the
> > > hardware, we can have a native user such as a local X client. They're
> > > not an mdev user, so we can't support them via the mdev_attr_group.
> > > Does there need to be a per mdev parent QoS attribute_group standard
> > > for somehow defining the QoS of all the child mdev devices, or perhaps
> > > representing the remaining host QoS attributes?
> > >
> > > Ultimately libvirt and upper level management tools would be the
> > > consumer of these control knobs, so let's immediately get libvirt
> > > involved in the discussion. Thanks,
> >
> > My view on this from libvirt side is pretty much unchanged since the
> > last time we discussed this.
> >
> > We would like the kernel maintainers to define standard sets of properties
> > for mdevs, whether global to all mdevs, or scoped to certain classes of
> > mdev (eg a class=gpu). These properties would be exported in sysfs, with
> > one file per property.
>
> Yes, I think that much of the mechanics are obvious (standardized
> sysfs layout, one property per file, properties under the device node
> in sysfs, etc). Are you saying that you don't want to be consulted on
> which properties are exposed and how they operate and therefore won't
> complain regardless of what we implement in the kernel? ;)
Well ultimately the kernel maintainers know what is possible from the
hardware / driver POV, so yeah, I think we can mostly leave it upto
you what individual things need to be exposed - not much different
scenario from all the knobs we already exposed for physical devices.
> I'm hoping that libvirt folks have some experience managing basic
> scheduling level QoS attributes and might have some input as to what
> sorts of things work well vs what seems like a good idea, but falls
> apart or isn't useful in practice.
Sure, happy to give feedback where desired.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2017-07-28 8:10 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-26 13:16 [RFC]Add new mdev interface for QoS Gao, Ping A
2017-07-26 16:43 ` Alex Williamson
2017-07-27 16:00 ` Gao, Ping A
2017-08-01 5:54 ` Gao, Ping A
2017-08-01 22:26 ` Alex Williamson
2017-08-02 2:50 ` Tian, Kevin
2017-08-02 10:19 ` Kirti Wankhede
2017-08-02 12:59 ` Gao, Ping A
2017-08-02 15:46 ` Kirti Wankhede
2017-08-02 16:58 ` Alex Williamson
2017-08-03 12:26 ` Gao, Ping A
2017-08-03 21:11 ` Alex Williamson
2017-08-07 7:41 ` Gao, Ping A
2017-08-08 6:42 ` Kirti Wankhede
2017-08-08 12:48 ` Gao, Ping A
2017-07-27 16:17 ` [libvirt] " Daniel P. Berrange
2017-07-27 18:01 ` Alex Williamson
2017-07-27 18:01 ` Alex Williamson
2017-07-28 8:10 ` Daniel P. Berrange [this message]
2017-07-28 8:10 ` Daniel P. Berrange
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=20170728081010.GA31495@redhat.com \
--to=berrange@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=jike.song@intel.com \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=kwankhede@nvidia.com \
--cc=libvir-list@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=ping.a.gao@intel.com \
--cc=zhenyuw@linux.intel.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.