1. 03 Dec, 2022 6 commits
    • David S. Miller's avatar
      Merge branch 'r8169-irq-coalesce' · 32163491
      David S. Miller authored
      Heiner Kallweit says:
      
      ====================
      net: add and use netdev_sw_irq_coalesce_default_on()
      
      There are reports about r8169 not reaching full line speed on certain
      systems (e.g. SBC's) with a 2.5Gbps link.
      There was a time when hardware interrupt coalescing was enabled per
      default, but this was changed due to ASPM-related issues on few systems.
      
      Meanwhile we have sysfs attributes for controlling kind of
      "software interrupt coalescing" on the GRO level. However most distros
      and users don't know about it. So lets set a conservative default for
      both involved parameters. Users can still override the defaults via
      sysfs. Don't enable these settings on the fast ethernet chip versions,
      they are slow enough.
      
      Even with these conservative setting interrupt load on my 1Gbps test
      system reduced significantly.
      
      Follow Jakub's suggestion and put this functionality into net core
      so that other MAC drivers can reuse it.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      32163491
    • Heiner Kallweit's avatar
      r8169: enable GRO software interrupt coalescing per default · 42f66a44
      Heiner Kallweit authored
      There are reports about r8169 not reaching full line speed on certain
      systems (e.g. SBC's) with a 2.5Gbps link.
      There was a time when hardware interrupt coalescing was enabled per
      default, but this was changed due to ASPM-related issues on few systems.
      So let's use software interrupt coalescing instead and enable it
      using new function netdev_sw_irq_coalesce_default_on().
      
      Even with these conservative settings interrupt load on my 1Gbps test
      system reduced significantly.
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      42f66a44
    • Heiner Kallweit's avatar
      net: add netdev_sw_irq_coalesce_default_on() · d9360708
      Heiner Kallweit authored
      Add a helper for drivers wanting to set SW IRQ coalescing
      by default. The related sysfs attributes can be used to
      override the default values.
      
      Follow Jakub's suggestion and put this functionality into
      net core so that drivers wanting to use software interrupt
      coalescing per default don't have to open-code it.
      
      Note that this function needs to be called before the
      netdevice is registered.
      Suggested-by: default avatarJakub Kicinski <kuba@kernel.org>
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d9360708
    • Lorenzo Bianconi's avatar
      net: ethernet: mtk_wed: fix sleep while atomic in mtk_wed_wo_queue_refill · 65e6af6c
      Lorenzo Bianconi authored
      In order to fix the following sleep while atomic bug always alloc pages
      with GFP_ATOMIC in mtk_wed_wo_queue_refill since page_frag_alloc runs in
      spin_lock critical section.
      
      [    9.049719] Hardware name: MediaTek MT7986a RFB (DT)
      [    9.054665] Call trace:
      [    9.057096]  dump_backtrace+0x0/0x154
      [    9.060751]  show_stack+0x14/0x1c
      [    9.064052]  dump_stack_lvl+0x64/0x7c
      [    9.067702]  dump_stack+0x14/0x2c
      [    9.071001]  ___might_sleep+0xec/0x120
      [    9.074736]  __might_sleep+0x4c/0x9c
      [    9.078296]  __alloc_pages+0x184/0x2e4
      [    9.082030]  page_frag_alloc_align+0x98/0x1ac
      [    9.086369]  mtk_wed_wo_queue_refill+0x134/0x234
      [    9.090974]  mtk_wed_wo_init+0x174/0x2c0
      [    9.094881]  mtk_wed_attach+0x7c8/0x7e0
      [    9.098701]  mt7915_mmio_wed_init+0x1f0/0x3a0 [mt7915e]
      [    9.103940]  mt7915_pci_probe+0xec/0x3bc [mt7915e]
      [    9.108727]  pci_device_probe+0xac/0x13c
      [    9.112638]  really_probe.part.0+0x98/0x2f4
      [    9.116807]  __driver_probe_device+0x94/0x13c
      [    9.121147]  driver_probe_device+0x40/0x114
      [    9.125314]  __driver_attach+0x7c/0x180
      [    9.129133]  bus_for_each_dev+0x5c/0x90
      [    9.132953]  driver_attach+0x20/0x2c
      [    9.136513]  bus_add_driver+0x104/0x1fc
      [    9.140333]  driver_register+0x74/0x120
      [    9.144153]  __pci_register_driver+0x40/0x50
      [    9.148407]  mt7915_init+0x5c/0x1000 [mt7915e]
      [    9.152848]  do_one_initcall+0x40/0x25c
      [    9.156669]  do_init_module+0x44/0x230
      [    9.160403]  load_module+0x1f30/0x2750
      [    9.164135]  __do_sys_init_module+0x150/0x200
      [    9.168475]  __arm64_sys_init_module+0x18/0x20
      [    9.172901]  invoke_syscall.constprop.0+0x4c/0xe0
      [    9.177589]  do_el0_svc+0x48/0xe0
      [    9.180889]  el0_svc+0x14/0x50
      [    9.183929]  el0t_64_sync_handler+0x9c/0x120
      [    9.188183]  el0t_64_sync+0x158/0x15c
      
      Fixes: 79968444 ("net: ethernet: mtk_wed: introduce wed wo support")
      Signed-off-by: default avatarLorenzo Bianconi <lorenzo@kernel.org>
      Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
      Link: https://lore.kernel.org/r/67ca94bdd3d9eaeb86e52b3050fbca0bcf7bb02f.1669908312.git.lorenzo@kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      65e6af6c
    • Eric Dumazet's avatar
      tcp: use 2-arg optimal variant of kfree_rcu() · 55fb80d5
      Eric Dumazet authored
      kfree_rcu(1-arg) should be avoided as much as possible,
      since this is only possible from sleepable contexts,
      and incurr extra rcu barriers.
      
      I wish the 1-arg variant of kfree_rcu() would
      get a distinct name, like kfree_rcu_slow()
      to avoid it being abused.
      
      Fixes: 459837b5 ("net/tcp: Disable TCP-MD5 static key on tcp_md5sig_info destruction")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Paul E. McKenney <paulmck@kernel.org>
      Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
      Reviewed-by: default avatarDmitry Safonov <dima@arista.com>
      Link: https://lore.kernel.org/r/20221202052847.2623997-1-edumazet@google.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      55fb80d5
    • Jakub Kicinski's avatar
      Merge tag 'wireless-next-2022-12-02' of... · edd4e25a
      Jakub Kicinski authored
      Merge tag 'wireless-next-2022-12-02' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next
      
      Kalle Valo says:
      
      ====================
      wireless-next patches for v6.2
      
      Third set of patches for v6.2. mt76 has a new driver for mt7996 Wi-Fi 7
      devices and iwlwifi also got initial Wi-Fi 7 support. Otherwise
      smaller features and fixes.
      
      Major changes:
      
      ath10k
       - store WLAN firmware version in SMEM image table
      
      mt76
       - mt7996: new driver for MediaTek Wi-Fi 7 (802.11be) devices
       - mt7986, mt7915: enable Wireless Ethernet Dispatch (WED) offload support
       - mt7915: add ack signal support
       - mt7915: enable coredump support
       - mt7921: remain_on_channel support
       - mt7921: channel context support
      
      iwlwifi
       - enable Wi-Fi 7 Extremely High Throughput (EHT) PHY capabilities
       - 320 MHz channels support
      
      * tag 'wireless-next-2022-12-02' of git://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-next: (144 commits)
        wifi: ath10k: fix QCOM_SMEM dependency
        wifi: mt76: mt7921e: add pci .shutdown() support
        wifi: mt76: mt7915: mmio: fix naming convention
        wifi: mt76: mt7996: add support to configure spatial reuse parameter set
        wifi: mt76: mt7996: enable ack signal support
        wifi: mt76: mt7996: enable use_cts_prot support
        wifi: mt76: mt7915: rely on band_idx of mt76_phy
        wifi: mt76: mt7915: enable per bandwidth power limit support
        wifi: mt76: mt7915: introduce mt7915_get_power_bound()
        mt76: mt7915: Fix PCI device refcount leak in mt7915_pci_init_hif2()
        wifi: mt76: do not send firmware FW_FEATURE_NON_DL region
        wifi: mt76: mt7921: Add missing __packed annotation of struct mt7921_clc
        wifi: mt76: fix coverity overrun-call in mt76_get_txpower()
        wifi: mt76: mt7996: add driver for MediaTek Wi-Fi 7 (802.11be) devices
        wifi: mt76: mt76x0: remove dead code in mt76x0_phy_get_target_power
        wifi: mt76: mt7915: fix band_idx usage
        wifi: mt76: mt7915: enable .sta_set_txpwr support
        wifi: mt76: mt7915: add basedband Txpower info into debugfs
        wifi: mt76: mt7915: add support to configure spatial reuse parameter set
        wifi: mt76: mt7915: add missing MODULE_PARM_DESC
        ...
      ====================
      
      Link: https://lore.kernel.org/r/20221202214254.D0D3DC433C1@smtp.kernel.orgSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      edd4e25a
  2. 02 Dec, 2022 33 commits
  3. 01 Dec, 2022 1 commit
    • Jakub Kicinski's avatar
      Merge branch 'remove-label-cpu-from-dsa-dt-binding' · 5620768a
      Jakub Kicinski authored
      Arınç ÜNAL says:
      
      ====================
      remove label = "cpu" from DSA dt-binding
      
      With this patch series, we're completely getting rid of 'label = "cpu";'
      which is not used by the DSA dt-binding at all.
      
      Information for taking the patches for maintainers:
      Patch 1: netdev maintainers (based off netdev/net-next.git main)
      Patch 2-3: SoC maintainers (based off soc/soc.git soc/dt)
      Patch 4: MIPS maintainers (based off mips/linux.git mips-next)
      Patch 5: PowerPC maintainers (based off powerpc/linux.git next-test)
      
      I've been meaning to submit this for a few months. Find the relevant
      conversation here:
      https://lore.kernel.org/netdev/20220913155408.GA3802998-robh@kernel.org/
      
      Here's how I did it, for the interested (or suggestions):
      
      Find the platforms which have got 'label = "cpu";' defined.
      grep -rnw . -e 'label = "cpu";'
      
      Remove the line where 'label = "cpu";' is included.
      sed -i /'label = "cpu";'/,+d arch/arm/boot/dts/*
      sed -i /'label = "cpu";'/,+d arch/arm64/boot/dts/freescale/*
      sed -i /'label = "cpu";'/,+d arch/arm64/boot/dts/marvell/*
      sed -i /'label = "cpu";'/,+d arch/arm64/boot/dts/mediatek/*
      sed -i /'label = "cpu";'/,+d arch/arm64/boot/dts/rockchip/*
      sed -i /'label = "cpu";'/,+d arch/mips/boot/dts/qca/*
      sed -i /'label = "cpu";'/,+d arch/mips/boot/dts/ralink/*
      sed -i /'label = "cpu";'/,+d arch/powerpc/boot/dts/turris1x.dts
      sed -i /'label = "cpu";'/,+d Documentation/devicetree/bindings/net/qca,ar71xx.yaml
      
      Restore the symlink files which typechange after running sed.
      ====================
      
      Link: https://lore.kernel.org/r/20221130141040.32447-1-arinc.unal@arinc9.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      5620768a