Re: [PATCH v3 0/8] Fix breakage caused by the NTB multi-port patchset

2019-02-11 Thread Jon Mason
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

2019-01-09 Thread Logan Gunthorpe



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

2019-01-09 Thread Dave Jiang



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

2019-01-09 Thread Logan Gunthorpe
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