Re: [PATCH v3 0/8] Fix breakage caused by the NTB multi-port patchset
On Wed, Jan 09, 2019 at 12:22:25PM -0700, Logan Gunthorpe wrote: > Hey, > > I'm resending this because I've recently found out that the change we > made to use the NTB struct device in DMA allocations is wrong and > needs to be reverted. Turns out that, when running with an IOMMU, > dma_alloc_coherent() will always fail if you pass it the NTB struct > device. This is because the device has not been assigned an IOMMU > group and the Intel IOMMU at least expect the devices to be on the PCI > bus and be able to find a proper bus-dev-fn number through a struct > pci device. Therefore, we must revert the change and I've changed > patch 2 to do this and remove the no longer necessary DMA mask > adjustments. > > I'm not sure if we can get past the impass in getting this series merged: > I still maintain every patch in this series is necessary to fix a > regression and there's no way to add port numbers to switchtec in the > crosslink configuration so it can't be fixed in the other way that was > suggested. Given the need for this to get in (as it does fix actual problems) and the absence of comments on v3, I'm adding this to the ntb-next branch. If there is anyone that has anything more to say on this, please do so immediately. Otherwise, I think this probably needs to be moved to the ntb branch and go into 5.1-rc1. Thoughts? Thanks, Jon > > Logan > > -- > > Changes since v2: > - Rebased on v5.0-rc1 > - Modify Patch 2 to revert back to using the PCI struct device > instead of the NTB struct device in DMA calls > - Collected Allen's Acks > - Collected Alexander's Tested-By > > Changes since v1: > - Rebased onto ntb-next (there was a minor conflict in a recent change > to the intel driver) > - Collected Dave's Ack > > -- > > Logan Gunthorpe (8): > NTB: ntb_tool: reading the link file should not end in a NULL byte > NTB: Revert the change to use the NTB device dev for DMA allocations > NTB: Fix the default port and peer numbers for legacy drivers > NTB: ntb_pingpong: Choose doorbells based on port number > NTB: perf: Don't require one more memory window than number of peers > NTB: perf: Fix support for hardware that doesn't have port numbers > NTB: perf: Fix race condition when run with ntb_test > NTB: ntb_test: Fix bug when counting remote files > > drivers/ntb/hw/amd/ntb_hw_amd.c | 4 > drivers/ntb/hw/idt/ntb_hw_idt.c | 6 - > drivers/ntb/hw/intel/ntb_hw_gen1.c | 4 > drivers/ntb/ntb.c | 9 ++-- > drivers/ntb/test/ntb_perf.c | 29 +++-- > drivers/ntb/test/ntb_pingpong.c | 14 +--- > drivers/ntb/test/ntb_tool.c | 9 > tools/testing/selftests/ntb/ntb_test.sh | 2 +- > 8 files changed, 35 insertions(+), 42 deletions(-) > > -- > 2.19.0
Re: [PATCH v3 0/8] Fix breakage caused by the NTB multi-port patchset
On 2019-01-09 12:32 p.m., Dave Jiang wrote: >> I'm resending this because I've recently found out that the change we >> made to use the NTB struct device in DMA allocations is wrong and >> needs to be reverted. Turns out that, when running with an IOMMU, >> dma_alloc_coherent() will always fail if you pass it the NTB struct >> device. This is because the device has not been assigned an IOMMU >> group and the Intel IOMMU at least expect the devices to be on the PCI >> bus and be able to find a proper bus-dev-fn number through a struct >> pci device. Therefore, we must revert the change and I've changed >> patch 2 to do this and remove the no longer necessary DMA mask >> adjustments. > > For the revert, I think we should cc stable as well. I agree it should go into stable too. But I thought the fixes tag would make that happen... Logan
Re: [PATCH v3 0/8] Fix breakage caused by the NTB multi-port patchset
On 1/9/19 12:22 PM, Logan Gunthorpe wrote: > Hey, > > I'm resending this because I've recently found out that the change we > made to use the NTB struct device in DMA allocations is wrong and > needs to be reverted. Turns out that, when running with an IOMMU, > dma_alloc_coherent() will always fail if you pass it the NTB struct > device. This is because the device has not been assigned an IOMMU > group and the Intel IOMMU at least expect the devices to be on the PCI > bus and be able to find a proper bus-dev-fn number through a struct > pci device. Therefore, we must revert the change and I've changed > patch 2 to do this and remove the no longer necessary DMA mask > adjustments. For the revert, I think we should cc stable as well. > > I'm not sure if we can get past the impass in getting this series merged: > I still maintain every patch in this series is necessary to fix a > regression and there's no way to add port numbers to switchtec in the > crosslink configuration so it can't be fixed in the other way that was > suggested. > > Logan > > -- > > Changes since v2: > - Rebased on v5.0-rc1 > - Modify Patch 2 to revert back to using the PCI struct device > instead of the NTB struct device in DMA calls > - Collected Allen's Acks > - Collected Alexander's Tested-By > > Changes since v1: > - Rebased onto ntb-next (there was a minor conflict in a recent change > to the intel driver) > - Collected Dave's Ack > > -- > > Logan Gunthorpe (8): > NTB: ntb_tool: reading the link file should not end in a NULL byte > NTB: Revert the change to use the NTB device dev for DMA allocations > NTB: Fix the default port and peer numbers for legacy drivers > NTB: ntb_pingpong: Choose doorbells based on port number > NTB: perf: Don't require one more memory window than number of peers > NTB: perf: Fix support for hardware that doesn't have port numbers > NTB: perf: Fix race condition when run with ntb_test > NTB: ntb_test: Fix bug when counting remote files > > drivers/ntb/hw/amd/ntb_hw_amd.c | 4 > drivers/ntb/hw/idt/ntb_hw_idt.c | 6 - > drivers/ntb/hw/intel/ntb_hw_gen1.c | 4 > drivers/ntb/ntb.c | 9 ++-- > drivers/ntb/test/ntb_perf.c | 29 +++-- > drivers/ntb/test/ntb_pingpong.c | 14 +--- > drivers/ntb/test/ntb_tool.c | 9 > tools/testing/selftests/ntb/ntb_test.sh | 2 +- > 8 files changed, 35 insertions(+), 42 deletions(-) > > -- > 2.19.0 >
[PATCH v3 0/8] Fix breakage caused by the NTB multi-port patchset
Hey, I'm resending this because I've recently found out that the change we made to use the NTB struct device in DMA allocations is wrong and needs to be reverted. Turns out that, when running with an IOMMU, dma_alloc_coherent() will always fail if you pass it the NTB struct device. This is because the device has not been assigned an IOMMU group and the Intel IOMMU at least expect the devices to be on the PCI bus and be able to find a proper bus-dev-fn number through a struct pci device. Therefore, we must revert the change and I've changed patch 2 to do this and remove the no longer necessary DMA mask adjustments. I'm not sure if we can get past the impass in getting this series merged: I still maintain every patch in this series is necessary to fix a regression and there's no way to add port numbers to switchtec in the crosslink configuration so it can't be fixed in the other way that was suggested. Logan -- Changes since v2: - Rebased on v5.0-rc1 - Modify Patch 2 to revert back to using the PCI struct device instead of the NTB struct device in DMA calls - Collected Allen's Acks - Collected Alexander's Tested-By Changes since v1: - Rebased onto ntb-next (there was a minor conflict in a recent change to the intel driver) - Collected Dave's Ack -- Logan Gunthorpe (8): NTB: ntb_tool: reading the link file should not end in a NULL byte NTB: Revert the change to use the NTB device dev for DMA allocations NTB: Fix the default port and peer numbers for legacy drivers NTB: ntb_pingpong: Choose doorbells based on port number NTB: perf: Don't require one more memory window than number of peers NTB: perf: Fix support for hardware that doesn't have port numbers NTB: perf: Fix race condition when run with ntb_test NTB: ntb_test: Fix bug when counting remote files drivers/ntb/hw/amd/ntb_hw_amd.c | 4 drivers/ntb/hw/idt/ntb_hw_idt.c | 6 - drivers/ntb/hw/intel/ntb_hw_gen1.c | 4 drivers/ntb/ntb.c | 9 ++-- drivers/ntb/test/ntb_perf.c | 29 +++-- drivers/ntb/test/ntb_pingpong.c | 14 +--- drivers/ntb/test/ntb_tool.c | 9 tools/testing/selftests/ntb/ntb_test.sh | 2 +- 8 files changed, 35 insertions(+), 42 deletions(-) -- 2.19.0