From: Gordan Bobic <gordan@bobich.net>
To: "Zhang, Yang Z" <yang.z.zhang@intel.com>,
Jan Beulich <JBeulich@suse.com>,
Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: Dealing with non-existent BDF devices in VT-d and in the hardware.
Date: Thu, 20 Mar 2014 07:14:16 +0000 [thread overview]
Message-ID: <532A9548.80901@bobich.net> (raw)
In-Reply-To: <A9667DDFB95DB7438FA9D7D576C3D87E0AA1C15D@SHSMSX104.ccr.corp.intel.com>
On 03/20/2014 12:48 AM, Zhang, Yang Z wrote:
> Jan Beulich wrote on 2014-03-19:
>>>>> On 19.03.14 at 13:57, Konrad Rzeszutek Wilk
>>>>> <konrad.wilk@oracle.com>
>> wrote:
>>> On Wed, Mar 19, 2014 at 12:32:31AM +0000, Zhang, Yang Z wrote:
>>>> Konrad Rzeszutek Wilk wrote on 2014-03-18:
>>>>> On Mon, Mar 17, 2014 at 01:03:00AM +0000, Zhang, Yang Z wrote:
>>>>> I think there are two issues here:
>>>>>
>>>>> a) Missing device assigments via groups. That should be done irregardless
>>>>> if the device / hardware is buggy.
>>>>
>>>> Yes, this is missing.
>>>>
>>>>> b) Buggy devices like the IDT bridge that I see. That is a
>>>>> seperate issue -
>>> and
>>>>> we just discussion if we want to inject that in the VT-d (or
>>>>> AMD-VI)
>> what
>>>>> would be the mechanism to do that.
>>>>
>>>> The question is that device 08:00.0 doesn't exist in your platform,
>>>> you only
>>> saw the BDF in the DMA transaction. How can you add a non-exist
>>> device to a group?
>>>
>>> Why do I need to add it to a group? The patch I posted (see first
>>> email in this thread) just made a fake PCI device in the Xen
>>> hypervisor. But I don't see libxl nor QEMU doing any group
>>> operations
>>> - so why are they required? If I just bundle all of the PCI devices
>>> underneath that bridge to the guest it should be OK, shouldn't it?
>>
>> It should. You're in trouble if (by mistake) you don't pass them all,
>> and to avoid that is what the grouping seems to have been intended
>> for. The fact that only xend used it (and even then only for checking
>> rather to enforce the grouping) doesn't help it of course. But that
>> grouping issue is orthogonal to your issue, it's just that the group
>> assignment (if it were there) could take care of the assignment part
>> of your issue - the create-a-fake-device part would remain.
>
> fake a device is a solution. But I am thinking (maybe I am wrong) why
> not setup all VT-d entries under a bridge if passing a PCI device under
> a bridge. Because when passing a PCI device under a bridge, all devices
> under bridge should be assigned to the guest too. What current Xen dose
> is only set the entry which has device, so why not extend it to setup
> all entries? In this case, there is no user input is required.
I'm not sure if I'm reading this right, but you wouldn't necessarily be
passing all devices under a particular bridge to guests (and certainly
not necessarily to the same guest). You could have multiple levels of
bridges to provide extra PCIe links. One obvious example is dual GPU
cards where both GPUs are under a bridge, but you wouldn't necessarily
be passing both devices to a guest (one might be the primary GPU for the
host).
Gordan
next prev parent reply other threads:[~2014-03-20 7:14 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-11 17:30 Dealing with non-existent BDF devices in VT-d and in the hardware Konrad Rzeszutek Wilk
2014-03-11 17:36 ` Andrew Cooper
2014-03-11 17:49 ` Konrad Rzeszutek Wilk
2014-03-14 2:18 ` Zhang, Yang Z
2014-03-14 17:51 ` Konrad Rzeszutek Wilk
2014-03-17 1:03 ` Zhang, Yang Z
2014-03-17 20:00 ` Konrad Rzeszutek Wilk
2014-03-19 0:32 ` Zhang, Yang Z
2014-03-19 12:57 ` Konrad Rzeszutek Wilk
2014-03-19 14:24 ` Jan Beulich
2014-03-20 0:48 ` Zhang, Yang Z
2014-03-20 7:14 ` Gordan Bobic [this message]
2014-03-20 10:04 ` Jan Beulich
2014-03-20 9:58 ` Jan Beulich
2014-03-24 2:37 ` Zhang, Yang Z
2014-03-24 7:25 ` Jan Beulich
2014-03-12 9:17 ` Jan Beulich
2014-03-12 14:22 ` Konrad Rzeszutek Wilk
2014-03-12 17:10 ` Gordan Bobic
-- strict thread matches above, loose matches on Subject: below --
2014-03-20 1:34 Konrad Rzeszutek Wilk
2014-03-20 10:02 ` Jan Beulich
2014-03-20 19:44 ` Konrad Rzeszutek Wilk
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=532A9548.80901@bobich.net \
--to=gordan@bobich.net \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=konrad.wilk@oracle.com \
--cc=xen-devel@lists.xensource.com \
--cc=yang.z.zhang@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 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).