kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Zhao, Yu" <yu.zhao@intel.com>
To: Chris Wright <chrisw@sous-sol.org>
Cc: Greg KH <greg@kroah.com>, Matthew Wilcox <matthew@wil.cx>,
	H L <swdevyid@yahoo.com>,
	"randy.dunlap@oracle.com" <randy.dunlap@oracle.com>,
	"grundler@parisc-linux.org" <grundler@parisc-linux.org>,
	"achiang@hp.com" <achiang@hp.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"rdreier@cisco.com" <rdreier@cisco.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"jbarnes@virtuousgeek.org" <jbarnes@virtuousgeek.org>,
	"virtualization@lists.linux-foundation.org"
	<virtualization@lists.linux-foundation.org>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"mingo@elte.hu" <mingo@elte.hu>
Subject: Re: [PATCH 0/16 v6] PCI: Linux kernel SR-IOV support
Date: Fri, 07 Nov 2008 15:06:16 +0800	[thread overview]
Message-ID: <4913E8E8.5040103@intel.com> (raw)
In-Reply-To: <20081106235406.GB30790@sequoia.sous-sol.org>

Chris Wright wrote:
> * Greg KH (greg@kroah.com) wrote:
>> On Thu, Nov 06, 2008 at 10:47:41AM -0700, Matthew Wilcox wrote:
>>> On Thu, Nov 06, 2008 at 08:49:19AM -0800, Greg KH wrote:
>>>> On Thu, Nov 06, 2008 at 08:41:53AM -0800, H L wrote:
>>>>> I have not modified any existing drivers, but instead I threw together
>>>>> a bare-bones module enabling me to make a call to pci_iov_register()
>>>>> and then poke at an SR-IOV adapter's /sys entries for which no driver
>>>>> was loaded.
>>>>>
>>>>> It appears from my perusal thus far that drivers using these new
>>>>> SR-IOV patches will require modification; i.e. the driver associated
>>>>> with the Physical Function (PF) will be required to make the
>>>>> pci_iov_register() call along with the requisite notify() function.
>>>>> Essentially this suggests to me a model for the PF driver to perform
>>>>> any "global actions" or setup on behalf of VFs before enabling them
>>>>> after which VF drivers could be associated.
>>>> Where would the VF drivers have to be associated?  On the "pci_dev"
>>>> level or on a higher one?
>>>>
>>>> Will all drivers that want to bind to a "VF" device need to be
>>>> rewritten?
>>> The current model being implemented by my colleagues has separate
>>> drivers for the PF (aka native) and VF devices.  I don't personally
>>> believe this is the correct path, but I'm reserving judgement until I
>>> see some code.
>> Hm, I would like to see that code before we can properly evaluate this
>> interface.  Especially as they are all tightly tied together.
>>
>>> I don't think we really know what the One True Usage model is for VF
>>> devices.  Chris Wright has some ideas, I have some ideas and Yu Zhao has
>>> some ideas.  I bet there's other people who have other ideas too.
>> I'd love to hear those ideas.
> 
> First there's the question of how to represent the VF on the host.
> Ideally (IMO) this would show up as a normal interface so that normal tools
> can configure the interface.  This is not exactly how the first round of
> patches were designed.

Whether the VF can show up as a normal interface is decided by VF 
driver. VF is represented by 'pci_dev' at PCI level, so VF driver can be 
loaded as normal PCI device driver.

What the software representation (eth, framebuffer, etc.) created by VF 
driver is not controlled by SR-IOV framework.

So you definitely can use normal tool to configure the VF if its driver 
supports that :-)

> 
> Second there's the question of reserving the BDF on the host such that
> we don't have two drivers (one in the host and one in a guest) trying to
> drive the same device (an issue that shows up for device assignment as
> well as VF assignment).

If we don't reserve BDF for the device, they can't work neither in the 
host nor the guest.

Without BDF, we can't access the config space of the device, the device 
also can't do DMA.

Did I miss your point?

> 
> Third there's the question of whether the VF can be used in the host at
> all.

Why can't? My VFs work well in the host as normal PCI devices :-)

> 
> Fourth there's the question of whether the VF and PF drivers are the
> same or separate.

As I mentioned in another email of this thread. We can't predict how 
hardware vendor creates their SR-IOV device. PCI SIG doesn't define 
device specific logics.

So I think the answer of this question is up to the device driver 
developers. If PF and VF in a SR-IOV device have similar logics, then 
they can combine the driver. Otherwise, e.g., if PF doesn't have real 
functionality at all -- it only has registers to control internal 
resource allocation for VFs, then the drivers should be separate, right?

> 
> The typical usecase is assigning the VF to the guest directly, so
> there's only enough functionality in the host side to allocate a VF,
> configure it, and assign it (and propagate AER).  This is with separate
> PF and VF driver.
> 
> As Anthony mentioned, we are interested in allowing the host to use the
> VF.  This could be useful for containers as well as dedicating a VF (a
> set of device resources) to a guest w/out passing it through.

I've considered the container cases, we don't have problem with running 
VF driver in the host.

Thanks,
Yu

  parent reply	other threads:[~2008-11-07  7:06 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-10-22  8:38 [PATCH 0/16 v6] PCI: Linux kernel SR-IOV support Yu Zhao
2008-10-22  8:40 ` [PATCH 1/16 v6] PCI: remove unnecessary arg of pci_update_resource() Yu Zhao
2008-10-22  8:40 ` [PATCH 2/16 v6] PCI: define PCI resource names in an 'enum' Yu Zhao
2008-10-22 14:24   ` Bjorn Helgaas
2008-10-22 14:44     ` Yu Zhao
2008-10-22 14:51       ` Bjorn Helgaas
2008-10-22 14:53         ` Yu Zhao
2008-11-14  0:43   ` Simon Horman
2008-10-22  8:41 ` [PATCH 3/16 v6] PCI: export __pci_read_base Yu Zhao
2008-10-22  8:41 ` [PATCH 4/16 v6] PCI: make pci_alloc_child_bus() be able to handle NULL bridge Yu Zhao
2008-10-22  8:41 ` [PATCH 5/16 v6] PCI: add a wrapper for resource_alignment() Yu Zhao
2008-10-22  8:42 ` [PATCH 6/16 v6] PCI: add a new function to map BAR offset Yu Zhao
2008-10-22  8:42 ` [PATCH 7/16 v6] PCI: cleanup pcibios_allocate_resources() Yu Zhao
2008-10-23  7:10   ` Yinghai Lu
2008-10-23  6:50     ` Yu Zhao
2008-10-22  8:43 ` [PATCH 8/16 v6] PCI: add boot options to reassign resources Yu Zhao
2008-10-22 14:35   ` Bjorn Helgaas
2008-10-22 14:49     ` Yu Zhao
2008-10-22  8:43 ` [PATCH 9/16 v6] PCI: add boot option to align MMIO resources Yu Zhao
2008-10-22 14:34   ` Bjorn Helgaas
2008-10-22 14:52     ` Yu Zhao
2008-10-22  8:43 ` [PATCH 10/16 v6] PCI: cleanup pci_bus_add_devices() Yu Zhao
2008-10-22  8:44 ` [PATCH 11/16 v6] PCI: split a new function from pci_bus_add_devices() Yu Zhao
2008-10-22  8:44 ` [PATCH 12/16 v6] PCI: support the SR-IOV capability Yu Zhao
2008-10-22  8:44 ` [PATCH 13/16 v6] PCI: reserve bus range for SR-IOV device Yu Zhao
2008-10-22  8:45 ` [PATCH 14/16 v6] PCI: document for SR-IOV user and developer Yu Zhao
2008-10-22  8:45 ` [PATCH 15/16 v6] PCI: document the SR-IOV sysfs entries Yu Zhao
2008-11-06  4:33   ` Greg KH
2008-11-06  4:46     ` Greg KH
2008-11-07  3:01       ` Zhao, Yu
2008-11-07  3:18         ` Greg KH
2008-11-13  6:50           ` Yu Zhao
2008-11-14  0:55             ` Greg KH
2008-11-17  8:09               ` Yu Zhao
2008-11-18 15:05                 ` Greg KH
2008-11-18 16:49                 ` Kay Sievers
2008-10-22  8:45 ` [PATCH 16/16 v6] PCI: document the new PCI boot parameters Yu Zhao
2008-10-22 14:27   ` Bjorn Helgaas
2008-10-22 17:01     ` Randy Dunlap
2008-11-06  4:32   ` Greg KH
2008-11-07  2:37     ` Zhao, Yu
2008-11-07  2:50       ` Greg KH
2008-11-07  3:40         ` Zhao, Yu
2008-11-07  4:17           ` Matthew Wilcox
2008-12-11  1:43             ` Yu Zhao
2008-12-11  4:33               ` Grant Grundler
2008-12-11 15:39                 ` H L
2008-11-07  6:16           ` Greg KH
2008-11-07  7:50             ` Zhao, Yu
2008-11-07  8:02               ` Greg KH
2008-11-07  8:17                 ` Zhao, Yu
2008-11-07  8:24                   ` Greg KH
2008-11-07  8:35                     ` Zhao, Yu
2008-11-07 18:53                       ` Greg KH
2008-11-08  5:00                         ` Yu Zhao
2008-11-08  5:25                           ` Greg KH
2008-11-08  6:05                             ` Yu Zhao
2008-11-08  5:50                           ` freevanx
2008-11-08  5:54                             ` Greg KH
2008-11-09 14:19             ` Pavel Machek
2008-11-09 14:34               ` Alexander Graf
2008-11-06  4:48 ` [PATCH 0/16 v6] PCI: Linux kernel SR-IOV support Greg KH
2008-11-06 15:40   ` H L
2008-11-06 15:43     ` Greg KH
2008-11-06 16:41       ` H L
2008-11-06 16:49         ` Greg KH
2008-11-06 17:38           ` Fischer, Anna
2008-11-06 18:03             ` Greg KH
2008-11-06 20:04               ` Fischer, Anna
2008-11-09 12:44               ` Avi Kivity
2008-11-09 19:25                 ` Greg KH
2008-11-09 19:37                   ` Avi Kivity
2008-11-11  6:08                     ` Greg KH
2008-11-11  9:00                       ` Avi Kivity
2008-11-06 18:36             ` Matthew Wilcox
2008-11-06 22:38               ` Anthony Liguori
2008-11-06 22:58                 ` Matthew Wilcox
2008-11-07  6:19                   ` Greg KH
2008-11-07 15:17                     ` Yu Zhao
2008-11-07 18:48                       ` Greg KH
2008-11-08 11:09                         ` Fischer, Anna
2008-11-08 15:37                           ` Leonid Grossman
2008-11-13  7:49                         ` Yu Zhao
2008-11-09 12:47                   ` Avi Kivity
2008-11-07  1:52                 ` Dong, Eddie
2008-11-07  2:08                 ` Nakajima, Jun
2008-11-07 15:21                 ` Andi Kleen
2008-11-09 12:53                   ` Avi Kivity
2008-11-07 16:01                 ` Yu Zhao
     [not found]                 ` <87d4h7pnnm.fsf__4937.77150190926$1226071173$gmane$org@basil.nowhere.org>
2008-11-12 22:41                   ` Anthony Liguori
2008-11-16 16:04                     ` Avi Kivity
2008-11-17  1:46                       ` Zhao, Yu
2008-11-06 17:47           ` Matthew Wilcox
2008-11-06 17:53             ` Greg KH
2008-11-06 22:24               ` Simon Horman
2008-11-06 22:40               ` Anthony Liguori
2008-11-07  6:17                 ` Greg KH
2008-11-07  7:47                   ` Zhao, Yu
2008-11-11  0:18                     ` Rusty Russell
2008-11-17 12:01                       ` Yu Zhao
2008-11-09 12:58                   ` Avi Kivity
2008-11-09  6:41                 ` Muli Ben-Yehuda
2008-11-09 13:03                   ` Avi Kivity
2008-11-06 23:54               ` Chris Wright
2008-11-07  6:10                 ` Greg KH
2008-11-07  7:06                 ` Zhao, Yu [this message]
2008-11-07  7:29                   ` Leonid Grossman
2008-11-06 18:05           ` H L
2008-11-06 18:24             ` Greg KH
2008-11-07  6:03               ` Zhao, Yu
2008-11-06 16:51       ` git repository for SR-IOV development? H L
2008-11-06 16:59         ` Greg KH
2008-11-06 19:58           ` H L
2008-11-06 22:56             ` Simon Horman
2008-11-07  1:58             ` Greg KH
2008-11-07 13:09               ` Yu Zhao
2008-11-07  5:18   ` [PATCH 0/16 v6] PCI: Linux kernel SR-IOV support Zhao, Yu
2008-11-07  6:07     ` Greg KH
     [not found] <43F901BD926A4E43B106BF17856F07552F2E8F06@orsmsx508.amr.corp.intel.com>
     [not found] ` <9832F13BD22FB94A829F798DA4A82805018C18EE41@pdsmsx503.ccr.corp.intel.com>
     [not found]   ` <43F901BD926A4E43B106BF17856F07552F2E8F20@orsmsx508.amr.corp.intel.com>
     [not found]     ` <491D2F23.1080005@intel.com>
2008-11-14 17:40       ` Greg KH
2008-11-14 17:48         ` Rose, Gregory V
2008-11-14 18:39           ` Greg KH
2008-11-14 18:49             ` Ronciak, John
2008-11-14 19:30               ` Greg KH
2008-11-14 18:53             ` Rose, Gregory V

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=4913E8E8.5040103@intel.com \
    --to=yu.zhao@intel.com \
    --cc=achiang@hp.com \
    --cc=chrisw@sous-sol.org \
    --cc=greg@kroah.com \
    --cc=grundler@parisc-linux.org \
    --cc=jbarnes@virtuousgeek.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=matthew@wil.cx \
    --cc=mingo@elte.hu \
    --cc=randy.dunlap@oracle.com \
    --cc=rdreier@cisco.com \
    --cc=swdevyid@yahoo.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).