[Ocfs2-test-devel] [PATCH 06/11] ocfs2-test: changed to accept an alternate NIC to be used by the test.

tristan tristan.ye at oracle.com
Thu Jun 3 20:19:08 PDT 2010


Marcos Matsunaga wrote:
> - Made some changes trying to prevent write_torture script from waiting
>   indefinetely for the return from openmpi.
>
> Signed-off-by: Marcos Matsunaga <Marcos.Matsunaga at oracle.com>
> ---
>  programs/write_torture/run_write_torture.py |   43 +++++++++++---------------
>  programs/write_torture/write_torture.c      |   10 +++++-
>  2 files changed, 26 insertions(+), 27 deletions(-)
>
> diff --git a/programs/write_torture/run_write_torture.py b/programs/write_torture/run_write_torture.py
> index aac64a6..6f4a7d0 100755
> --- a/programs/write_torture/run_write_torture.py
> +++ b/programs/write_torture/run_write_torture.py
> @@ -54,6 +54,7 @@ Usage = '\n	 %prog [-b|--blocksize] \
>  [-c | --count count] \
>  [-d | --directory directory] \
>  [-f | --filename <filename>] \
> +[-i | --if <Network Interface>] \
>  [-l | --logfile logfile] \
>  [-n | --nodelist nodelist] \
>  [-p | --procs procs] \
> @@ -95,6 +96,12 @@ if __name__=='__main__':
>  				If specified, a single file will be used by \
>  				instances of the test.')
>  #
> +        parser.add_option('-i',
> +                '--if',
> +                dest='interface',
> +                type='string',
> +                help='Network interface to be used by the test.')
> +#
>  	parser.add_option('-l', 
>  		'--logfile', 
>  		dest='logfile',
> @@ -122,9 +129,7 @@ if __name__=='__main__':
>  	(options, args) = parser.parse_args()
>  	if len(args) != 0:
>  		o2tf.printlog('args left %s' % len(args), 
> -			  logfile, 
> -		0, 
> -		'')
> +			  logfile, 0, '')
>  		parser.error('incorrect number of arguments')
>  #
>  	if options.blocksize:
> @@ -132,9 +137,7 @@ if __name__=='__main__':
>  		blockvalues = blocksize.split(',')
>  		if len(blockvalues) != 2:
>  			o2tf.printlog('Blocksize must be specified in format xxx,yyy\n\n', 
> -			logfile, 
> -			0, 
> -			'')
> +			logfile, 0, '')
>  			parser.error('Invalid format.')
>  	else:
>  		parser.error('Blocksize parameter needs to be specified.')
> @@ -142,16 +145,12 @@ if __name__=='__main__':
>  	if int(blockvalues[0]) < MINBLOCKSIZE or int(blockvalues[1]) > MAXBLOCKSIZE:
>  		o2tf.printlog('Blocksize must be between %s and %s\n\n' % 
>  		(MINBLOCKSIZE, MAXBLOCKSIZE), 
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  		parser.error('Invalid range.')
>  	if DEBUGON:
>  		o2tf.printlog('Blocksize range from %s to %s\n\n' % 
>  	  (str(blockvalues[0]), str(blockvalues[1])), 
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  #
>  	if options.count:
>  		count = options.count
> @@ -175,7 +174,8 @@ if __name__=='__main__':
>  			nodelist = nodelist.add(options.nodelist)
>  		else:
>  			nodelist = options.nodelist.split(',')
> -
> +#
> +	interface = options.interface
>  #
>  	if options.procs:
>  		procs = options.procs
> @@ -190,23 +190,15 @@ else:
>  #
>  if DEBUGON:
>  	o2tf.printlog('run_write_torture: main - current directory %s' % os.getcwd(),
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  	o2tf.printlog('run_write_torture: main - cmd = %s' % cmd,
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  	o2tf.printlog('run_write_torture: main - blocksize = %s' % options.blocksize,
> -		logfile, 
> -		0, 
> -		'')
> +		logfile, 0, '')
>  #
>  for z in range(options.count):
>  	o2tf.printlog('run_write_torture: Running test# %s' % z, 
> -	logfile, 
> -	0, 
> -	'')
> +	logfile, 0, '')
>  #
>  	o2tf.OpenMPIInit(DEBUGON, options.nodelist, logfile, 'ssh')
>  	ret = o2tf.openmpi_run(DEBUGON, options.procs,
> @@ -217,6 +209,7 @@ for z in range(options.count):
>  		os.path.join(options.directory, filename) ) ), 
>  		options.nodelist, 
>  		'ssh',
> +		options.interface,
>  		options.logfile,
>  		'WAIT')
>  	if not ret:
> diff --git a/programs/write_torture/write_torture.c b/programs/write_torture/write_torture.c
> index de5abcf..7b93306 100644
> --- a/programs/write_torture/write_torture.c
> +++ b/programs/write_torture/write_torture.c
> @@ -94,6 +94,9 @@ static int launch_child(char *fname, int open_flags, int (*newmain)(void))
>  		mypid = getpid();
>  		srand(mypid);
>  		ret = newmain();
> +		fprintf(stderr,
> +			"%s: Error %d launch child \n", hostn, 
> +			ret);
>  		exit(ret);
>  	}
>  	if (pid == -1) {
> @@ -395,7 +398,7 @@ int main(int argc, char **argv)
>  	if (signal(SIGINT, signal_handler) == SIG_ERR) {
>  		fprintf(stderr, "%s: Couldn't setup parent signal handler!\n",
>  		        hostn);
> -		return 1;
> +		exit(1);

It makes no sense here, we didn't fork any children yet.

>  	}
>  
>  	/* We don't care. Getting back a short write is just fine. */
> @@ -486,5 +489,8 @@ kill_all:
>  		dprintf("%s: Killed children\n", hostn);
>  	}
>  
> -	return ret == -ECHILD ? ret : 0;
> +	fprintf(stderr, "%s: kill_all %d \n", hostn, ret);
> +	exit(0);

Why we need to always return '0' from the binary? a 'none-zero' return 
from binary cause the openmpi waiting indefinitely?

> +/*	return ret == -ECHILD ? ret : 0;
> + */
>  }




More information about the Ocfs2-test-devel mailing list