Re: Ping: [PATCH 1/1] Fix deadlock when running run_iter_bw_infinitely

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

 



On Wed, Dec 09, 2015 at 10:11:55AM +0100, Hans Westgaard Ry wrote:
> Sorry but I didn't see that "something" gobbled part of the mail.
> The correct lines are  (as in the original):
> 
> src/perftest_resources.c | 22 ++++++++++++++++------
>  1 file changed, 16 insertions(+), 6 deletions(-)
> 
> diff --git a/src/perftest_resources.c b/src/perftest_resources.c
> index cb915e0..4d8e6c0 100755
> --- a/src/perftest_resources.c
> +++ b/src/perftest_resources.c
> @@ -25,6 +25,12 @@ static enum ibv_wr_opcode opcode_atomic_array[] = {IBV_WR_ATOMIC_CMP_AND_SWP,IBV
>  struct perftest_parameters* duration_param;
>  struct check_alive_data check_alive_data;
> +/*
> + * Flag to trig call to print_report_bw
> + * The flag is set in signal_handler and tested/reset in run_iter_bw_infinitely
> + */
> +static volatile int trig_print_report_bw = 0;
> +
>  /******************************************************************************
>   * Beginning
> @@ -3214,7 +3220,15 @@ int run_iter_bw_infinitely(struct pingpong_context *ctx,struct perftest_paramete
>  	/* main loop for posting */
>  	while (1) {
> -
> +		if (trig_print_report_bw) {
> +			duration_param->tcompleted[0] = get_cycles();
> +			print_report_bw(duration_param,NULL);
> +			duration_param->iters = 0;
> +			alarm(duration_param->duration);
> +			duration_param->tposted[0] = get_cycles();
> +			trig_print_report_bw = 0;
> +		}
> +		
>  		/* main loop to run over all the qps and post each time n messages */
>  		for (index =0 ; index < num_of_qps ; index++) {
> @@ -4213,11 +4227,7 @@ void check_alive(int sig)
>   ******************************************************************************/
>  void catch_alarm_infintely(int sig)
>  {
> -	duration_param->tcompleted[0] = get_cycles();
> -	print_report_bw(duration_param,NULL);
> -	duration_param->iters = 0;
> -	alarm(duration_param->duration);
> -	duration_param->tposted[0] = get_cycles();
> +	trig_print_report_bw = 1;
>  }
Thanks, it looks good,
Reviewed-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>

> 
> 
> 
> On 12/09/2015 09:52 AM, Leon Romanovsky wrote:
> >On Wed, Dec 09, 2015 at 09:33:11AM +0100, Hans Westgaard Ry wrote:
> >>Any comments on this patch ?
> >>
> >>
> >>
> >>On 11/18/2015 01:27 PM, Hans Westgaard Ry wrote:
> >>>The test uses a signal-handler to periodically print a line of report.
> >>>+		if (trig_print_report_bw) {
> >>>+			duration_param->tcompleted[0] =et_cycles();
> >>>+			print_report_bw(duration_param,NULL);
> >>>+			duration_param->iters =;
> >Excuse me, what did you mean by the line above?
> >
> >>>+			alarm(duration_param->duration);
> >>>+			duration_param->tposted[0] =et_cycles();
> >>>+			trig_print_report_bw =;
> >And this line too.
> >
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux