public inbox for ntb@lists.linux.dev
 help / color / mirror / Atom feed
* [PATCH 0/4] NTB: ntb_transport: DMA fixes and scalability improvements
@ 2025-10-27  0:43 Koichiro Den
  2025-10-27  0:43 ` [PATCH 1/4] NTB: ntb_transport: Handle remapped contiguous region in vmalloc space Koichiro Den
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Koichiro Den @ 2025-10-27  0:43 UTC (permalink / raw)
  To: ntb, linux-kernel; +Cc: jdmason, dave.jiang, allenbh

This series contains two DMA-related fixes (Patch #1-2) and two scalability
improvements (Patch #3-4) for ntb_transport. Behavior remains unchanged
unless new module parameters are explicitly set.

New module parameters
=====================

  - use_tx_dma : Enable TX DMA independently (default: 0)
  - use_rx_dma : Enable RX DMA independently (default: 0)
  - num_tx_dma_chan : # of TX DMA channels per queue (default: 1)
  - num_rx_dma_chan : # of RX DMA channels per queue (default: 1)

  Note: legacy 'use_dma' switch is kept and prioritized higher.
        Enabling it always implies use_tx_dma=1 and use_rx_dma=1
	regardless of whether use_(tx|rx)_dma=0 is appended.

Performance measurement
=======================

Tested on R-Car S4. With the following patchsets applied [1]:

  - [RFC PATCH 00/25] NTB/PCI: Add DW eDMA intr fallback and BAR MW offsets
    (https://lore.kernel.org/all/20251023071916.901355-1-den@valinux.co.jp/)
  - [PATCH 0/2] Add 'tx_memcpy_offload' option to ntb_transport
    (https://lore.kernel.org/all/20251023072105.901707-1-den@valinux.co.jp/)

throughput became bound by RX DMA service rate. Increasing the number of
RX DMA channels (>1) improved throughput substantially:

  - use_rx_dma=1 num_rx_dma_chan=1
                 ^^^^^^^^^^^^^^^^^
    (full command: $ sudo modprobe ntb_transport tx_memcpy_offload=1 use_rx_dma=1 num_rx_dma_chan=1 use_intr=1)

    $ sudo sockperf tp -i $SERVER_IP -m 65400 -t 10 # RX DMA n_chan=1
    sockperf: == version #3.10-no.git == 
    [...]
    sockperf: Summary: Message Rate is 8636 [msg/sec], Packet Rate is about 388620 [pkt/sec] (45 ip frags / msg)
    sockperf: Summary: BandWidth is 538.630 MBps (4309.039 Mbps)
                                                  ^^^^^^^^^^^^^

  - use_rx_dma=1 num_rx_dma_chan=2
                 ^^^^^^^^^^^^^^^^^
    (full command: $ sudo modprobe ntb_transport tx_memcpy_offload=1 use_rx_dma=1 num_rx_dma_chan=1 use_intr=1)

    $ sudo sockperf tp -i $SERVER_IP -m 65400 -t 10 # RX DMA n_chan=2
    sockperf: == version #3.10-no.git == 
    [...]
    sockperf: Summary: Message Rate is 14283 [msg/sec], Packet Rate is about 642735 [pkt/sec] (45 ip frags / msg)
    sockperf: Summary: BandWidth is 890.835 MBps (7126.680 Mbps)
                                                  ^^^^^^^^^^^^^

[1] Additional changes are required to use DMA on R-Car S4. Those will be
    posted separately.


Koichiro Den (4):
  NTB: ntb_transport: Handle remapped contiguous region in vmalloc space
  NTB: ntb_transport: Ack DMA memcpy descriptors to avoid wait-list
    growth
  NTB: ntb_transport: Add module parameters use_tx_dma/use_rx_dma
  NTB: ntb_transport: Support multi-channel DMA via module parameters

 drivers/ntb/ntb_transport.c | 386 +++++++++++++++++++++++++-----------
 1 file changed, 270 insertions(+), 116 deletions(-)

-- 
2.48.1


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-12-01 19:05 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-27  0:43 [PATCH 0/4] NTB: ntb_transport: DMA fixes and scalability improvements Koichiro Den
2025-10-27  0:43 ` [PATCH 1/4] NTB: ntb_transport: Handle remapped contiguous region in vmalloc space Koichiro Den
2025-10-27 16:30   ` Logan Gunthorpe
2025-10-28  1:14     ` Koichiro Den
2025-10-28  1:24       ` Koichiro Den
2025-10-28 15:45       ` Logan Gunthorpe
2025-10-29  7:14         ` Koichiro Den
2025-10-27  0:43 ` [PATCH 2/4] NTB: ntb_transport: Ack DMA memcpy descriptors to avoid wait-list growth Koichiro Den
2025-10-27  0:43 ` [PATCH 3/4] NTB: ntb_transport: Add module parameters use_tx_dma/use_rx_dma Koichiro Den
2025-10-27  0:43 ` [PATCH 4/4] NTB: ntb_transport: Support multi-channel DMA via module parameters Koichiro Den
2025-10-27 15:50   ` Dave Jiang
2025-10-28  1:17     ` Koichiro Den
2025-12-01  4:58 ` [PATCH 0/4] NTB: ntb_transport: DMA fixes and scalability improvements Koichiro Den
2025-12-01 19:04   ` Dave Jiang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox