Message ID | 1397207932.19944.58.camel@shinybook.infradead.org (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
Sorry for the delay, I've been having to take turns for this box. On Fri, 2014-04-11 at 09:18 +0000, Woodhouse, David wrote: > On Thu, 2014-04-10 at 09:19 -0700, Davidlohr Bueso wrote: > > Attaching a dmesg from one of the kernels that boots. It doesn't appear > > to have much of the related information... is there any debug config > > option I can enable that might give you more data? > > I'd like the contents of /sys/firmware/acpi/tables/DMAR please. Attached is the disassembly of the raw output. > And > please could you also apply this patch to both the last-working and > first-failing kernels and show me the output in both cases? So I still cannot get around getting the info for the first failing kernel, but below is for the last working. Thanks. Device 0:03:00.0 on IOMMU at a8000000 Device 0:03:00.0 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:02:00.0 [0x7f61e000 - 0x7f61ffff] Device 0:02:00.0 on IOMMU at a8000000 Device 0:02:00.0 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:02:00.2 [0x7f61e000 - 0x7f61ffff] Device 0:02:00.2 on IOMMU at a8000000 Device 0:02:00.2 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:00:1d.0 [0x7f7e7000 - 0x7f7ecfff] Device 0:00:1d.0 on IOMMU at a8000000 Device 0:00:1d.0 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:00:1d.1 [0x7f7e7000 - 0x7f7ecfff] Device 0:00:1d.1 on IOMMU at a8000000 Device 0:00:1d.1 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:00:1d.2 [0x7f7e7000 - 0x7f7ecfff] Device 0:00:1d.2 on IOMMU at a8000000 Device 0:00:1d.2 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:00:1d.3 [0x7f7e7000 - 0x7f7ecfff] Device 0:00:1d.3 on IOMMU at a8000000 Device 0:00:1d.3 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:02:00.0 [0x7f7e7000 - 0x7f7ecfff] Device 0:02:00.0 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:02:00.2 [0x7f7e7000 - 0x7f7ecfff] Device 0:02:00.2 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:02:00.4 [0x7f7e7000 - 0x7f7ecfff] Device 0:02:00.4 on IOMMU at a8000000 Device 0:02:00.4 on IOMMU at a8000000 IOMMU: Setting identity map for device 0000:00:1d.7 [0x7f7ee000 - 0x7f7effff] Device 0:00:1d.7 on IOMMU at a8000000 Device 0:00:1d.7 on IOMMU at a8000000 IOMMU: Prepare 0-16MiB unity mapping for LPC IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff] Device 0:00:1f.0 on IOMMU at a8000000 Device 0:00:1f.0 on IOMMU at a8000000 PCI-DMA: Intel(R) Virtualization Technology for Directed I/O Device 0:00:00.0 on IOMMU at a8000000 Device 0:00:01.0 on IOMMU at a8000000 Device 0:00:02.0 on IOMMU at a8000000 Device 0:00:03.0 on IOMMU at a8000000 Device 0:00:04.0 on IOMMU at a8000000 Device 0:00:05.0 on IOMMU at a8000000 Device 0:00:06.0 on IOMMU at a8000000 Device 0:00:07.0 on IOMMU at a8000000 Device 0:00:08.0 on IOMMU at a8000000 Device 0:00:09.0 on IOMMU at a8000000 Device 0:00:0a.0 on IOMMU at a8000000 Device 0:00:14.0 on IOMMU at a8000000 Device 0:00:1c.0 on IOMMU at a8000000 Device 0:00:1c.4 on IOMMU at a8000000 Device 0:00:1d.0 on IOMMU at a8000000 Device 0:00:1d.1 on IOMMU at a8000000 Device 0:00:1d.2 on IOMMU at a8000000 Device 0:00:1d.3 on IOMMU at a8000000 Device 0:00:1d.7 on IOMMU at a8000000 Device 0:00:1e.0 on IOMMU at a8000000 Device 0:00:1f.0 on IOMMU at a8000000 Device 0:04:00.0 on IOMMU at a8000000 Device 0:04:00.1 on IOMMU at a8000000 Device 0:04:00.2 on IOMMU at a8000000 Device 0:04:00.3 on IOMMU at a8000000 Device 0:03:00.0 on IOMMU at a8000000 Device 0:02:00.0 on IOMMU at a8000000 Device 0:02:00.2 on IOMMU at a8000000 Device 0:02:00.4 on IOMMU at a8000000 Device 0:01:03.0 on IOMMU at a8000000 Device 0:50:00.0 on IOMMU at ac000000 Device 0:50:01.0 on IOMMU at ac000000 Device 0:50:02.0 on IOMMU at ac000000 Device 0:50:03.0 on IOMMU at ac000000 Device 0:50:04.0 on IOMMU at ac000000 Device 0:50:05.0 on IOMMU at ac000000 Device 0:50:06.0 on IOMMU at ac000000 Device 0:50:07.0 on IOMMU at ac000000 Device 0:50:08.0 on IOMMU at ac000000 Device 0:50:09.0 on IOMMU at ac000000 Device 0:50:0a.0 on IOMMU at ac000000 Device 0:50:14.0 on IOMMU at a8000000 Device 0:a0:00.0 on IOMMU at b0000000 Device 0:a0:01.0 on IOMMU at b0000000 Device 0:a0:02.0 on IOMMU at b0000000 Device 0:a0:03.0 on IOMMU at b0000000 Device 0:a0:04.0 on IOMMU at b0000000 Device 0:a0:05.0 on IOMMU at b0000000 Device 0:a0:06.0 on IOMMU at b0000000 Device 0:a0:07.0 on IOMMU at b0000000 Device 0:a0:08.0 on IOMMU at b0000000 Device 0:a0:09.0 on IOMMU at b0000000 Device 0:a0:0a.0 on IOMMU at b0000000 Device 0:a0:14.0 on IOMMU at a8000000 Device 0:7c:00.0 on IOMMU at a8000000 Device 0:7c:08.0 on IOMMU at a8000000 Device 0:82:00.0 on IOMMU at a8000000 Device 0:82:08.0 on IOMMU at a8000000
Hi Davidlohr, Thanks for providing the DMAR table. According to the DMAR table, one bug in the iommu driver fails to handle this entry: [1D2h 0466 1] Device Scope Entry Type : 01 [1D3h 0467 1] Entry Length : 0A [1D4h 0468 2] Reserved : 0000 [1D6h 0470 1] Enumeration ID : 00 [1D7h 0471 1] PCI Bus Number : 00 [1D8h 0472 2] PCI Path : 1C,04 [1DAh 0474 2] PCI Path : 00,02 And the patch sent out by me should fix this bug. Could you please help to have a try? Thanks! Gerry On 2014/4/14 23:45, Davidlohr Bueso wrote: > Sorry for the delay, I've been having to take turns for this box. > > On Fri, 2014-04-11 at 09:18 +0000, Woodhouse, David wrote: >> On Thu, 2014-04-10 at 09:19 -0700, Davidlohr Bueso wrote: >>> Attaching a dmesg from one of the kernels that boots. It doesn't appear >>> to have much of the related information... is there any debug config >>> option I can enable that might give you more data? >> >> I'd like the contents of /sys/firmware/acpi/tables/DMAR please. > > Attached is the disassembly of the raw output. > >> And >> please could you also apply this patch to both the last-working and >> first-failing kernels and show me the output in both cases? > > So I still cannot get around getting the info for the first failing > kernel, but below is for the last working. Thanks. > > Device 0:03:00.0 on IOMMU at a8000000 > Device 0:03:00.0 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:02:00.0 [0x7f61e000 - 0x7f61ffff] > Device 0:02:00.0 on IOMMU at a8000000 > Device 0:02:00.0 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:02:00.2 [0x7f61e000 - 0x7f61ffff] > Device 0:02:00.2 on IOMMU at a8000000 > Device 0:02:00.2 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:00:1d.0 [0x7f7e7000 - 0x7f7ecfff] > Device 0:00:1d.0 on IOMMU at a8000000 > Device 0:00:1d.0 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:00:1d.1 [0x7f7e7000 - 0x7f7ecfff] > Device 0:00:1d.1 on IOMMU at a8000000 > Device 0:00:1d.1 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:00:1d.2 [0x7f7e7000 - 0x7f7ecfff] > Device 0:00:1d.2 on IOMMU at a8000000 > Device 0:00:1d.2 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:00:1d.3 [0x7f7e7000 - 0x7f7ecfff] > Device 0:00:1d.3 on IOMMU at a8000000 > Device 0:00:1d.3 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:02:00.0 [0x7f7e7000 - 0x7f7ecfff] > Device 0:02:00.0 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:02:00.2 [0x7f7e7000 - 0x7f7ecfff] > Device 0:02:00.2 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:02:00.4 [0x7f7e7000 - 0x7f7ecfff] > Device 0:02:00.4 on IOMMU at a8000000 > Device 0:02:00.4 on IOMMU at a8000000 > IOMMU: Setting identity map for device 0000:00:1d.7 [0x7f7ee000 - 0x7f7effff] > Device 0:00:1d.7 on IOMMU at a8000000 > Device 0:00:1d.7 on IOMMU at a8000000 > IOMMU: Prepare 0-16MiB unity mapping for LPC > IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff] > Device 0:00:1f.0 on IOMMU at a8000000 > Device 0:00:1f.0 on IOMMU at a8000000 > PCI-DMA: Intel(R) Virtualization Technology for Directed I/O > Device 0:00:00.0 on IOMMU at a8000000 > Device 0:00:01.0 on IOMMU at a8000000 > Device 0:00:02.0 on IOMMU at a8000000 > Device 0:00:03.0 on IOMMU at a8000000 > Device 0:00:04.0 on IOMMU at a8000000 > Device 0:00:05.0 on IOMMU at a8000000 > Device 0:00:06.0 on IOMMU at a8000000 > Device 0:00:07.0 on IOMMU at a8000000 > Device 0:00:08.0 on IOMMU at a8000000 > Device 0:00:09.0 on IOMMU at a8000000 > Device 0:00:0a.0 on IOMMU at a8000000 > Device 0:00:14.0 on IOMMU at a8000000 > Device 0:00:1c.0 on IOMMU at a8000000 > Device 0:00:1c.4 on IOMMU at a8000000 > Device 0:00:1d.0 on IOMMU at a8000000 > Device 0:00:1d.1 on IOMMU at a8000000 > Device 0:00:1d.2 on IOMMU at a8000000 > Device 0:00:1d.3 on IOMMU at a8000000 > Device 0:00:1d.7 on IOMMU at a8000000 > Device 0:00:1e.0 on IOMMU at a8000000 > Device 0:00:1f.0 on IOMMU at a8000000 > Device 0:04:00.0 on IOMMU at a8000000 > Device 0:04:00.1 on IOMMU at a8000000 > Device 0:04:00.2 on IOMMU at a8000000 > Device 0:04:00.3 on IOMMU at a8000000 > Device 0:03:00.0 on IOMMU at a8000000 > Device 0:02:00.0 on IOMMU at a8000000 > Device 0:02:00.2 on IOMMU at a8000000 > Device 0:02:00.4 on IOMMU at a8000000 > Device 0:01:03.0 on IOMMU at a8000000 > Device 0:50:00.0 on IOMMU at ac000000 > Device 0:50:01.0 on IOMMU at ac000000 > Device 0:50:02.0 on IOMMU at ac000000 > Device 0:50:03.0 on IOMMU at ac000000 > Device 0:50:04.0 on IOMMU at ac000000 > Device 0:50:05.0 on IOMMU at ac000000 > Device 0:50:06.0 on IOMMU at ac000000 > Device 0:50:07.0 on IOMMU at ac000000 > Device 0:50:08.0 on IOMMU at ac000000 > Device 0:50:09.0 on IOMMU at ac000000 > Device 0:50:0a.0 on IOMMU at ac000000 > Device 0:50:14.0 on IOMMU at a8000000 > Device 0:a0:00.0 on IOMMU at b0000000 > Device 0:a0:01.0 on IOMMU at b0000000 > Device 0:a0:02.0 on IOMMU at b0000000 > Device 0:a0:03.0 on IOMMU at b0000000 > Device 0:a0:04.0 on IOMMU at b0000000 > Device 0:a0:05.0 on IOMMU at b0000000 > Device 0:a0:06.0 on IOMMU at b0000000 > Device 0:a0:07.0 on IOMMU at b0000000 > Device 0:a0:08.0 on IOMMU at b0000000 > Device 0:a0:09.0 on IOMMU at b0000000 > Device 0:a0:0a.0 on IOMMU at b0000000 > Device 0:a0:14.0 on IOMMU at a8000000 > Device 0:7c:00.0 on IOMMU at a8000000 > Device 0:7c:08.0 on IOMMU at a8000000 > Device 0:82:00.0 on IOMMU at a8000000 > Device 0:82:08.0 on IOMMU at a8000000 > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 2014-04-15 at 00:19 +0800, Jiang Liu wrote: > Hi Davidlohr, > Thanks for providing the DMAR table. According to the DMAR > table, one bug in the iommu driver fails to handle this entry: > [1D2h 0466 1] Device Scope Entry Type : 01 > [1D3h 0467 1] Entry Length : 0A > [1D4h 0468 2] Reserved : 0000 > [1D6h 0470 1] Enumeration ID : 00 > [1D7h 0471 1] PCI Bus Number : 00 > [1D8h 0472 2] PCI Path : 1C,04 > [1DAh 0474 2] PCI Path : 00,02 > > And the patch sent out by me should fix this bug. Could you please help > to have a try? Sorry, I am unable to find any patches from you regarding this issue... I must be missing something. Could you please point me to the lkml link? Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, 2014-04-14 at 09:44 -0700, Davidlohr Bueso wrote: > On Tue, 2014-04-15 at 00:19 +0800, Jiang Liu wrote: > > Hi Davidlohr, > > Thanks for providing the DMAR table. According to the DMAR > > table, one bug in the iommu driver fails to handle this entry: > > [1D2h 0466 1] Device Scope Entry Type : 01 > > [1D3h 0467 1] Entry Length : 0A > > [1D4h 0468 2] Reserved : 0000 > > [1D6h 0470 1] Enumeration ID : 00 > > [1D7h 0471 1] PCI Bus Number : 00 > > [1D8h 0472 2] PCI Path : 1C,04 > > [1DAh 0474 2] PCI Path : 00,02 > > > > And the patch sent out by me should fix this bug. Could you please help > > to have a try? > > Sorry, I am unable to find any patches from you regarding this issue... > I must be missing something. Could you please point me to the lkml link? Never mind, I got it internally. I'll let you know as soon as I can test it later today. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, 2014-04-14 at 09:47 -0700, Davidlohr Bueso wrote: > On Mon, 2014-04-14 at 09:44 -0700, Davidlohr Bueso wrote: > > On Tue, 2014-04-15 at 00:19 +0800, Jiang Liu wrote: > > > Hi Davidlohr, > > > Thanks for providing the DMAR table. According to the DMAR > > > table, one bug in the iommu driver fails to handle this entry: > > > [1D2h 0466 1] Device Scope Entry Type : 01 > > > [1D3h 0467 1] Entry Length : 0A > > > [1D4h 0468 2] Reserved : 0000 > > > [1D6h 0470 1] Enumeration ID : 00 > > > [1D7h 0471 1] PCI Bus Number : 00 > > > [1D8h 0472 2] PCI Path : 1C,04 > > > [1DAh 0474 2] PCI Path : 00,02 > > > > > > And the patch sent out by me should fix this bug. Could you please help > > > to have a try? > > > > Sorry, I am unable to find any patches from you regarding this issue... > > I must be missing something. Could you please point me to the lkml link? > > Never mind, I got it internally. I'll let you know as soon as I can > test it later today. Thanks. Jiang, if you can then let me have a copy with a signed-off-by I'll shepherd it upstream along with your other patch which is already in my iommu-2.6.git tree.
Hey David, On Mon, Apr 14, 2014 at 05:03:51PM +0000, Woodhouse, David wrote: > Jiang, if you can then let me have a copy with a signed-off-by I'll > shepherd it upstream along with your other patch which is already in my > iommu-2.6.git tree. What is the state of these fixes? I plan to send out a pull-request before easter and hoped to include these fixes as well. Thanks, Joerg -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, 2014-04-16 at 15:37 +0200, joro@8bytes.org wrote: > Hey David, > > On Mon, Apr 14, 2014 at 05:03:51PM +0000, Woodhouse, David wrote: > > Jiang, if you can then let me have a copy with a signed-off-by I'll > > shepherd it upstream along with your other patch which is already in my > > iommu-2.6.git tree. > > What is the state of these fixes? I plan to send out a pull-request > before easter and hoped to include these fixes as well. I'm travelling and was going to do some final testing and send out a pull request after I got home tomorrow. But since you ask... Please pull from git://git.infradead.org/iommu-2.6.git David Woodhouse (1): iommu/vt-d: Fix get_domain_for_dev() handling of upstream PCIe bridges Jiang Liu (2): iommu/vt-d: fix memory leakage caused by commit ea8ea46 iommu/vt-d: fix bug in matching PCI devices with DRHD/RMRR descriptors drivers/iommu/dmar.c | 3 ++- drivers/iommu/intel-iommu.c | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-)
On Wed, Apr 16, 2014 at 01:58:44PM +0000, Woodhouse, David wrote: > On Wed, 2014-04-16 at 15:37 +0200, joro@8bytes.org wrote: > > What is the state of these fixes? I plan to send out a pull-request > > before easter and hoped to include these fixes as well. > > I'm travelling and was going to do some final testing and send out a > pull request after I got home tomorrow. But since you ask... > > Please pull from > git://git.infradead.org/iommu-2.6.git > > David Woodhouse (1): > iommu/vt-d: Fix get_domain_for_dev() handling of upstream PCIe bridges > > Jiang Liu (2): > iommu/vt-d: fix memory leakage caused by commit ea8ea46 > iommu/vt-d: fix bug in matching PCI devices with DRHD/RMRR descriptors > > drivers/iommu/dmar.c | 3 ++- > drivers/iommu/intel-iommu.c | 10 +++++++--- > 2 files changed, 9 insertions(+), 4 deletions(-) Pulled, thanks David. I will also do some additional testing before sending it upstream. Joerg -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index dd576c0..d52ac03 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c @@ -683,6 +683,12 @@ static struct intel_iommu *device_to_iommu(int segment, u8 bus, u8 devfn) out: rcu_read_unlock(); + if (iommu) + printk("Device %x:%02x:%02x.%d on IOMMU at %llx\n", segment, bus, + PCI_SLOT(devfn), PCI_FUNC(devfn), drhd->reg_base_addr); + else + printk("Device %x:%02x:%02x.%d on no IOMMU\n", segment, bus, + PCI_SLOT(devfn), PCI_FUNC(devfn)); return iommu; }