From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: xen-pciback.hide syntax Date: Fri, 19 Oct 2012 15:35:24 -0400 Message-ID: <20121019193523.GA27109@phenom.dumpdata.com> References: <571433688.20120519104615@eikelenboom.it> <20120730190006.GM4547@phenom.dumpdata.com> <1811240070.20120730214741@eikelenboom.it> <20120731152558.GM4789@phenom.dumpdata.com> <1896498692.20120731174014@eikelenboom.it> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1896498692.20120731174014@eikelenboom.it> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Sander Eikelenboom Cc: xen-devel List-Id: xen-devel@lists.xenproject.org On Tue, Jul 31, 2012 at 05:40:14PM +0200, Sander Eikelenboom wrote: > Hello Konrad, > > Tuesday, July 31, 2012, 5:25:58 PM, you wrote: > > > On Mon, Jul 30, 2012 at 09:47:41PM +0200, Sander Eikelenboom wrote: > >> Monday, July 30, 2012, 9:00:06 PM, you wrote: > >> > >> > On Sat, May 19, 2012 at 10:46:15AM +0200, Sander Eikelenboom wrote: > >> >> Hi Konrad, > >> >> > >> >> The syntax for specifying the devices for pciback to hide is "bus:device.function". > >> >> While thinking about cooking up a patch to be able to use a "*" wildcard for the function, i was wondering if not hiding all functions of a device is feasible at all. > >> >> > >> >> For what I understand of PCI, function 0 is always required, so if I only hide function 0, i can't use the other functions in dom0, since those functions would require a function 0, which is hidden. > >> >> > >> >> So would it be more logical to drop/ignore the function from the BDF, and always hide all functions from a device ? > >> > >> > That might run afoul of the SR-IOV virtual devices. They (when loaded) provide a fake > >> > bus:device:function, where the device is port (so if the SR-IOV card has two > >> > jacks, you get 00 and 01), and the function is for the amount of VFs it can make. > >> > On the Intel SR-IOV NIC with 'igbvf.max_vfs=7' I end up with 14 PCI devices, where > >> > the function bear no resemblence to each other (and can be passed in different guests). > >> > >> > The PCI restriction I know of is if the device is behind a bridge. The issue here > >> > is that .. well, you could pass in a different function to a different guest, but > >> > one guest's hardware device could listen on the other guests' function. It would > >> > require tweaking the driver to dump the contents of some registers and some deep > >> > hacking, but that is the security issue with that. > >> > >> Hmm that would mean there are three possibilities: > >> 1) Accept a Wildcard syntax like "bus:device.*", which would mean hide all functions of device. > > > Which in this context actually makes sense. You probably don't want to use the VF's in > > your host. > > In my use cases i always hide all functions, and since my usb controllers have 7 functions, that leads to quite some long lines. > > >> 2) Accept not providing the function as a wildcard "bus:device", would mean hide all functions of device. > > > . > >> > >> 3) Do nothing, the gained overview on grub lines isn't worth the effort :-) > > > Heh! > > > I think I like 2). > > I think that would be the most simple and straightforward to implement, the only thing is that the .cfg files seem to use the "bus:device.*" scheme ... > Don't know if there are any other related cmd options for the kernel that use a certain syntax that could be preferred ? > So Jan implemented this and it is in v3.7.