diff mbox

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

Message ID 5667F05B.8010200@oracle.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Hans Westgaard Ry Dec. 9, 2015, 9:11 a.m. UTC
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(-)


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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Leon Romanovsky Dec. 9, 2015, 9:30 a.m. UTC | #1
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@mellanox.com>

> 
> 
> 
> 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@vger.kernel.org
> 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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans Westgaard Ry Jan. 8, 2016, 7:36 a.m. UTC | #2
Hi,
I cloned  git://git.openfabrics.org/~grockah/perftest.git today and found
quite a few new commits but not this patch.

Am I looking in the wrong repository or are there problems with this patch ?

Hans

On 12/09/2015 10:30 AM, Leon Romanovsky wrote:
> 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@mellanox.com>
>
>>
>>
>> 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@vger.kernel.org
>> 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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Hans Westgaard Ry Jan. 21, 2016, 1:58 p.m. UTC | #3
On 12/09/2015 10:30 AM, Leon Romanovsky wrote:
> 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@mellanox.com>
Hi,
I cloned  git://git.openfabrics.org/~grockah/perftest.git today and found
quite a few new commits but not this patch.

Am I looking in the wrong repository or are there problems with this 
patch ?

Hans
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Leon Romanovsky Jan. 21, 2016, 2:12 p.m. UTC | #4
On Fri, Jan 08, 2016 at 08:36:24AM +0100, Hans Westgaard Ry wrote:
> Hi,
> I cloned  git://git.openfabrics.org/~grockah/perftest.git today and found
> quite a few new commits but not this patch.
> 
> Am I looking in the wrong repository or are there problems with this patch ?

Gil/Or
Your feedback will be appreciated.

> 
> Hans
> 
> On 12/09/2015 10:30 AM, Leon Romanovsky wrote:
> >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@mellanox.com>
> >
> >>
> >>
> >>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@vger.kernel.org
> >>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@vger.kernel.org
> 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@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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;
  }