1. 30 Mar, 2023 4 commits
    • Jakub Kicinski's avatar
      Merge tag 'mlx5-updates-2023-03-28' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · 7079d5e6
      Jakub Kicinski authored
      Saeed Mahameed says:
      
      ====================
      mlx5-updates-2023-03-28
      
      Dragos Tatulea says:
      ====================
      
      net/mlx5e: RX, Drop page_cache and fully use page_pool
      
      For page allocation on the rx path, the mlx5e driver has been using an
      internal page cache in tandem with the page pool. The internal page
      cache uses a queue for page recycling which has the issue of head of
      queue blocking.
      
      This patch series drops the internal page_cache altogether and uses the
      page_pool to implement everything that was done by the page_cache
      before:
      * Let the page_pool handle dma mapping and unmapping.
      * Use fragmented pages with fragment counter instead of tracking via
        page ref.
      * Enable skb recycling.
      
      The patch series has the following effects on the rx path:
      
      * Improved performance for the cases when there was low page recycling
        due to head of queue blocking in the internal page_cache. The test
        for this was running a single iperf TCP stream to a rx queue
        which is bound on the same cpu as the application.
      
        |-------------+--------+--------+------+---------|
        | rq type     | before | after  | unit |   diff  |
        |-------------+--------+--------+------+---------|
        | striding rq |  30.1  |  31.4  | Gbps |  4.14 % |
        | legacy rq   |  30.2  |  33.0  | Gbps |  8.48 % |
        |-------------+--------+--------+------+---------|
      
      * Small XDP performance degradation. The test was is XDP drop
        program running on a single rx queue with small packets incoming
        it looks like this:
      
        |-------------+----------+----------+------+---------|
        | rq type     | before   | after    | unit |   diff  |
        |-------------+----------+----------+------+---------|
        | striding rq | 19725449 | 18544617 | pps  | -6.37 % |
        | legacy rq   | 19879931 | 18631841 | pps  | -6.70 % |
        |-------------+----------+----------+------+---------|
      
        This will be handled in a different patch series by adding support for
        multi-packet per page.
      
      * For other cases the performance is roughly the same.
      
      The above numbers were obtained on the following system:
        24 core Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz
        32 GB RAM
        ConnectX-7 single port
      
      The breakdown on the patch series is the following:
      * Preparations for introducing the mlx5e_frag_page struct.
      * Delete the mlx5e_page_cache struct.
      * Enable dma mapping from page_pool.
      * Enable skb recycling and fragment counting.
      * Do deferred release of pages (just before alloc) to ensure better
        page_pool cache utilization.
      
      ====================
      
      * tag 'mlx5-updates-2023-03-28' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
        net/mlx5e: RX, Remove unnecessary recycle parameter and page_cache stats
        net/mlx5e: RX, Break the wqe bulk refill in smaller chunks
        net/mlx5e: RX, Increase WQE bulk size for legacy rq
        net/mlx5e: RX, Split off release path for xsk buffers for legacy rq
        net/mlx5e: RX, Defer page release in legacy rq for better recycling
        net/mlx5e: RX, Change wqe last_in_page field from bool to bit flags
        net/mlx5e: RX, Defer page release in striding rq for better recycling
        net/mlx5e: RX, Rename xdp_xmit_bitmap to a more generic name
        net/mlx5e: RX, Enable skb page recycling through the page_pool
        net/mlx5e: RX, Enable dma map and sync from page_pool allocator
        net/mlx5e: RX, Remove internal page_cache
        net/mlx5e: RX, Store SHAMPO header pages in array
        net/mlx5e: RX, Remove alloc unit layout constraint for striding rq
        net/mlx5e: RX, Remove alloc unit layout constraint for legacy rq
        net/mlx5e: RX, Remove mlx5e_alloc_unit argument in page allocation
      ====================
      
      Link: https://lore.kernel.org/r/20230328205623.142075-1-saeed@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      7079d5e6
    • Simon Horman's avatar
      net: ena: removed unused tx_bytes variable · c5370374
      Simon Horman authored
      clang 16.0.0 with W=1 reports:
      
      drivers/net/ethernet/amazon/ena/ena_netdev.c:1901:6: error: variable 'tx_bytes' set but not used [-Werror,-Wunused-but-set-variable]
              u32 tx_bytes = 0;
      
      The variable is not used so remove it.
      Signed-off-by: default avatarSimon Horman <horms@kernel.org>
      Acked-by: default avatarShay Agroskin <shayagr@amazon.com>
      Link: https://lore.kernel.org/r/20230328151958.410687-1-horms@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c5370374
    • Dan Carpenter's avatar
      octeon_ep: unlock the correct lock on error path · 765f3604
      Dan Carpenter authored
      The h and the f letters are swapped so it unlocks the wrong lock.
      
      Fixes: 577f0d1b ("octeon_ep: add separate mailbox command and response queues")
      Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
      Reviewed-by: default avatarLeon Romanovsky <leonro@nvidia.com>
      Link: https://lore.kernel.org/r/251aa2a2-913e-4868-aac9-0a90fc3eeeda@kili.mountainSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      765f3604
    • Tianfei Zhang's avatar
      ptp: add ToD device driver for Intel FPGA cards · 615927f1
      Tianfei Zhang authored
      Adding a DFL (Device Feature List) device driver of ToD device for
      Intel FPGA cards.
      
      The Intel FPGA Time of Day(ToD) IP within the FPGA DFL bus is exposed
      as PTP Hardware clock(PHC) device to the Linux PTP stack to synchronize
      the system clock to its ToD information using phc2sys utility of the
      Linux PTP stack. The DFL is a hardware List within FPGA, which defines
      a linked list of feature headers within the device MMIO space to provide
      an extensible way of adding subdevice features.
      Signed-off-by: default avatarRaghavendra Khadatare <raghavendrax.anand.khadatare@intel.com>
      Signed-off-by: default avatarTianfei Zhang <tianfei.zhang@intel.com>
      Acked-by: default avatarRichard Cochran <richardcochran@gmail.com>
      Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
      Link: https://lore.kernel.org/r/20230328142455.481146-1-tianfei.zhang@intel.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      615927f1
  2. 29 Mar, 2023 36 commits