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  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Yqbv17P9eLH0YdPG@hirez.programming.kicks-ass.net>
Date:   Mon, 13 Jun 2022 10:05:43 +0200
From:   Peter Zijlstra <peterz@...radead.org>
To:     "Jason A. Donenfeld" <Jason@...c4.com>
Cc:     Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
        linux-kernel@...r.kernel.org, Ingo Molnar <mingo@...hat.com>,
        Will Deacon <will@...nel.org>,
        Waiman Long <longman@...hat.com>,
        Boqun Feng <boqun.feng@...il.com>,
        Theodore Ts'o <tytso@....edu>,
        Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH] locking/lockdep: Use sched_clock() for random numbers.

On Tue, May 17, 2022 at 11:53:43AM +0200, Jason A. Donenfeld wrote:
> Hi Sebastian,
> 
> Interesting RT consideration. I hope there aren't too many of these
> special cases that would necessitate a general mechanism. Fingers
> crossed this is the only one.
> 
> On Tue, May 17, 2022 at 11:16:14AM +0200, Sebastian Andrzej Siewior wrote:
> > -			cookie.val = 1 + (prandom_u32() >> 16);
> > +			cookie.val = 1 + (sched_clock() & 0xffff);
> >  			hlock->pin_count += cookie.val;
>  
> I have no idea what the requirements here are.

Mostly nothing. It's debug code, and if someone wants to circumvent they
can, but then their code is ugly and stands out like a sort thumb which
then serves its goal as it won't pass review etc..

> What would happen if you
> just did atomic_inc_return(&some_global) instead? That'd be faster
> anyhow, and it's not like 16 bits gives you much variance anyway...

That would in fact be slower, sched_clock() will, on any sane hardware,
be a rdtsc, mul and shr, which are all local.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ