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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 7 Mar 2015 13:47:02 -0800
From:	"Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>
To:	Alexander Gordeev <agordeev@...hat.com>
Cc:	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/9] rcu: Cleanup rcu_init_geometry() code and arithmetics

On Sat, Mar 07, 2015 at 06:59:54PM +0000, Alexander Gordeev wrote:
> On Sat, Mar 07, 2015 at 10:08:21AM -0800, Paul E. McKenney wrote:
> > The rest of this series looks promising, but I do have to ask...  How have
> > you tested these?  The most straightforward approach would be to find
> 
> I tried trees with 1,2 and 3 levels on a 160-CPU machine + dozens of kernel
> builds with 'make -j160'. I feel bit guilty I did not try the corner case
> with 4 levels, but run-time-wise it is not really differ from what I done.
> 
> Do you expect the below is a better option?

What you did is not bad, actually.  You can get four levels by building
with both CONFIG_RCU_FANOUT and CONFIG_RCU_FANOUT_LEAF equal to five,
and that will also test non-power-of-two choices.  You do that, and I
will give your series a shot.

What I need to do is to create a user-level test that does the full
exhaustive test, varying:

o	NR_CPUS from 1 to 4096
o	nr_cpu_ids from 1 to NR_CPUS
o	CONFIG_RCU_FANOUT from 2 to 64
o	CONFIG_RCU_FANOUT_LEAF from 2 to 64
o	CONFIG_RCU_FANOUT_EXACT from n to y

Unfortunately, if each test case took one millisecond, this would take
two years.  Not so good when a new version of Linux comes out every
couple of months.  Of course, this could be paralellized, but still...

So I should focus on the values actually used, especially for NR_CPUS:

o	NR_CPUS from 1 to 4096 by powers of two, for 13 combinations
o	nr_cpu_ids from 1 to NR_CPUS
o	CONFIG_RCU_FANOUT of 32 or 64
o	CONFIG_RCU_FANOUT_LEAF of 16, 32, or 64
o	CONFIG_RCU_FANOUT_EXACT of n or y

This is 268,435,452 test cases, which is about tree days at one
millisecond per case.  (My current single-use manual-inspection test
takes eight milliseconds, but then again it is printing out tons of
stuff.)  But I do need to add at least a few oddball values -- there
was a bug for some years that happened only with CONFIG_RCU_FANOUT and
CONFIG_RCU_FANOUT_LEAF not dividing evenly.

Or maybe I can use cbmc and make things faster.

Anyway, again, if you do the test with CONFIG_RCU_FANOUT and
CONFIG_RCU_FANOUT_LEAF equal to five, this user-level testing is my
problem rather than yours.

							Thanx, Paul

> > a KVM-capable system with at least 16 CPUs and type the following from
> > the top-level directory:
> > 
> > sh tools/testing/selftests/rcutorture/bin/kvm.sh --cpus 34 --duration 5
> > 
> > This will do a series of 16 build-boot-test cycles with various configs
> > (including various rcu_node tree shapes), and print a summary of the
> > outcome at the end.
> > 
> > For these sorts of changes, I usually also do some user-level testing.
> 
> 
> -- 
> Regards,
> Alexander Gordeev
> agordeev@...hat.com
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ