[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <e4e9b6a4-ea61-4b98-b948-04ca3caa5f0b@blackwall.org>
Date: Tue, 4 Feb 2025 18:36:03 +0200
From: Nikolay Aleksandrov <razor@...ckwall.org>
To: Ido Schimmel <idosch@...dia.com>, netdev@...r.kernel.org
Cc: davem@...emloft.net, kuba@...nel.org, pabeni@...hat.com,
edumazet@...gle.com, andrew+netdev@...n.ch, horms@...nel.org,
petrm@...dia.com
Subject: Re: [PATCH net-next 1/8] vxlan: Annotate FDB data races
On 2/4/25 16:55, Ido Schimmel wrote:
> The 'used' and 'updated' fields in the FDB entry structure can be
> accessed concurrently by multiple threads, leading to reports such as
> [1]. Can be reproduced using [2].
>
> Suppress these reports by annotating these accesses using
> READ_ONCE() / WRITE_ONCE().
>
> [1]
> BUG: KCSAN: data-race in vxlan_xmit / vxlan_xmit
>
> write to 0xffff942604d263a8 of 8 bytes by task 286 on cpu 0:
> vxlan_xmit+0xb29/0x2380
> dev_hard_start_xmit+0x84/0x2f0
> __dev_queue_xmit+0x45a/0x1650
> packet_xmit+0x100/0x150
> packet_sendmsg+0x2114/0x2ac0
> __sys_sendto+0x318/0x330
> __x64_sys_sendto+0x76/0x90
> x64_sys_call+0x14e8/0x1c00
> do_syscall_64+0x9e/0x1a0
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
>
> read to 0xffff942604d263a8 of 8 bytes by task 287 on cpu 2:
> vxlan_xmit+0xadf/0x2380
> dev_hard_start_xmit+0x84/0x2f0
> __dev_queue_xmit+0x45a/0x1650
> packet_xmit+0x100/0x150
> packet_sendmsg+0x2114/0x2ac0
> __sys_sendto+0x318/0x330
> __x64_sys_sendto+0x76/0x90
> x64_sys_call+0x14e8/0x1c00
> do_syscall_64+0x9e/0x1a0
> entry_SYSCALL_64_after_hwframe+0x77/0x7f
>
> value changed: 0x00000000fffbac6e -> 0x00000000fffbac6f
>
> Reported by Kernel Concurrency Sanitizer on:
> CPU: 2 UID: 0 PID: 287 Comm: mausezahn Not tainted 6.13.0-rc7-01544-gb4b270f11a02 #5
> Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-3.fc41 04/01/2014
>
> [2]
> #!/bin/bash
>
> set +H
> echo whitelist > /sys/kernel/debug/kcsan
> echo !vxlan_xmit > /sys/kernel/debug/kcsan
>
> ip link add name vx0 up type vxlan id 10010 dstport 4789 local 192.0.2.1
> bridge fdb add 00:11:22:33:44:55 dev vx0 self static dst 198.51.100.1
> taskset -c 0 mausezahn vx0 -a own -b 00:11:22:33:44:55 -c 0 -q &
> taskset -c 2 mausezahn vx0 -a own -b 00:11:22:33:44:55 -c 0 -q &
>
> Reviewed-by: Petr Machata <petrm@...dia.com>
> Signed-off-by: Ido Schimmel <idosch@...dia.com>
> ---
> drivers/net/vxlan/vxlan_core.c | 18 +++++++++---------
> 1 file changed, 9 insertions(+), 9 deletions(-)
>
Reviewed-by: Nikolay Aleksandrov <razor@...ckwall.org>
Powered by blists - more mailing lists