Re: [PATCH rdma-next] RDMA: Explicitly pass in the dma_device to ib_register_device

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/6/20 9:53 AM, Jason Gunthorpe wrote:
On Tue, Oct 06, 2020 at 07:29:16AM -0700, Bart Van Assche wrote:
On 9/24/20 4:49 AM, Jason Gunthorpe wrote:
On Thu, Sep 24, 2020 at 06:49:07AM +0100, Christoph Hellwig wrote:
+	} else {
+		device->dev.dma_parms = dma_device->dma_parms;
   		/*
+		 * Auto setup the segment size if a DMA device was passed in.
+		 * The PCI core sets the maximum segment size to 64 KB. Increase
+		 * this parameter to 2 GB.
   		 */
+		dma_set_max_seg_size(dma_device, SZ_2G);

You can't just inherity DMA properties like this this.  Please
fix all code that looks at the seg size to look at the DMA device.

Inherit? This is overriding the PCI default of 64K to be 2G for RDMA
devices.

With inherit I mean the

		device->dev.dma_parms = dma_device->dma_parms;

line, which is completely bogus.  All DMA mapping is done on the
dma_device in the RDMA core and ULPs, so it also can't have an effect.

Oh. Yes, no idea why that is there..

commit c9121262d57b8a3be4f08073546436ba0128ca6a
Author: Bart Van Assche <bvanassche@xxxxxxx>
Date:   Fri Oct 25 15:58:30 2019 -0700

      RDMA/core: Set DMA parameters correctly
      The dma_set_max_seg_size() call in setup_dma_device() does not have any
      effect since device->dev.dma_parms is NULL. Fix this by initializing
      device->dev.dma_parms first.

Bart?

(just noticed this email)

Hi Jason,

That code may be a leftover from when the ib_dma_*() functions used &dev->dev as
their first argument instead of dev->dma_device.

Hmm the above was two years after the commit that added dma_device? I
assumed you added this because you were doing testing with rxe?

Hi Jason,

In my previous email I was referring to the code that sets DMA parameters in 'device'.

The patch "RDMA/core: Set DMA parameters correctly" was the result of source reading
while I was chasing an unrelated rdma_rxe bug.

Bart.



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux