* [GIT PULL] Networking for v6.13-rc7
@ 2025-01-09 18:29 Jakub Kicinski
2025-01-09 23:21 ` pr-tracker-bot
0 siblings, 1 reply; 13+ messages in thread
From: Jakub Kicinski @ 2025-01-09 18:29 UTC (permalink / raw)
To: torvalds; +Cc: kuba, davem, netdev, linux-kernel, pabeni
Hi Linus!
The following changes since commit aba74e639f8d76d29b94991615e33319d7371b63:
Merge tag 'net-6.13-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net (2025-01-03 14:36:54 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git tags/net-6.13-rc7
for you to fetch changes up to b5cf67a8f716afbd7f8416edfe898c2df460811a:
Merge tag 'nf-25-01-09' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf (2025-01-09 08:54:49 -0800)
----------------------------------------------------------------
Including fixes from netfilter, Bluetooth and WPAN.
No outstanding fixes / investigations at this time.
Current release - new code bugs:
- eth: fbnic: revert HWMON support, it doesn't work at all
and revert is similar size as the fixes
Previous releases - regressions:
- tcp: allow a connection when sk_max_ack_backlog is zero
- tls: fix tls_sw_sendmsg error handling
Previous releases - always broken:
- netdev netlink family:
- prevent accessing NAPI instances from another namespace
- don't dump Tx and uninitialized NAPIs
- net: sysctl: avoid using current->nsproxy, fix null-deref if task
is exiting and stick to opener's netns
- sched: sch_cake: add bounds checks to host bulk flow fairness counts
Misc:
- annual cleanup of inactive maintainers
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
----------------------------------------------------------------
Antonio Pastor (1):
net: 802: LLC+SNAP OID:PID lookup on start of skb data
Anumula Murali Mohan Reddy (1):
cxgb4: Avoid removal of uninserted tid
Arkadiusz Kubalewski (1):
ice: fix max values for dpll pin phase adjust
Benjamin Coddington (1):
tls: Fix tls_sw_sendmsg error handling
Chenguang Zhao (1):
net/mlx5: Fix variable not being completed when function returns
Chris Lu (1):
Bluetooth: btmtk: Fix failed to send func ctrl for MediaTek devices.
Dan Carpenter (1):
rtase: Fix a check for error in rtase_alloc_msix()
Daniel Borkmann (1):
tcp: Annotate data-race around sk->sk_mark in tcp_v4_send_reset
En-Wei Wu (1):
igc: return early when failing to read EECD register
Eric Dumazet (1):
net_sched: cls_flow: validate TCA_FLOW_RSHIFT attribute
Hao Lan (4):
net: hns3: fixed reset failure issues caused by the incorrect reset type
net: hns3: fix missing features due to dev->features configuration too early
net: hns3: Resolved the issue that the debugfs query result is inconsistent.
net: hns3: fixed hclge_fetch_pf_reg accesses bar space out of bounds issue
Jakub Kicinski (20):
selftests: tc-testing: reduce rshift value
Merge tag 'ieee802154-for-net-2025-01-03' of git://git.kernel.org/pub/scm/linux/kernel/git/wpan/wpan
Merge branch 'bnxt_en-2-bug-fixes'
net: don't dump Tx and uninitialized NAPIs
eth: gve: use appropriate helper to set xdp_features
netdev: prevent accessing NAPI instances from another namespace
Merge branch 'there-are-some-bugfix-for-the-hns3-ethernet-driver'
Merge tag 'for-net-2025-01-08' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth
Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/net-queue
MAINTAINERS: mark Synopsys DW XPCS as Orphan
MAINTAINERS: update maintainers for Microchip LAN78xx
MAINTAINERS: remove Andy Gospodarek from bonding
MAINTAINERS: mark stmmac ethernet as an Orphan
MAINTAINERS: remove Mark Lee from MediaTek Ethernet
MAINTAINERS: remove Ying Xue from TIPC
MAINTAINERS: remove Noam Dagan from AMAZON ETHERNET
MAINTAINERS: remove Lars Povlsen from Microchip Sparx5 SoC
Merge branch 'maintainers-spring-2025-cleanup-of-networking-maintainers'
Merge branch 'net-sysctl-avoid-using-current-nsproxy'
Merge tag 'nf-25-01-09' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf
Jian Shen (2):
net: hns3: don't auto enable misc vector
net: hns3: initialize reset_timer before hclgevf_misc_irq_init()
Jiawen Wu (1):
net: libwx: fix firmware mailbox abnormal return
Jie Wang (1):
net: hns3: fix kernel crash when 1588 is sent on HIP08 devices
Kalesh AP (1):
bnxt_en: Fix possible memory leak when hwrm_req_replace fails
Keisuke Nishimura (1):
ieee802154: ca8210: Add missing check for kfifo_alloc() in ca8210_probe()
Kory Maincent (1):
dt-bindings: net: pse-pd: Fix unusual character in documentation
Kuniyuki Iwashima (1):
ipvlan: Fix use-after-free in ipvlan_get_iflink().
Leo Yang (1):
mctp i3c: fix MCTP I3C driver multi-thread issue
Lizhi Xu (1):
mac802154: check local interfaces before deleting sdata list
Luiz Augusto von Dentz (2):
Bluetooth: hci_sync: Fix not setting Random Address when required
Bluetooth: MGMT: Fix Add Device to responding before completing
Matthieu Baerts (NGI0) (9):
mptcp: sysctl: avail sched: remove write access
mptcp: sysctl: sched: avoid using current->nsproxy
mptcp: sysctl: blackhole timeout: avoid using current->nsproxy
sctp: sysctl: cookie_hmac_alg: avoid using current->nsproxy
sctp: sysctl: rto_min/max: avoid using current->nsproxy
sctp: sysctl: auth_enable: avoid using current->nsproxy
sctp: sysctl: udp_port: avoid using current->nsproxy
sctp: sysctl: plpmtud_probe_interval: avoid using current->nsproxy
rds: sysctl: rds_tcp_{rcv,snd}buf: avoid using current->nsproxy
Michael Chan (1):
bnxt_en: Fix DIM shutdown
Neeraj Sanjay Kale (1):
Bluetooth: btnxpuart: Fix driver sending truncated data
Pablo Neira Ayuso (2):
netfilter: nf_tables: imbalance in flowtable binding
netfilter: conntrack: clamp maximum hashtable size to INT_MAX
Parker Newman (1):
net: stmmac: dwmac-tegra: Read iommu stream id from device tree
Przemyslaw Korba (1):
ice: fix incorrect PHY settings for 100 GB/s
Shannon Nelson (1):
pds_core: limit loop over fw name list
Su Hui (1):
eth: fbnic: Revert "eth: fbnic: Add hardware monitoring support via HWMON interface"
Toke Høiland-Jørgensen (1):
sched: sch_cake: add bounds checks to host bulk flow fairness counts
Zhongqiu Duan (1):
tcp/dccp: allow a connection when sk_max_ack_backlog is zero
CREDITS | 12 ++
.../bindings/net/pse-pd/pse-controller.yaml | 2 +-
MAINTAINERS | 16 +--
drivers/bluetooth/btmtk.c | 7 ++
drivers/bluetooth/btnxpuart.c | 1 +
drivers/net/ethernet/amd/pds_core/devlink.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 38 +++++-
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 3 +-
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 5 +-
drivers/net/ethernet/google/gve/gve_main.c | 14 ++-
drivers/net/ethernet/hisilicon/hns3/hnae3.h | 3 -
drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c | 96 +++++---------
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 1 -
.../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 45 +++++--
.../net/ethernet/hisilicon/hns3/hns3pf/hclge_ptp.c | 3 +
.../ethernet/hisilicon/hns3/hns3pf/hclge_regs.c | 9 +-
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 41 ++++--
.../ethernet/hisilicon/hns3/hns3vf/hclgevf_regs.c | 9 +-
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 2 +
drivers/net/ethernet/intel/ice/ice_dpll.c | 35 ++++--
drivers/net/ethernet/intel/ice/ice_ptp_consts.h | 4 +-
drivers/net/ethernet/intel/igc/igc_base.c | 6 +
drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 1 +
drivers/net/ethernet/meta/fbnic/Makefile | 1 -
drivers/net/ethernet/meta/fbnic/fbnic.h | 5 -
drivers/net/ethernet/meta/fbnic/fbnic_fw.h | 7 --
drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c | 81 ------------
drivers/net/ethernet/meta/fbnic/fbnic_mac.c | 22 ----
drivers/net/ethernet/meta/fbnic/fbnic_mac.h | 7 --
drivers/net/ethernet/meta/fbnic/fbnic_pci.c | 3 -
drivers/net/ethernet/realtek/rtase/rtase_main.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/dwmac-tegra.c | 14 ++-
drivers/net/ethernet/wangxun/libwx/wx_hw.c | 24 ++--
drivers/net/ieee802154/ca8210.c | 6 +-
drivers/net/mctp/mctp-i3c.c | 4 +
include/net/inet_connection_sock.h | 2 +-
net/802/psnap.c | 4 +-
net/bluetooth/hci_sync.c | 11 +-
net/bluetooth/mgmt.c | 38 +++++-
net/bluetooth/rfcomm/tty.c | 4 +-
net/core/dev.c | 43 +++++--
net/core/dev.h | 3 +-
net/core/link_watch.c | 10 +-
net/core/netdev-genl.c | 11 +-
net/ipv4/tcp_ipv4.c | 2 +-
net/mac802154/iface.c | 4 +
net/mptcp/ctrl.c | 17 +--
net/netfilter/nf_conntrack_core.c | 5 +-
net/netfilter/nf_tables_api.c | 15 ++-
net/rds/tcp.c | 39 ++++--
net/sched/cls_flow.c | 3 +-
net/sched/sch_cake.c | 140 +++++++++++----------
net/sctp/sysctl.c | 14 ++-
net/tls/tls_sw.c | 2 +-
.../tc-testing/tc-tests/filters/flow.json | 4 +-
55 files changed, 494 insertions(+), 408 deletions(-)
delete mode 100644 drivers/net/ethernet/meta/fbnic/fbnic_hwmon.c
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-09 18:29 [GIT PULL] Networking for v6.13-rc7 Jakub Kicinski
@ 2025-01-09 23:21 ` pr-tracker-bot
2025-01-17 3:38 ` Jakub Kicinski
0 siblings, 1 reply; 13+ messages in thread
From: pr-tracker-bot @ 2025-01-09 23:21 UTC (permalink / raw)
To: Jakub Kicinski; +Cc: torvalds, kuba, davem, netdev, linux-kernel, pabeni
The pull request you sent on Thu, 9 Jan 2025 10:29:53 -0800:
> git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git tags/net-6.13-rc7
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/c77cd47cee041bc1664b8e5fcd23036e5aab8e2a
Thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-09 23:21 ` pr-tracker-bot
@ 2025-01-17 3:38 ` Jakub Kicinski
2025-01-18 13:45 ` Catalin Marinas
0 siblings, 1 reply; 13+ messages in thread
From: Jakub Kicinski @ 2025-01-17 3:38 UTC (permalink / raw)
To: torvalds
Cc: davem, netdev, linux-kernel, pabeni, Catalin Marinas, Guo Weikang,
Andrew Morton
On Thu, 09 Jan 2025 23:21:07 +0000 pr-tracker-bot@kernel.org wrote:
> The pull request you sent on Thu, 9 Jan 2025 10:29:53 -0800:
>
> > git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git tags/net-6.13-rc7
>
> has been merged into torvalds/linux.git:
> https://git.kernel.org/torvalds/c/c77cd47cee041bc1664b8e5fcd23036e5aab8e2a
Hi Linus!
After 76d5d4c53e68 ("mm/kmemleak: fix percpu memory leak detection
failure") we get this on every instance of our testing VMs:
unreferenced object 0x00042aa0 (size 64):
comm "swapper/0", pid 0, jiffies 4294667296
hex dump (first 32 bytes on cpu 2):
00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc 0):
pcpu_alloc_noprof+0x4ad/0xab0
setup_zone_pageset+0x30/0x290
setup_per_cpu_pageset+0x6a/0x1f0
start_kernel+0x2a4/0x410
x86_64_start_reservations+0x18/0x30
x86_64_start_kernel+0xba/0x110
common_startup_64+0x12c/0x138
unreferenced object 0x00042b00 (size 320):
comm "swapper/0", pid 0, jiffies 4294667296
hex dump (first 32 bytes on cpu 2):
00 00 00 00 ad 4e ad de ff ff ff ff 00 00 00 00 .....N..........
ff ff ff ff ff ff ff ff c0 74 78 98 ff ff ff ff .........tx.....
backtrace (crc 0):
pcpu_alloc_noprof+0x4ad/0xab0
setup_zone_pageset+0x6e/0x290
setup_per_cpu_pageset+0x6a/0x1f0
start_kernel+0x2a4/0x410
x86_64_start_reservations+0x18/0x30
x86_64_start_kernel+0xba/0x110
common_startup_64+0x12c/0x138
unreferenced object 0x00042dc0 (size 48):
comm "swapper/0", pid 0, jiffies 4294667296
hex dump (first 32 bytes on cpu 2):
18 07 01 0b f3 00 00 ea 00 00 00 00 00 00 00 00 ................
00 00 09 09 17 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc 0):
pcpu_alloc_noprof+0x4ad/0xab0
setup_per_cpu_pageset+0xd2/0x1f0
start_kernel+0x2a4/0x410
x86_64_start_reservations+0x18/0x30
x86_64_start_kernel+0xba/0x110
common_startup_64+0x12c/0x138
This is unlikely to be important, but I'm not getting any hits on lore
so I figured better safe than sorry...
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-17 3:38 ` Jakub Kicinski
@ 2025-01-18 13:45 ` Catalin Marinas
2025-01-20 14:51 ` Catalin Marinas
0 siblings, 1 reply; 13+ messages in thread
From: Catalin Marinas @ 2025-01-18 13:45 UTC (permalink / raw)
To: Jakub Kicinski
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton
On Thu, Jan 16, 2025 at 07:38:21PM -0800, Jakub Kicinski wrote:
> On Thu, 09 Jan 2025 23:21:07 +0000 pr-tracker-bot@kernel.org wrote:
> > The pull request you sent on Thu, 9 Jan 2025 10:29:53 -0800:
> >
> > > git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git tags/net-6.13-rc7
> >
> > has been merged into torvalds/linux.git:
> > https://git.kernel.org/torvalds/c/c77cd47cee041bc1664b8e5fcd23036e5aab8e2a
>
> Hi Linus!
>
> After 76d5d4c53e68 ("mm/kmemleak: fix percpu memory leak detection
> failure") we get this on every instance of our testing VMs:
>
> unreferenced object 0x00042aa0 (size 64):
> comm "swapper/0", pid 0, jiffies 4294667296
> hex dump (first 32 bytes on cpu 2):
> 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace (crc 0):
> pcpu_alloc_noprof+0x4ad/0xab0
> setup_zone_pageset+0x30/0x290
> setup_per_cpu_pageset+0x6a/0x1f0
> start_kernel+0x2a4/0x410
> x86_64_start_reservations+0x18/0x30
> x86_64_start_kernel+0xba/0x110
> common_startup_64+0x12c/0x138
I doubt that's related to the networking pull request but I can see it
caused by the above commit, now that we track per-cpu allocations. Most
likely it's a false positive. I'll try to reproduce it next week but
something like below might fix (untested):
diff --git a/mm/numa.c b/mm/numa.c
index e2eec07707d1..c594d853cfe8 100644
--- a/mm/numa.c
+++ b/mm/numa.c
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
+#include <linux/kmemleak.h>
#include <linux/memblock.h>
#include <linux/printk.h>
#include <linux/numa.h>
@@ -23,6 +24,9 @@ void __init alloc_node_data(int nid)
nd_size, nid);
nd = __va(nd_pa);
+ /* needed to track related allocation stored in node_data[] */
+ kmemleak_alloc(nd, nd_size, 0, 0);
+
/* report and initialize */
pr_info("NODE_DATA(%d) allocated [mem %#010Lx-%#010Lx]\n", nid,
nd_pa, nd_pa + nd_size - 1);
--
Catalin
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-18 13:45 ` Catalin Marinas
@ 2025-01-20 14:51 ` Catalin Marinas
2025-01-20 17:45 ` Jakub Kicinski
0 siblings, 1 reply; 13+ messages in thread
From: Catalin Marinas @ 2025-01-20 14:51 UTC (permalink / raw)
To: Jakub Kicinski
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton
On Sat, Jan 18, 2025 at 01:45:18PM +0000, Catalin Marinas wrote:
> On Thu, Jan 16, 2025 at 07:38:21PM -0800, Jakub Kicinski wrote:
> > After 76d5d4c53e68 ("mm/kmemleak: fix percpu memory leak detection
> > failure") we get this on every instance of our testing VMs:
> >
> > unreferenced object 0x00042aa0 (size 64):
> > comm "swapper/0", pid 0, jiffies 4294667296
> > hex dump (first 32 bytes on cpu 2):
> > 00 00 00 00 00 00 00 00 00 00 06 00 00 00 00 00 ................
> > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> > backtrace (crc 0):
> > pcpu_alloc_noprof+0x4ad/0xab0
> > setup_zone_pageset+0x30/0x290
> > setup_per_cpu_pageset+0x6a/0x1f0
> > start_kernel+0x2a4/0x410
> > x86_64_start_reservations+0x18/0x30
> > x86_64_start_kernel+0xba/0x110
> > common_startup_64+0x12c/0x138
>
> I doubt that's related to the networking pull request but I can see it
> caused by the above commit, now that we track per-cpu allocations. Most
> likely it's a false positive. I'll try to reproduce it next week but
> something like below might fix (untested):
>
> diff --git a/mm/numa.c b/mm/numa.c
> index e2eec07707d1..c594d853cfe8 100644
> --- a/mm/numa.c
> +++ b/mm/numa.c
> @@ -1,5 +1,6 @@
> // SPDX-License-Identifier: GPL-2.0-or-later
>
> +#include <linux/kmemleak.h>
> #include <linux/memblock.h>
> #include <linux/printk.h>
> #include <linux/numa.h>
> @@ -23,6 +24,9 @@ void __init alloc_node_data(int nid)
> nd_size, nid);
> nd = __va(nd_pa);
>
> + /* needed to track related allocation stored in node_data[] */
> + kmemleak_alloc(nd, nd_size, 0, 0);
> +
> /* report and initialize */
> pr_info("NODE_DATA(%d) allocated [mem %#010Lx-%#010Lx]\n", nid,
> nd_pa, nd_pa + nd_size - 1);
Hmm, I don't think this would make any difference as kmemleak does scan
the memblock allocations as long as they have a correspondent VA in the
linear map.
BTW, is NUMA enabled or disabled in your .config?
--
Catalin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-20 14:51 ` Catalin Marinas
@ 2025-01-20 17:45 ` Jakub Kicinski
2025-01-21 11:09 ` Catalin Marinas
0 siblings, 1 reply; 13+ messages in thread
From: Jakub Kicinski @ 2025-01-20 17:45 UTC (permalink / raw)
To: Catalin Marinas
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton
On Mon, 20 Jan 2025 14:51:13 +0000 Catalin Marinas wrote:
> > +#include <linux/kmemleak.h>
> > #include <linux/memblock.h>
> > #include <linux/printk.h>
> > #include <linux/numa.h>
> > @@ -23,6 +24,9 @@ void __init alloc_node_data(int nid)
> > nd_size, nid);
> > nd = __va(nd_pa);
> >
> > + /* needed to track related allocation stored in node_data[] */
> > + kmemleak_alloc(nd, nd_size, 0, 0);
> > +
> > /* report and initialize */
> > pr_info("NODE_DATA(%d) allocated [mem %#010Lx-%#010Lx]\n", nid,
> > nd_pa, nd_pa + nd_size - 1);
>
> Hmm, I don't think this would make any difference as kmemleak does scan
> the memblock allocations as long as they have a correspondent VA in the
> linear map.
>
> BTW, is NUMA enabled or disabled in your .config?
It's pretty much kernel/configs/debug.config, with virtme-ng, booted
with 4 CPUs. LMK if you can't repro with that, I can provide exact
cmdline.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-20 17:45 ` Jakub Kicinski
@ 2025-01-21 11:09 ` Catalin Marinas
2025-01-21 15:42 ` Jakub Kicinski
0 siblings, 1 reply; 13+ messages in thread
From: Catalin Marinas @ 2025-01-21 11:09 UTC (permalink / raw)
To: Jakub Kicinski
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton
On Mon, Jan 20, 2025 at 09:45:47AM -0800, Jakub Kicinski wrote:
> On Mon, 20 Jan 2025 14:51:13 +0000 Catalin Marinas wrote:
> > > +#include <linux/kmemleak.h>
> > > #include <linux/memblock.h>
> > > #include <linux/printk.h>
> > > #include <linux/numa.h>
> > > @@ -23,6 +24,9 @@ void __init alloc_node_data(int nid)
> > > nd_size, nid);
> > > nd = __va(nd_pa);
> > >
> > > + /* needed to track related allocation stored in node_data[] */
> > > + kmemleak_alloc(nd, nd_size, 0, 0);
> > > +
> > > /* report and initialize */
> > > pr_info("NODE_DATA(%d) allocated [mem %#010Lx-%#010Lx]\n", nid,
> > > nd_pa, nd_pa + nd_size - 1);
> >
> > Hmm, I don't think this would make any difference as kmemleak does scan
> > the memblock allocations as long as they have a correspondent VA in the
> > linear map.
> >
> > BTW, is NUMA enabled or disabled in your .config?
>
> It's pretty much kernel/configs/debug.config, with virtme-ng, booted
> with 4 CPUs. LMK if you can't repro with that, I can provide exact
> cmdline.
Please do. I haven't tried to reproduce it yet on x86 as I don't have
any non-arm hardware around. It did not trigger on arm64. I think
virtme-ng may work with qemu. Anyway, I'll be off from tomorrow until
the end of the week, so more likely to try it next week.
--
Catalin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-21 11:09 ` Catalin Marinas
@ 2025-01-21 15:42 ` Jakub Kicinski
2025-01-21 20:46 ` Catalin Marinas
0 siblings, 1 reply; 13+ messages in thread
From: Jakub Kicinski @ 2025-01-21 15:42 UTC (permalink / raw)
To: Catalin Marinas
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton
On Tue, 21 Jan 2025 11:09:20 +0000 Catalin Marinas wrote:
> > > Hmm, I don't think this would make any difference as kmemleak does scan
> > > the memblock allocations as long as they have a correspondent VA in the
> > > linear map.
> > >
> > > BTW, is NUMA enabled or disabled in your .config?
> >
> > It's pretty much kernel/configs/debug.config, with virtme-ng, booted
> > with 4 CPUs. LMK if you can't repro with that, I can provide exact
> > cmdline.
>
> Please do. I haven't tried to reproduce it yet on x86 as I don't have
> any non-arm hardware around. It did not trigger on arm64. I think
> virtme-ng may work with qemu. Anyway, I'll be off from tomorrow until
> the end of the week, so more likely to try it next week.
vng -b -f tools/testing/selftests/net/config -f kernel/configs/debug.config
vng -r arch/x86_64/boot/bzImage --cpus 4 --user root -v --network loop
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-21 15:42 ` Jakub Kicinski
@ 2025-01-21 20:46 ` Catalin Marinas
2025-01-23 17:11 ` Matthieu Baerts
0 siblings, 1 reply; 13+ messages in thread
From: Catalin Marinas @ 2025-01-21 20:46 UTC (permalink / raw)
To: Jakub Kicinski
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton
On Tue, Jan 21, 2025 at 07:42:18AM -0800, Jakub Kicinski wrote:
> On Tue, 21 Jan 2025 11:09:20 +0000 Catalin Marinas wrote:
> > > > Hmm, I don't think this would make any difference as kmemleak does scan
> > > > the memblock allocations as long as they have a correspondent VA in the
> > > > linear map.
> > > >
> > > > BTW, is NUMA enabled or disabled in your .config?
> > >
> > > It's pretty much kernel/configs/debug.config, with virtme-ng, booted
> > > with 4 CPUs. LMK if you can't repro with that, I can provide exact
> > > cmdline.
> >
> > Please do. I haven't tried to reproduce it yet on x86 as I don't have
> > any non-arm hardware around. It did not trigger on arm64. I think
> > virtme-ng may work with qemu. Anyway, I'll be off from tomorrow until
> > the end of the week, so more likely to try it next week.
>
> vng -b -f tools/testing/selftests/net/config -f kernel/configs/debug.config
>
> vng -r arch/x86_64/boot/bzImage --cpus 4 --user root -v --network loop
Great, thanks. I managed to reproduce it (after hacking vng to allow
x86_64 as non-host architecture). I'll try to debug towards the end of
the week or next week.
--
Catalin
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-21 20:46 ` Catalin Marinas
@ 2025-01-23 17:11 ` Matthieu Baerts
2025-01-24 18:07 ` Andrea Righi
2025-01-27 14:27 ` Catalin Marinas
0 siblings, 2 replies; 13+ messages in thread
From: Matthieu Baerts @ 2025-01-23 17:11 UTC (permalink / raw)
To: Catalin Marinas
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton, Jakub Kicinski, Andrea Righi
Hi Catalin,
(+ cc Andrea)
On 21/01/2025 21:46, Catalin Marinas wrote:
> On Tue, Jan 21, 2025 at 07:42:18AM -0800, Jakub Kicinski wrote:
>> On Tue, 21 Jan 2025 11:09:20 +0000 Catalin Marinas wrote:
>>>>> Hmm, I don't think this would make any difference as kmemleak does scan
>>>>> the memblock allocations as long as they have a correspondent VA in the
>>>>> linear map.
>>>>>
>>>>> BTW, is NUMA enabled or disabled in your .config?
>>>>
>>>> It's pretty much kernel/configs/debug.config, with virtme-ng, booted
>>>> with 4 CPUs. LMK if you can't repro with that, I can provide exact
>>>> cmdline.
>>>
>>> Please do. I haven't tried to reproduce it yet on x86 as I don't have
>>> any non-arm hardware around. It did not trigger on arm64. I think
>>> virtme-ng may work with qemu. Anyway, I'll be off from tomorrow until
>>> the end of the week, so more likely to try it next week.
>>
>> vng -b -f tools/testing/selftests/net/config -f kernel/configs/debug.config
>>
>> vng -r arch/x86_64/boot/bzImage --cpus 4 --user root -v --network loop
>
> Great, thanks. I managed to reproduce it
Thank you for investigating this issue!
Please note that on our side with MPTCP, I can only reproduce this issue
locally, but not from our CI on GitHub Actions. The main difference is
the kernel (6.8 on the CI, 6.12 here) and the fact our CI is launching
virtme-ng from a VM. The rest should be the same.
> (after hacking vng to allow x86_64 as non-host architecture).
Do not hesitate to report this issue + hack on vng's bug tracker :)
https://github.com/arighi/virtme-ng/issues/new
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-23 17:11 ` Matthieu Baerts
@ 2025-01-24 18:07 ` Andrea Righi
2025-01-27 14:27 ` Catalin Marinas
1 sibling, 0 replies; 13+ messages in thread
From: Andrea Righi @ 2025-01-24 18:07 UTC (permalink / raw)
To: Matthieu Baerts, Catalin Marinas
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton, Jakub Kicinski
On Thu, Jan 23, 2025 at 06:11:16PM +0100, Matthieu Baerts wrote:
...
> Please note that on our side with MPTCP, I can only reproduce this issue
> locally, but not from our CI on GitHub Actions. The main difference is
> the kernel (6.8 on the CI, 6.12 here) and the fact our CI is launching
> virtme-ng from a VM. The rest should be the same.
>
> > (after hacking vng to allow x86_64 as non-host architecture).
Ah right, we still don't support `--arch x86_64|amd64`, it's definitely
something we should add.
>
> Do not hesitate to report this issue + hack on vng's bug tracker :)
>
> https://github.com/arighi/virtme-ng/issues/new
Yep, as pointed by Matt, feel free to post your hack there, otherwise I'll
take a look at this.
Thanks,
-Andrea
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-23 17:11 ` Matthieu Baerts
2025-01-24 18:07 ` Andrea Righi
@ 2025-01-27 14:27 ` Catalin Marinas
2025-01-27 17:39 ` Matthieu Baerts
1 sibling, 1 reply; 13+ messages in thread
From: Catalin Marinas @ 2025-01-27 14:27 UTC (permalink / raw)
To: Matthieu Baerts
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton, Jakub Kicinski, Andrea Righi, Patrick Wang
On Thu, Jan 23, 2025 at 06:11:16PM +0100, Matthieu Baerts wrote:
> On 21/01/2025 21:46, Catalin Marinas wrote:
> > On Tue, Jan 21, 2025 at 07:42:18AM -0800, Jakub Kicinski wrote:
> >> On Tue, 21 Jan 2025 11:09:20 +0000 Catalin Marinas wrote:
> >>>>> Hmm, I don't think this would make any difference as kmemleak does scan
> >>>>> the memblock allocations as long as they have a correspondent VA in the
> >>>>> linear map.
> >>>>>
> >>>>> BTW, is NUMA enabled or disabled in your .config?
> >>>>
> >>>> It's pretty much kernel/configs/debug.config, with virtme-ng, booted
> >>>> with 4 CPUs. LMK if you can't repro with that, I can provide exact
> >>>> cmdline.
> >>>
> >>> Please do. I haven't tried to reproduce it yet on x86 as I don't have
> >>> any non-arm hardware around. It did not trigger on arm64. I think
> >>> virtme-ng may work with qemu. Anyway, I'll be off from tomorrow until
> >>> the end of the week, so more likely to try it next week.
> >>
> >> vng -b -f tools/testing/selftests/net/config -f kernel/configs/debug.config
> >>
> >> vng -r arch/x86_64/boot/bzImage --cpus 4 --user root -v --network loop
> >
> > Great, thanks. I managed to reproduce it
>
> Thank you for investigating this issue!
>
> Please note that on our side with MPTCP, I can only reproduce this issue
> locally, but not from our CI on GitHub Actions. The main difference is
> the kernel (6.8 on the CI, 6.12 here) and the fact our CI is launching
> virtme-ng from a VM. The rest should be the same.
It won't show up in 6.8 as kmemleak did not report per-cpu allocation
leaks. But even with the latest kernel, it's probabilistic, some data
somewhere may look like a pointer and not be reported (I couldn't
reproduce it on arm64).
It turns out to be a false positive. The __percpu pointers are
referenced from node_data[]. The latter is populated in
alloc_node_data() and kmemleak registers the pg_data_t object from the
memblock allocation. However, due to an incorrect pfn range check
introduced by commit 84c326299191 ("mm: kmemleak: check physical address
when scan"), we ignore the node_data[0] allocation. Some printks in
alloc_node_data() show:
nd_pa = 0x3ffda140
nd_size = 0x4ec0
min_low_pfn = 0x0
max_low_pfn = 0x3ffdf
nd_pa + nd_size == 0x3ffdf000
So the "PHYS_PFN(nd_pa + nd_size) >= max_low_pfn" check in kmemleak is
true and the whole pg_data_t object ignored (not scanned). The __percpu
pointers won't be detected. The fix is simple:
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 820ba3b5cbfc..bb7d61fc4da3 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -1689,7 +1689,7 @@ static void kmemleak_scan(void)
unsigned long phys = object->pointer;
if (PHYS_PFN(phys) < min_low_pfn ||
- PHYS_PFN(phys + object->size) >= max_low_pfn)
+ PHYS_PFN(phys + object->size) > max_low_pfn)
__paint_it(object, KMEMLEAK_BLACK);
}
I'll post this as a proper patch and I found some minor things to clean
up in kmemleak in the meantime.
> > (after hacking vng to allow x86_64 as non-host architecture).
>
> Do not hesitate to report this issue + hack on vng's bug tracker :)
Done ;)
https://github.com/arighi/virtme-ng/issues/223
--
Catalin
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [GIT PULL] Networking for v6.13-rc7
2025-01-27 14:27 ` Catalin Marinas
@ 2025-01-27 17:39 ` Matthieu Baerts
0 siblings, 0 replies; 13+ messages in thread
From: Matthieu Baerts @ 2025-01-27 17:39 UTC (permalink / raw)
To: Catalin Marinas
Cc: torvalds, davem, netdev, linux-kernel, pabeni, Guo Weikang,
Andrew Morton, Jakub Kicinski, Andrea Righi, Patrick Wang
Hi Catalin,
On 27/01/2025 15:27, Catalin Marinas wrote:
> On Thu, Jan 23, 2025 at 06:11:16PM +0100, Matthieu Baerts wrote:
>> On 21/01/2025 21:46, Catalin Marinas wrote:
>>> On Tue, Jan 21, 2025 at 07:42:18AM -0800, Jakub Kicinski wrote:
>>>> On Tue, 21 Jan 2025 11:09:20 +0000 Catalin Marinas wrote:
>>>>>>> Hmm, I don't think this would make any difference as kmemleak does scan
>>>>>>> the memblock allocations as long as they have a correspondent VA in the
>>>>>>> linear map.
>>>>>>>
>>>>>>> BTW, is NUMA enabled or disabled in your .config?
>>>>>>
>>>>>> It's pretty much kernel/configs/debug.config, with virtme-ng, booted
>>>>>> with 4 CPUs. LMK if you can't repro with that, I can provide exact
>>>>>> cmdline.
>>>>>
>>>>> Please do. I haven't tried to reproduce it yet on x86 as I don't have
>>>>> any non-arm hardware around. It did not trigger on arm64. I think
>>>>> virtme-ng may work with qemu. Anyway, I'll be off from tomorrow until
>>>>> the end of the week, so more likely to try it next week.
>>>>
>>>> vng -b -f tools/testing/selftests/net/config -f kernel/configs/debug.config
>>>>
>>>> vng -r arch/x86_64/boot/bzImage --cpus 4 --user root -v --network loop
>>>
>>> Great, thanks. I managed to reproduce it
>>
>> Thank you for investigating this issue!
>>
>> Please note that on our side with MPTCP, I can only reproduce this issue
>> locally, but not from our CI on GitHub Actions. The main difference is
>> the kernel (6.8 on the CI, 6.12 here) and the fact our CI is launching
>> virtme-ng from a VM. The rest should be the same.
>
> It won't show up in 6.8 as kmemleak did not report per-cpu allocation
> leaks. But even with the latest kernel, it's probabilistic, some data
> somewhere may look like a pointer and not be reported (I couldn't
> reproduce it on arm64).
My bad, I was talking about the host kernel. Or to be precise, I should
say the kernel starting the test VM running a >=v6.13-rc7 kernel.
> It turns out to be a false positive. The __percpu pointers are
> referenced from node_data[]. The latter is populated in
> alloc_node_data() and kmemleak registers the pg_data_t object from the
> memblock allocation. However, due to an incorrect pfn range check
> introduced by commit 84c326299191 ("mm: kmemleak: check physical address
> when scan"), we ignore the node_data[0] allocation. Some printks in
> alloc_node_data() show:
>
> nd_pa = 0x3ffda140
> nd_size = 0x4ec0
> min_low_pfn = 0x0
> max_low_pfn = 0x3ffdf
> nd_pa + nd_size == 0x3ffdf000
>
> So the "PHYS_PFN(nd_pa + nd_size) >= max_low_pfn" check in kmemleak is
> true and the whole pg_data_t object ignored (not scanned). The __percpu
> pointers won't be detected. The fix is simple:
>
> diff --git a/mm/kmemleak.c b/mm/kmemleak.c
> index 820ba3b5cbfc..bb7d61fc4da3 100644
> --- a/mm/kmemleak.c
> +++ b/mm/kmemleak.c
> @@ -1689,7 +1689,7 @@ static void kmemleak_scan(void)
> unsigned long phys = object->pointer;
>
> if (PHYS_PFN(phys) < min_low_pfn ||
> - PHYS_PFN(phys + object->size) >= max_low_pfn)
> + PHYS_PFN(phys + object->size) > max_low_pfn)
> __paint_it(object, KMEMLEAK_BLACK);
> }
Thank you for having looked at that and provided a fix quickly!
I confirm that it fixes the issue on my side! Just in case you want a
tested-by tag:
Tested-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
> I'll post this as a proper patch and I found some minor things to clean
> up in kmemleak in the meantime.
Great!
>>> (after hacking vng to allow x86_64 as non-host architecture).
>>
>> Do not hesitate to report this issue + hack on vng's bug tracker :)
>
> Done ;)
>
> https://github.com/arighi/virtme-ng/issues/223
Thank you! :)
Cheers,
Matt
--
Sponsored by the NGI0 Core fund.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2025-01-27 17:39 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-09 18:29 [GIT PULL] Networking for v6.13-rc7 Jakub Kicinski
2025-01-09 23:21 ` pr-tracker-bot
2025-01-17 3:38 ` Jakub Kicinski
2025-01-18 13:45 ` Catalin Marinas
2025-01-20 14:51 ` Catalin Marinas
2025-01-20 17:45 ` Jakub Kicinski
2025-01-21 11:09 ` Catalin Marinas
2025-01-21 15:42 ` Jakub Kicinski
2025-01-21 20:46 ` Catalin Marinas
2025-01-23 17:11 ` Matthieu Baerts
2025-01-24 18:07 ` Andrea Righi
2025-01-27 14:27 ` Catalin Marinas
2025-01-27 17:39 ` Matthieu Baerts
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).