• David Howells's avatar
    The attached patch adds a module for testing and benchmarking mutexes, · 0f62fdcf
    David Howells authored
    semaphores and R/W semaphores.
    
    Using it is simple:
    
    	insmod synchro-test.ko <args>
    
    It will exit with error ENOANO after running the tests and printing the
    results to the kernel console log.
    
    The available arguments are:
    
     (*) mx=N
    
    	Start up to N mutex thrashing threads, where N is at most 20. All will
    	try and thrash the same mutex.
    
     (*) sm=N
    
    	Start up to N counting semaphore thrashing threads, where N is at most
    	20. All will try and thrash the same semaphore.
    
     (*) ism=M
    
    	Initialise the counting semaphore with M, where M is any positive
    	integer greater than zero. The default is 4.
    
     (*) rd=N
     (*) wr=O
     (*) dg=P
    
    	Start up to N reader thrashing threads, O writer thrashing threads and
    	P downgrader thrashing threads, where N, O and P are at most 20
    	apiece. All will try and thrash the same read/write semaphore.
    
     (*) elapse=N
    
    	Run the tests for N seconds. The default is 5.
    
     (*) load=N
    
    	Each thread delays for N uS whilst holding the lock. The dfault is 0.
    
     (*) interval=N
    
    	Each thread delays for N uS whilst not holding the lock. The default
    	is 0.
    
     (*) do_sched=1
    
    	Each thread will call schedule if required after each iteration.
    
     (*) v=1
    
    	Print more verbose information, including a thread iteration
    	distribution list.
    
    The module should be enabled by turning on CONFIG_DEBUG_SYNCHRO_TEST to "m".
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    0f62fdcf
Kconfig.debug 36.9 KB