linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/1] selftests: sync: add config fragment for testing sync framework
@ 2017-05-05  5:05 Fathi Boudra
  2017-05-11  4:52 ` Michael Ellerman
  0 siblings, 1 reply; 3+ messages in thread
From: Fathi Boudra @ 2017-05-05  5:05 UTC (permalink / raw)
  To: linux-kselftest, Shuah Khan
  Cc: linux-kernel, Emilio López, Sumit Semwal, Fathi Boudra

Unless the software synchronization objects (CONFIG_SW_SYNC) is enabled,
the sync test will fail:

Additional Information:
Running tests in sync
========================================
[RUN]   Testing sync framework
[RUN]   Executing test_alloc_timeline
[ERROR] Failure allocating timeline
[RUN]   Executing test_alloc_fence
[ERROR] Failure allocating timeline
[RUN]   Executing test_alloc_fence_negative
[ERROR] Failure allocating timeline
[RUN]   Executing test_fence_one_timeline_wait
[ERROR] Failure allocating timeline
[RUN]   Executing test_fence_one_timeline_merge
[ERROR] Failure allocating fences
[RUN]   Executing test_fence_merge_same_fence
[ERROR] Failure allocating timeline
[RUN]   Executing test_fence_multi_timeline_wait
[ERROR] Failure merging fence from various timelines
[RUN]   Executing test_stress_two_threads_shared_timeline
[ERROR] Failure allocating timeline
[RUN]   Executing test_consumer_stress_multi_producer_single_consumer
[ERROR] Failure merging fences
[ERROR] Failure creating fence
[ERROR] Failure creating fence
[ERROR] Failure creating fence
[ERROR] Failure creating fence
[ERROR] Failure creating fence
[RUN]   Executing test_merge_stress_random_merge
[ERROR] Failure creating fence
[FAIL]  sync errors: 10
selftests: sync_test [FAIL]

Add a config fragment with the relevant configuration required in order to
run the sync test.

Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
---
 tools/testing/selftests/sync/config | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100644 tools/testing/selftests/sync/config

diff --git a/tools/testing/selftests/sync/config b/tools/testing/selftests/sync/config
new file mode 100644
index 000000000000..1ab7e8130db2
--- /dev/null
+++ b/tools/testing/selftests/sync/config
@@ -0,0 +1,4 @@
+CONFIG_STAGING=y
+CONFIG_ANDROID=y
+CONFIG_SYNC=y
+CONFIG_SW_SYNC=y
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/1] selftests: sync: add config fragment for testing sync framework
  2017-05-05  5:05 [PATCH 1/1] selftests: sync: add config fragment for testing sync framework Fathi Boudra
@ 2017-05-11  4:52 ` Michael Ellerman
  2017-05-11  6:29   ` Fathi Boudra
  0 siblings, 1 reply; 3+ messages in thread
From: Michael Ellerman @ 2017-05-11  4:52 UTC (permalink / raw)
  To: Fathi Boudra, linux-kselftest, Shuah Khan
  Cc: linux-kernel, Emilio López, Sumit Semwal, Fathi Boudra

Fathi Boudra <fathi.boudra@linaro.org> writes:

> Unless the software synchronization objects (CONFIG_SW_SYNC) is enabled,
> the sync test will fail:
>
> Additional Information:
> Running tests in sync
> ========================================
> [RUN]   Testing sync framework
> [RUN]   Executing test_alloc_timeline
> [ERROR] Failure allocating timeline

It would be better if the test just detected that the kernel didn't
support the API.

It seems to rely on /sys/kernel/debug/sync/sw_sync existing.

How about this?

diff --git a/tools/testing/selftests/sync/sync_test.c b/tools/testing/selftests/sync/sync_test.c
index 9ea08d9f0b13..62fa666e501a 100644
--- a/tools/testing/selftests/sync/sync_test.c
+++ b/tools/testing/selftests/sync/sync_test.c
@@ -29,6 +29,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/types.h>
+#include <sys/stat.h>
 #include <sys/wait.h>
 
 #include "synctest.h"
@@ -52,10 +53,22 @@ static int run_test(int (*test)(void), char *name)
 	exit(test());
 }
 
+static int sync_api_supported(void)
+{
+	struct stat sbuf;
+
+	return 0 == stat("/sys/kernel/debug/sync/sw_sync", &sbuf);
+}
+
 int main(void)
 {
 	int err = 0;
 
+	if (!sync_api_supported()) {
+		printf("SKIP: Sync framework not supported by kernel\n");
+		return 0;
+	}
+
 	printf("[RUN]\tTesting sync framework\n");
 
 	err += RUN_TEST(test_alloc_timeline);


cheers

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/1] selftests: sync: add config fragment for testing sync framework
  2017-05-11  4:52 ` Michael Ellerman
@ 2017-05-11  6:29   ` Fathi Boudra
  0 siblings, 0 replies; 3+ messages in thread
From: Fathi Boudra @ 2017-05-11  6:29 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: linux-kselftest, Shuah Khan, linux-kernel, Emilio López,
	Sumit Semwal

On 11 May 2017 at 07:52, Michael Ellerman <mpe@ellerman.id.au> wrote:
> Fathi Boudra <fathi.boudra@linaro.org> writes:
>
>> Unless the software synchronization objects (CONFIG_SW_SYNC) is enabled,
>> the sync test will fail:
>>
>> Additional Information:
>> Running tests in sync
>> ========================================
>> [RUN]   Testing sync framework
>> [RUN]   Executing test_alloc_timeline
>> [ERROR] Failure allocating timeline
>
> It would be better if the test just detected that the kernel didn't
> support the API.

It makes sense to me. The sync framework has been introduced from 4.8 kernel.
It resolves the case where we run an older kernel like 4.4 LTS with a
recent kselftest.

> It seems to rely on /sys/kernel/debug/sync/sw_sync existing.
>
> How about this?

fwiw, looks good to me. I think we still need the config fragment to
leverage kselftest-merge.

> diff --git a/tools/testing/selftests/sync/sync_test.c b/tools/testing/selftests/sync/sync_test.c
> index 9ea08d9f0b13..62fa666e501a 100644
> --- a/tools/testing/selftests/sync/sync_test.c
> +++ b/tools/testing/selftests/sync/sync_test.c
> @@ -29,6 +29,7 @@
>  #include <unistd.h>
>  #include <stdlib.h>
>  #include <sys/types.h>
> +#include <sys/stat.h>
>  #include <sys/wait.h>
>
>  #include "synctest.h"
> @@ -52,10 +53,22 @@ static int run_test(int (*test)(void), char *name)
>         exit(test());
>  }
>
> +static int sync_api_supported(void)
> +{
> +       struct stat sbuf;
> +
> +       return 0 == stat("/sys/kernel/debug/sync/sw_sync", &sbuf);
> +}
> +
>  int main(void)
>  {
>         int err = 0;
>
> +       if (!sync_api_supported()) {
> +               printf("SKIP: Sync framework not supported by kernel\n");
> +               return 0;
> +       }
> +
>         printf("[RUN]\tTesting sync framework\n");
>
>         err += RUN_TEST(test_alloc_timeline);
>
>
> cheers
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kselftest" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-05-11  6:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-05  5:05 [PATCH 1/1] selftests: sync: add config fragment for testing sync framework Fathi Boudra
2017-05-11  4:52 ` Michael Ellerman
2017-05-11  6:29   ` Fathi Boudra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).