lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 17 Feb 2020 08:39:45 +0100 From: "Jason A. Donenfeld" <Jason@...c4.com> To: Herbert Xu <herbert@...dor.apana.org.au> Cc: eric.dumazet@...il.com, cai@....pw, netdev@...r.kernel.org, linux-kernel@...r.kernel.org, Linus Torvalds <torvalds@...ux-foundation.org> Subject: Re: [PATCH v3] skbuff: fix a data race in skb_queue_len() On 2/17/20, Herbert Xu <herbert@...dor.apana.org.au> wrote: > Jason A. Donenfeld <Jason@...c4.com> wrote: >> Hi Eric, >> >> On Tue, Feb 04, 2020 at 01:40:29PM -0500, Qian Cai wrote: >>> - list->qlen--; >>> + WRITE_ONCE(list->qlen, list->qlen - 1); >> >> Sorry I'm a bit late to the party here, but this immediately jumped out. >> This generates worse code with a bigger race in some sense: >> >> list->qlen-- is: >> >> 0: 83 6f 10 01 subl $0x1,0x10(%rdi) >> >> whereas WRITE_ONCE(list->qlen, list->qlen - 1) is: >> >> 0: 8b 47 10 mov 0x10(%rdi),%eax >> 3: 83 e8 01 sub $0x1,%eax >> 6: 89 47 10 mov %eax,0x10(%rdi) >> >> Are you sure that's what we want? > > Fixing these KCSAN warnings is actively making the kernel worse. > > Why are we still doing this? > Not necessarily a big fan of this either, but just for the record here in case it helps, while you might complain about instruction size blowing up a bit, cycle-wise these wind up being about the same anyway. On x86, one instruction != one cycle.
Powered by blists - more mailing lists