Re: [PATCH v2] rt-tests: pip_stress: Add option --usleep

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Fri, 24 Jan 2025, Shizhao Chen wrote:

> Different hardwares have different threasholds for usleep_val to
> reliably trigger an prio inversion, add option --usleep to allow
> specifying it at runtime, to facilitate testing of prio inheritance
> on different platforms.
> 
> Signed-off-by: Shizhao Chen <shichen@xxxxxxxxxx>
> ---
>  src/pi_tests/pip_stress.8 |  6 +++++-
>  src/pi_tests/pip_stress.c | 10 ++++++++--
>  2 files changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/src/pi_tests/pip_stress.8 b/src/pi_tests/pip_stress.8
> index 0d06dd2..0f65ad1 100644
> --- a/src/pi_tests/pip_stress.8
> +++ b/src/pi_tests/pip_stress.8
> @@ -5,7 +5,8 @@
>  .B pip_stress \- Priority Inheritance with processes
>  .SH SYNOPSIS
>  .B pip_stress
> -
> +.RB [ \-u|\-\-usleep
> +.IR TIME ]
>  .SH DESCRIPTION
>  This program demonstrates the technique of using priority inheritance (PI)
>  mutexes with processes instead of threads.
> @@ -41,6 +42,9 @@ merely increase the time that the low priority process sleeps while
>  holding the lock. (usleep);
>  Also note that you have to run as a user with permission to change
>  scheduling priorities.
> +.SH OPTIONS
> +.IP "\-u TIME,\-\-usleep=TIME"
> +Specify the sleep time in usec of the low priority process. Defaults to 500.
>  .BR
>  .SH AUTHOR
>  pip_stress was written by John Kacur <jkacur at redhat.com>
> diff --git a/src/pi_tests/pip_stress.c b/src/pi_tests/pip_stress.c
> index fb0391b..9bd225f 100644
> --- a/src/pi_tests/pip_stress.c
> +++ b/src/pi_tests/pip_stress.c
> @@ -72,7 +72,9 @@ static void usage(int error)
>  	printf("pip_stress V %1.2f\n", VERSION);
>  	printf("Usage:\n"
>  	       "pip_stress <options>\n"\
> -	       "-h	--help                  Show this help menu.\n"
> +	       "-h       --help          Show this help menu.\n"\
> +	       "-u TIME  --usleep=TIME   Specify the sleep time in usec of the low priority process.\n"\
> +	       "                         Defaults to 500.\n"
>  	       );
>  	exit(error);
>  }
> @@ -88,16 +90,20 @@ int main(int argc, char *argv[])
>  	for (;;) {
>  		struct option long_options[] = {
>  			{ "help",	no_argument,		NULL,	'h' },
> +			{ "usleep",	required_argument,	NULL,	'u' },
>  			{ NULL,		0,			NULL,	0 },
>  		};
>  
> -		int c = getopt_long(argc, argv, "s:h", long_options, NULL);
> +		int c = getopt_long(argc, argv, "hu:", long_options, NULL);
>  		if (c == -1)
>  			break;
>  		switch (c) {
>  		case 'h':
>  			usage(0);
>  			break;
> +		case 'u':
> +			usleep_val = strtoul(optarg, NULL, 10);
> +			break;
>  		default:
>  			usage(1);
>  			break;
> -- 
> 2.47.1
> 
> 
> 
Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>





[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux