Kay, Allen M
2007-Sep-05 00:09 UTC
[Xen-devel] [VTD-NEO][patch 6/6] Intel VT-d/Neocleus 1:1 mreged code for PCI passthrough
arch/x86/mm changes. Signed-off-by: Allen Kay <allen.m.kay@intel.com> Signed-off-by: Guy Zana <guy@neocleus.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Kay, Allen M
2007-Sep-19 21:21 UTC
[Xen-devel] RE: [VTD-NEO][patch 6/6] Intel VT-d/Neocleus 1:1 mreged code for PCI passthrough
This is the last piece of initial vt-d code check-in: mm.patch : worked with Tim Deegan''s memory type changes in p2m/shadow. dom0.patch: create vt-d 1:1 mapping for dom0; call iommu_domain_init() in domain.c. These changes were tested against 15909. The changes made by cs# 15910 breaks even non-vtd vmx guest bring-up. It causes xen crash complaining about: "(XEN) Failed vm entry (exit reason 0x80000021) caused by invalid guest state (0)" Allen Signed-off-by: Allen Kay <allen.m.kay@intel.com> Signed-off-by: Guy Zana <guy@neocleus.com>>-----Original Message----- >From: Kay, Allen M >Sent: Tuesday, September 04, 2007 5:09 PM >To: xen-devel@lists.xensource.com >Cc: ''Keir Fraser''; Guy Zana >Subject: [VTD-NEO][patch 6/6] Intel VT-d/Neocleus 1:1 mreged >code for PCI passthrough > >arch/x86/mm changes. > >Signed-off-by: Allen Kay <allen.m.kay@intel.com> >Signed-off-by: Guy Zana <guy@neocleus.com> >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2007-Sep-20 08:35 UTC
Re: [Xen-devel] RE: [VTD-NEO][patch 6/6] Intel VT-d/Neocleus 1:1 mreged code for PCI passthrough
On 19/9/07 22:21, "Kay, Allen M" <allen.m.kay@intel.com> wrote:> dom0.patch: create vt-d 1:1 mapping for dom0; call iommu_domain_init() > in domain.c.Do PV guests actually need per-domain iommu state? If they do, isn''t release_devices() the partnering destructor function, and so should that not be invoked from domain.c too?> These changes were tested against 15909. The changes made by cs# 15910 > breaks even non-vtd vmx guest bring-up. It causes xen crash complaining > about: > > "(XEN) Failed vm entry (exit reason 0x80000021) caused by invalid guest > state (0)"How is the guest state broken? Does guest rflags have bit 1 set? -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2007-Sep-20 09:26 UTC
Re: [Xen-devel] RE: [VTD-NEO][patch 6/6] Intel VT-d/Neocleus 1:1 mreged code for PCI passthrough
On 20/9/07 09:35, "Keir Fraser" <Keir.Fraser@cl.cam.ac.uk> wrote:>> These changes were tested against 15909. The changes made by cs# 15910 >> breaks even non-vtd vmx guest bring-up. It causes xen crash complaining >> about: >> >> "(XEN) Failed vm entry (exit reason 0x80000021) caused by invalid guest >> state (0)" > > How is the guest state broken? Does guest rflags have bit 1 set?Ah, it''s broken for 64-bit hypervisor. I''m just testing a fix. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2007-Sep-20 09:30 UTC
Re: [Xen-devel] RE: [VTD-NEO][patch 6/6] Intel VT-d/Neocleus 1:1 mreged code for PCI passthrough
On 20/9/07 09:35, "Keir Fraser" <Keir.Fraser@cl.cam.ac.uk> wrote:>> dom0.patch: create vt-d 1:1 mapping for dom0; call iommu_domain_init() >> in domain.c. > > Do PV guests actually need per-domain iommu state? If they do, isn''t > release_devices() the partnering destructor function, and so should that not > be invoked from domain.c too?I checked in everything except the extra invocation of iommu_domain_init(). I want to understand what iommu_domain_init() and release_devices() do before deciding whether to move their invocations. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Kay, Allen M
2007-Sep-20 14:38 UTC
RE: [Xen-devel] RE: [VTD-NEO][patch 6/6] Intel VT-d/Neocleus 1:1 mreged code for PCI passthrough
>On 20/9/07 09:35, "Keir Fraser" <Keir.Fraser@cl.cam.ac.uk> wrote: > >>> dom0.patch: create vt-d 1:1 mapping for dom0; call >iommu_domain_init() >>> in domain.c. >> >> Do PV guests actually need per-domain iommu state? If they do, isn''t >> release_devices() the partnering destructor function, and so >should that not >> be invoked from domain.c too?The reason iommu_domain_init() initializes iommu domain strcture. Device_release() frees various memory used by iommu domain structure + it calls return_devices_to_dom0(). Return_devices_to_dom0() reassigns devices back to dom0 in vt-d hw and moves the pdev''s to dom0''s pdev_list. Iommu_domain_init() needs to be called in domain.c because dom0 needs it. Device_release can potentially be called in domain.c also - probably just need to add "if (d == dom0) return;" in return_devices_to_dom0(). PV guest is not currently supported right now. We had few pieces here and there but I removed it from the submission until we do some tests. Allen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel