All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gustavo Romero <gromero@linux.vnet.ibm.com>
To: Cyril Bur <cyrilbur@gmail.com>, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] selftests/powerpc: Skip tm-unavailable if TM is not enabled
Date: Tue, 6 Mar 2018 17:24:35 -0300	[thread overview]
Message-ID: <5A9EF903.8020200@linux.vnet.ibm.com> (raw)
In-Reply-To: <1520293795.5421.1.camel@gmail.com>

Hi Cyril,

On 03/05/2018 08:49 PM, Cyril Bur wrote:
> On Mon, 2018-03-05 at 15:48 -0500, Gustavo Romero wrote:
>> Some processor revisions do not support transactional memory, and
>> additionally kernel support can be disabled. In either case the
>> tm-unavailable test should be skipped, otherwise it will fail with
>> a SIGILL.
>>
>> That commit also sets this selftest to be called through the test
>> harness as it's done for other TM selftests.
>>
>> Finally, it avoids using "ping" as a thread name since it's
>> ambiguous and can be confusing when shown, for instance,
>> in a kernel backtrace log.
>>
> 
> I spent more time than I care to admit looking at backtraces wondering
> how "ping" got in the mix ;).

heh sorry about that... :)


>> Fixes: 77fad8bfb1d2 ("selftests/powerpc: Check FP/VEC on exception in TM")
>> Signed-off-by: Gustavo Romero <gromero@linux.vnet.ibm.com>
> 
> Reviewed-by: Cyril Bur <cyrilbur@gmail.com>

Thanks for reviewing it.


Cheers,
Gustavo

>> ---
>>  .../testing/selftests/powerpc/tm/tm-unavailable.c  | 24 ++++++++++++++--------
>>  1 file changed, 16 insertions(+), 8 deletions(-)
>>
>> diff --git a/tools/testing/selftests/powerpc/tm/tm-unavailable.c b/tools/testing/selftests/powerpc/tm/tm-unavailable.c
>> index e6a0fad..156c8e7 100644
>> --- a/tools/testing/selftests/powerpc/tm/tm-unavailable.c
>> +++ b/tools/testing/selftests/powerpc/tm/tm-unavailable.c
>> @@ -80,7 +80,7 @@ bool is_failure(uint64_t condition_reg)
>>  	return ((condition_reg >> 28) & 0xa) == 0xa;
>>  }
>>  
>> -void *ping(void *input)
>> +void *tm_una_ping(void *input)
>>  {
>>  
>>  	/*
>> @@ -280,7 +280,7 @@ void *ping(void *input)
>>  }
>>  
>>  /* Thread to force context switch */
>> -void *pong(void *not_used)
>> +void *tm_una_pong(void *not_used)
>>  {
>>  	/* Wait thread get its name "pong". */
>>  	if (DEBUG)
>> @@ -311,11 +311,11 @@ void test_fp_vec(int fp, int vec, pthread_attr_t *attr)
>>  	do {
>>  		int rc;
>>  
>> -		/* Bind 'ping' to CPU 0, as specified in 'attr'. */
>> -		rc = pthread_create(&t0, attr, ping, (void *) &flags);
>> +		/* Bind to CPU 0, as specified in 'attr'. */
>> +		rc = pthread_create(&t0, attr, tm_una_ping, (void *) &flags);
>>  		if (rc)
>>  			pr_err(rc, "pthread_create()");
>> -		rc = pthread_setname_np(t0, "ping");
>> +		rc = pthread_setname_np(t0, "tm_una_ping");
>>  		if (rc)
>>  			pr_warn(rc, "pthread_setname_np");
>>  		rc = pthread_join(t0, &ret_value);
>> @@ -333,13 +333,15 @@ void test_fp_vec(int fp, int vec, pthread_attr_t *attr)
>>  	}
>>  }
>>  
>> -int main(int argc, char **argv)
>> +int tm_unavailable_test(void)
>>  {
>>  	int rc, exception; /* FP = 0, VEC = 1, VSX = 2 */
>>  	pthread_t t1;
>>  	pthread_attr_t attr;
>>  	cpu_set_t cpuset;
>>  
>> +	SKIP_IF(!have_htm());
>> +
>>  	/* Set only CPU 0 in the mask. Both threads will be bound to CPU 0. */
>>  	CPU_ZERO(&cpuset);
>>  	CPU_SET(0, &cpuset);
>> @@ -354,12 +356,12 @@ int main(int argc, char **argv)
>>  	if (rc)
>>  		pr_err(rc, "pthread_attr_setaffinity_np()");
>>  
>> -	rc = pthread_create(&t1, &attr /* Bind 'pong' to CPU 0 */, pong, NULL);
>> +	rc = pthread_create(&t1, &attr /* Bind to CPU 0 */, tm_una_pong, NULL);
>>  	if (rc)
>>  		pr_err(rc, "pthread_create()");
>>  
>>  	/* Name it for systemtap convenience */
>> -	rc = pthread_setname_np(t1, "pong");
>> +	rc = pthread_setname_np(t1, "tm_una_pong");
>>  	if (rc)
>>  		pr_warn(rc, "pthread_create()");
>>  
>> @@ -394,3 +396,9 @@ int main(int argc, char **argv)
>>  		exit(0);
>>  	}
>>  }
>> +
>> +int main(int argc, char **argv)
>> +{
>> +	test_harness_set_timeout(220);
>> +	return test_harness(tm_unavailable_test, "tm_unavailable_test");
>> +}
> 

  reply	other threads:[~2018-03-06 20:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-05 20:48 [PATCH] Fixes for selftest tm-unavailable Gustavo Romero
2018-03-05 20:48 ` [PATCH] selftests/powerpc: Skip tm-unavailable if TM is not enabled Gustavo Romero
2018-03-05 23:49   ` Cyril Bur
2018-03-06 20:24     ` Gustavo Romero [this message]
2018-03-14  9:28   ` Michael Ellerman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5A9EF903.8020200@linux.vnet.ibm.com \
    --to=gromero@linux.vnet.ibm.com \
    --cc=cyrilbur@gmail.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.