public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v2 0/4] Use C11 atomics
@ 2019-06-13 13:53 Guillaume Tucker
  2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 1/4] meson: add libatomic dependency Guillaume Tucker
                   ` (5 more replies)
  0 siblings, 6 replies; 18+ messages in thread
From: Guillaume Tucker @ 2019-06-13 13:53 UTC (permalink / raw)
  To: Arkadiusz Hiler, Petri Latvala; +Cc: igt-dev, intel-gfx

This series replaces calls to the __sync_* functions with the more
recent atomic_* ones defined in stdatomic.h in gem_create and
sw_sync.  It also adds dependency on libatomic when required, that is
to say when the CPU architecture doesn't provide native support for
some atomic operations.  This makes the tests more portable, in
particular for 32-bit MIPS which doesn't support 64-bit atomics.

v2:
 - add linker test to only add dependency on libatomic when needed
 - only add libatomic dependency to gem_create and sw_sync
 - use stdatomic.h and _Atomic type modifier
 - explicitly require libatomic in all Docker images

Guillaume Tucker (4):
  meson: add libatomic dependency
  gitlab-ci: add libatomic to docker images
  i915/gem_create: use atomic_* instead of __sync_*
  tests/sw_sync: use atomic_* instead of __sync_*

 Dockerfile.debian       |  1 +
 Dockerfile.debian-arm64 |  1 +
 Dockerfile.debian-armhf |  1 +
 Dockerfile.fedora       |  2 +-
 meson.build             | 13 +++++++++++++
 tests/Makefile.am       |  3 ++-
 tests/i915/gem_create.c | 16 ++++++++++++----
 tests/meson.build       | 17 +++++++++++++++--
 tests/sw_sync.c         | 12 ++++++------
 9 files changed, 52 insertions(+), 14 deletions(-)

--
2.20.1
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [Intel-gfx] [PATCH i-g-t v2 1/4] meson: add libatomic dependency
  2019-06-13 13:53 [igt-dev] [PATCH i-g-t v2 0/4] Use C11 atomics Guillaume Tucker
@ 2019-06-13 13:53 ` Guillaume Tucker
  2019-06-14  8:07   ` [igt-dev] " Ser, Simon
  2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images Guillaume Tucker
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 18+ messages in thread
From: Guillaume Tucker @ 2019-06-13 13:53 UTC (permalink / raw)
  To: Arkadiusz Hiler, Petri Latvala; +Cc: igt-dev, intel-gfx

Add conditional dependency on libatomic in order to be able to use the
__atomic_* functions instead of the older __sync_* ones.  The
libatomic library is only needed when there aren't any native support
on the current architecture, so a linker test is used for this
purpose.  This enables atomic operations to be on a wider number of
architectures including MIPS.

Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
---
 meson.build | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/meson.build b/meson.build
index 6268c58d3634..da25a28f3268 100644
--- a/meson.build
+++ b/meson.build
@@ -179,6 +179,19 @@ math = cc.find_library('m')
 realtime = cc.find_library('rt')
 dlsym = cc.find_library('dl')
 zlib = cc.find_library('z')
+if cc.links('''
+#include <stdint.h>
+int main(void) {
+  uint32_t x32 = 0;
+  uint64_t x64 = 0;
+  __atomic_load_n(&x32, __ATOMIC_SEQ_CST);
+  __atomic_load_n(&x64, __ATOMIC_SEQ_CST);
+  return 0;
+}''', name : 'built-in atomics')
+	libatomic = []
+else
+	libatomic = cc.find_library('atomic')
+endif
 
 if cc.has_header('linux/kd.h')
 	config.set('HAVE_LINUX_KD_H', 1)
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images
  2019-06-13 13:53 [igt-dev] [PATCH i-g-t v2 0/4] Use C11 atomics Guillaume Tucker
  2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 1/4] meson: add libatomic dependency Guillaume Tucker
@ 2019-06-13 13:53 ` Guillaume Tucker
  2019-06-14  8:08   ` Ser, Simon
  2019-06-14 10:00   ` Petri Latvala
  2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 3/4] i915/gem_create: use atomic_* instead of __sync_* Guillaume Tucker
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 18+ messages in thread
From: Guillaume Tucker @ 2019-06-13 13:53 UTC (permalink / raw)
  To: Arkadiusz Hiler, Petri Latvala; +Cc: igt-dev, intel-gfx

Add libatomic to the Fedora docker image so it can link binaries that
use __atomic_* functions.  Also explicitly add libatomic1 to Debian
docker images even though it's already installed as a dependency.

Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
---
 Dockerfile.debian       | 1 +
 Dockerfile.debian-arm64 | 1 +
 Dockerfile.debian-armhf | 1 +
 Dockerfile.fedora       | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/Dockerfile.debian b/Dockerfile.debian
index b9c3be3945e0..d23591850c4e 100644
--- a/Dockerfile.debian
+++ b/Dockerfile.debian
@@ -6,6 +6,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			libpciaccess-dev \
 			libkmod-dev \
 			libprocps-dev \
diff --git a/Dockerfile.debian-arm64 b/Dockerfile.debian-arm64
index 7b3a3c7ca803..003bb22b3215 100644
--- a/Dockerfile.debian-arm64
+++ b/Dockerfile.debian-arm64
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
diff --git a/Dockerfile.debian-armhf b/Dockerfile.debian-armhf
index c67a1e2acf6a..3139927c193a 100644
--- a/Dockerfile.debian-armhf
+++ b/Dockerfile.debian-armhf
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
diff --git a/Dockerfile.fedora b/Dockerfile.fedora
index 6686e587613d..c84b412b0723 100644
--- a/Dockerfile.fedora
+++ b/Dockerfile.fedora
@@ -1,7 +1,7 @@
 FROM fedora:30
 
 RUN dnf install -y \
-	gcc flex bison meson ninja-build xdotool \
+	gcc flex bison libatomic meson ninja-build xdotool \
 	'pkgconfig(libdrm)' \
 	'pkgconfig(pciaccess)' \
 	'pkgconfig(libkmod)' \
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v2 3/4] i915/gem_create: use atomic_* instead of __sync_*
  2019-06-13 13:53 [igt-dev] [PATCH i-g-t v2 0/4] Use C11 atomics Guillaume Tucker
  2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 1/4] meson: add libatomic dependency Guillaume Tucker
  2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images Guillaume Tucker
@ 2019-06-13 13:53 ` Guillaume Tucker
  2019-06-14  8:11   ` Ser, Simon
  2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 4/4] tests/sw_sync: " Guillaume Tucker
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 18+ messages in thread
From: Guillaume Tucker @ 2019-06-13 13:53 UTC (permalink / raw)
  To: Arkadiusz Hiler, Petri Latvala; +Cc: igt-dev, intel-gfx

This fixes builds on some architectures, in particular MIPS which
doesn't have __sync_add_and_fetch_8 and __sync_val_compare_and_swap_8
for 64-bit variable handling.

* replace calls to the older __sync_* functions with the new atomic_*
  standard ones
* use the _Atomic type modifier as required with stdatomic.h functions
* add dependency for gem_create on libatomic

Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
---
 tests/Makefile.am       |  2 +-
 tests/i915/gem_create.c | 16 ++++++++++++----
 tests/meson.build       |  9 ++++++++-
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 5a428b8ac213..bbd386c9c2db 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -90,7 +90,7 @@ AM_LDFLAGS = -Wl,--as-needed
 drm_import_export_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
 drm_import_export_LDADD = $(LDADD) -lpthread
 gem_create_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
-gem_create_LDADD = $(LDADD) -lpthread
+gem_create_LDADD = $(LDADD) -lpthread -latomic
 gem_close_race_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
 gem_close_race_LDADD = $(LDADD) -lpthread
 gem_ctx_thrash_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
index 43cbf45f289b..9008cd8a21e3 100644
--- a/tests/i915/gem_create.c
+++ b/tests/i915/gem_create.c
@@ -45,6 +45,7 @@
 #include <sys/time.h>
 #include <getopt.h>
 #include <pthread.h>
+#include <stdatomic.h>
 
 #include <drm.h>
 
@@ -156,7 +157,14 @@ static void invalid_nonaligned_size(int fd)
 	gem_close(fd, create.handle);
 }
 
-static uint64_t get_npages(uint64_t *global, uint64_t npages)
+static uint64_t atomic_compare_swap_u64(_Atomic(uint64_t) *ptr,
+					uint64_t oldval, uint64_t newval)
+{
+	atomic_compare_exchange_strong(ptr, &oldval, newval);
+	return oldval;
+}
+
+static uint64_t get_npages(_Atomic(uint64_t) *global, uint64_t npages)
 {
 	uint64_t try, old, max;
 
@@ -165,13 +173,13 @@ static uint64_t get_npages(uint64_t *global, uint64_t npages)
 		old = max;
 		try = 1 + npages % (max / 2);
 		max -= try;
-	} while ((max = __sync_val_compare_and_swap(global, old, max)) != old);
+	} while ((max = atomic_compare_swap_u64(global, old, max)) != old);
 
 	return try;
 }
 
 struct thread_clear {
-	uint64_t max;
+	_Atomic(uint64_t) max;
 	int timeout;
 	int i915;
 };
@@ -202,7 +210,7 @@ static void *thread_clear(void *data)
 		}
 		gem_close(i915, create.handle);
 
-		__sync_add_and_fetch(&arg->max, npages);
+		atomic_fetch_add(&arg->max, npages);
 	}
 
 	return NULL;
diff --git a/tests/meson.build b/tests/meson.build
index f168fbbae2a8..ffd432d38193 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -110,7 +110,6 @@ i915_progs = [
 	'gem_close_race',
 	'gem_concurrent_blit',
 	'gem_cpu_reloc',
-	'gem_create',
 	'gem_cs_prefetch',
 	'gem_cs_tlb',
 	'gem_ctx_bad_destroy',
@@ -277,6 +276,14 @@ foreach prog : i915_progs
 	test_list += prog
 endforeach
 
+test_executables += executable('gem_create',
+	   join_paths('i915', 'gem_create.c'),
+	   dependencies : test_deps + [ libatomic ],
+	   install_dir : libexecdir,
+	   install_rpath : libexecdir_rpathdir,
+	   install : true)
+test_list += 'gem_create'
+
 test_executables += executable('gem_ctx_sseu',
 	   join_paths('i915', 'gem_ctx_sseu.c'),
 	   dependencies : test_deps + [ lib_igt_perf ],
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [Intel-gfx] [PATCH i-g-t v2 4/4] tests/sw_sync: use atomic_* instead of __sync_*
  2019-06-13 13:53 [igt-dev] [PATCH i-g-t v2 0/4] Use C11 atomics Guillaume Tucker
                   ` (2 preceding siblings ...)
  2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 3/4] i915/gem_create: use atomic_* instead of __sync_* Guillaume Tucker
@ 2019-06-13 13:53 ` Guillaume Tucker
  2019-06-14  8:12   ` [igt-dev] " Ser, Simon
  2019-06-13 16:33 ` [igt-dev] ✓ Fi.CI.BAT: success for Use C11 atomics Patchwork
  2019-06-15  5:16 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  5 siblings, 1 reply; 18+ messages in thread
From: Guillaume Tucker @ 2019-06-13 13:53 UTC (permalink / raw)
  To: Arkadiusz Hiler, Petri Latvala; +Cc: igt-dev, intel-gfx

Replace calls to the older __sync_* functions with the new atomic_*
standard ones to be consistent with other tests and improve
portability across CPU architectures.  Add dependency of sw_sync on
libatomic.

Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
---
 tests/Makefile.am |  1 +
 tests/meson.build |  8 +++++++-
 tests/sw_sync.c   | 12 ++++++------
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/tests/Makefile.am b/tests/Makefile.am
index bbd386c9c2db..7d71df8c7a2e 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -122,6 +122,7 @@ prime_self_import_LDADD = $(LDADD) -lpthread
 gem_userptr_blits_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
 gem_userptr_blits_LDADD = $(LDADD) -lpthread
 perf_pmu_LDADD = $(LDADD) $(top_builddir)/lib/libigt_perf.la
+sw_sync_LDADD = $(LDADD) -latomic
 
 kms_flip_LDADD = $(LDADD) -lpthread
 
diff --git a/tests/meson.build b/tests/meson.build
index ffd432d38193..34a74025a537 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -76,7 +76,6 @@ test_progs = [
 	'prime_self_import',
 	'prime_udl',
 	'prime_vgem',
-	'sw_sync',
 	'syncobj_basic',
 	'syncobj_wait',
 	'template',
@@ -329,6 +328,13 @@ executable('testdisplay', ['testdisplay.c', 'testdisplay_hotplug.c'],
 	   install : true)
 test_list += 'testdisplay'
 
+test_executables += executable('sw_sync', 'sw_sync.c',
+	   dependencies : test_deps + [ libatomic ],
+	   install_dir : libexecdir,
+	   install_rpath : libexecdir_rpathdir,
+	   install : true)
+test_list += 'sw_sync'
+
 subdir('amdgpu')
 
 gen_testlist = find_program('generate_testlist.sh')
diff --git a/tests/sw_sync.c b/tests/sw_sync.c
index 950b8b614759..62d1d17cab45 100644
--- a/tests/sw_sync.c
+++ b/tests/sw_sync.c
@@ -26,6 +26,7 @@
 
 #include <pthread.h>
 #include <semaphore.h>
+#include <stdatomic.h>
 #include <stdint.h>
 #include <sys/socket.h>
 #include <sys/types.h>
@@ -43,7 +44,7 @@ IGT_TEST_DESCRIPTION("Test SW Sync Framework");
 typedef struct {
 	int timeline;
 	uint32_t thread_id;
-	uint32_t *counter;
+	_Atomic(uint32_t) *counter;
 	sem_t *sem;
 } data_t;
 
@@ -489,7 +490,7 @@ static void test_sync_multi_consumer(void)
 	pthread_t thread_arr[MULTI_CONSUMER_THREADS];
 	sem_t sem;
 	int timeline;
-	uint32_t counter = 0;
+	_Atomic(uint32_t) counter = 0;
 	uintptr_t thread_ret = 0;
 	data_t data;
 	int i, ret;
@@ -517,7 +518,7 @@ static void test_sync_multi_consumer(void)
 	{
 		sem_wait(&sem);
 
-		__sync_fetch_and_add(&counter, 1);
+		atomic_fetch_add(&counter, 1);
 		sw_sync_timeline_inc(timeline, 1);
 	}
 
@@ -554,7 +555,7 @@ static void * test_sync_multi_consumer_producer_thread(void *arg)
 		if (sync_fence_wait(fence, 1000) < 0)
 			return (void *) 1;
 
-		if (__sync_fetch_and_add(data->counter, 1) != next_point)
+		if (atomic_fetch_add(data->counter, 1) != next_point)
 			return (void *) 1;
 
 		/* Kick off the next thread. */
@@ -570,7 +571,7 @@ static void test_sync_multi_consumer_producer(void)
 	data_t data_arr[MULTI_CONSUMER_PRODUCER_THREADS];
 	pthread_t thread_arr[MULTI_CONSUMER_PRODUCER_THREADS];
 	int timeline;
-	uint32_t counter = 0;
+	_Atomic(uint32_t) counter = 0;
 	uintptr_t thread_ret = 0;
 	data_t data;
 	int i, ret;
@@ -900,4 +901,3 @@ igt_main
 	igt_subtest("sync_random_merge")
 		test_sync_random_merge();
 }
-
-- 
2.20.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] ✓ Fi.CI.BAT: success for Use C11 atomics
  2019-06-13 13:53 [igt-dev] [PATCH i-g-t v2 0/4] Use C11 atomics Guillaume Tucker
                   ` (3 preceding siblings ...)
  2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 4/4] tests/sw_sync: " Guillaume Tucker
@ 2019-06-13 16:33 ` Patchwork
  2019-06-15  5:16 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  5 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2019-06-13 16:33 UTC (permalink / raw)
  To: Guillaume Tucker; +Cc: igt-dev

== Series Details ==

Series: Use C11 atomics
URL   : https://patchwork.freedesktop.org/series/62048/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6264 -> IGTPW_3147
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/62048/revisions/1/mbox/

Known issues
------------

  Here are the changes found in IGTPW_3147 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_getparams_basic@basic-subslice-total:
    - fi-icl-u3:          [PASS][1] -> [DMESG-WARN][2] ([fdo#107724])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/fi-icl-u3/igt@i915_getparams_basic@basic-subslice-total.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/fi-icl-u3/igt@i915_getparams_basic@basic-subslice-total.html

  * igt@i915_module_load@reload:
    - fi-icl-u3:          [PASS][3] -> [DMESG-WARN][4] ([fdo#106107])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/fi-icl-u3/igt@i915_module_load@reload.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/fi-icl-u3/igt@i915_module_load@reload.html

  
#### Possible fixes ####

  * igt@gem_ctx_switch@basic-default:
    - fi-icl-guc:         [INCOMPLETE][5] ([fdo#107713] / [fdo#108569]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/fi-icl-guc/igt@gem_ctx_switch@basic-default.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/fi-icl-guc/igt@gem_ctx_switch@basic-default.html

  
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569


Participating hosts (53 -> 47)
------------------------------

  Additional (1): fi-hsw-4770 
  Missing    (7): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * IGT: IGT_5055 -> IGTPW_3147

  CI_DRM_6264: 40a5ebf378e800ed3654997ab43267e1aea8ccd1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3147: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/
  IGT_5055: 495287320225e7f180d384cad7b207b77154438f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/4] meson: add libatomic dependency
  2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 1/4] meson: add libatomic dependency Guillaume Tucker
@ 2019-06-14  8:07   ` Ser, Simon
  2019-06-18  8:33     ` Guillaume Tucker
  0 siblings, 1 reply; 18+ messages in thread
From: Ser, Simon @ 2019-06-14  8:07 UTC (permalink / raw)
  To: guillaume.tucker@collabora.com, Hiler, Arkadiusz, Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On Thu, 2019-06-13 at 14:53 +0100, Guillaume Tucker wrote:
> Add conditional dependency on libatomic in order to be able to use the
> __atomic_* functions instead of the older __sync_* ones.  The
> libatomic library is only needed when there aren't any native support
> on the current architecture, so a linker test is used for this
> purpose.  This enables atomic operations to be on a wider number of
> architectures including MIPS.
> 
> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> ---
>  meson.build | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/meson.build b/meson.build
> index 6268c58d3634..da25a28f3268 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -179,6 +179,19 @@ math = cc.find_library('m')
>  realtime = cc.find_library('rt')
>  dlsym = cc.find_library('dl')
>  zlib = cc.find_library('z')
> +if cc.links('''
> +#include <stdint.h>
> +int main(void) {
> +  uint32_t x32 = 0;
> +  uint64_t x64 = 0;
> +  __atomic_load_n(&x32, __ATOMIC_SEQ_CST);
> +  __atomic_load_n(&x64, __ATOMIC_SEQ_CST);

Minor: maybe we could've used stdatomic.h's atomic_* functions (without
the "__" prefix) for consistency with the actual IGT code?

> +  return 0;
> +}''', name : 'built-in atomics')
> +	libatomic = []

We could use null_dep instead, to make it consistent with the other
branch.

> +else
> +	libatomic = cc.find_library('atomic')
> +endif
>  
>  if cc.has_header('linux/kd.h')
>  	config.set('HAVE_LINUX_KD_H', 1)
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images
  2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images Guillaume Tucker
@ 2019-06-14  8:08   ` Ser, Simon
  2019-06-14 10:00   ` Petri Latvala
  1 sibling, 0 replies; 18+ messages in thread
From: Ser, Simon @ 2019-06-14  8:08 UTC (permalink / raw)
  To: guillaume.tucker@collabora.com, Hiler, Arkadiusz, Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On Thu, 2019-06-13 at 14:53 +0100, Guillaume Tucker wrote:
> Add libatomic to the Fedora docker image so it can link binaries that
> use __atomic_* functions.  Also explicitly add libatomic1 to Debian
> docker images even though it's already installed as a dependency.
> 
> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>

Reviewed-by: Simon Ser <simon.ser@intel.com>

> ---
>  Dockerfile.debian       | 1 +
>  Dockerfile.debian-arm64 | 1 +
>  Dockerfile.debian-armhf | 1 +
>  Dockerfile.fedora       | 2 +-
>  4 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/Dockerfile.debian b/Dockerfile.debian
> index b9c3be3945e0..d23591850c4e 100644
> --- a/Dockerfile.debian
> +++ b/Dockerfile.debian
> @@ -6,6 +6,7 @@ RUN apt-get install -y \
>  			flex \
>  			bison \
>  			pkg-config \
> +			libatomic1 \
>  			libpciaccess-dev \
>  			libkmod-dev \
>  			libprocps-dev \
> diff --git a/Dockerfile.debian-arm64 b/Dockerfile.debian-arm64
> index 7b3a3c7ca803..003bb22b3215 100644
> --- a/Dockerfile.debian-arm64
> +++ b/Dockerfile.debian-arm64
> @@ -5,6 +5,7 @@ RUN apt-get install -y \
>  			flex \
>  			bison \
>  			pkg-config \
> +			libatomic1 \
>  			x11proto-dri2-dev \
>  			python-docutils \
>  			valgrind \
> diff --git a/Dockerfile.debian-armhf b/Dockerfile.debian-armhf
> index c67a1e2acf6a..3139927c193a 100644
> --- a/Dockerfile.debian-armhf
> +++ b/Dockerfile.debian-armhf
> @@ -5,6 +5,7 @@ RUN apt-get install -y \
>  			flex \
>  			bison \
>  			pkg-config \
> +			libatomic1 \
>  			x11proto-dri2-dev \
>  			python-docutils \
>  			valgrind \
> diff --git a/Dockerfile.fedora b/Dockerfile.fedora
> index 6686e587613d..c84b412b0723 100644
> --- a/Dockerfile.fedora
> +++ b/Dockerfile.fedora
> @@ -1,7 +1,7 @@
>  FROM fedora:30
>  
>  RUN dnf install -y \
> -	gcc flex bison meson ninja-build xdotool \
> +	gcc flex bison libatomic meson ninja-build xdotool \
>  	'pkgconfig(libdrm)' \
>  	'pkgconfig(pciaccess)' \
>  	'pkgconfig(libkmod)' \
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 3/4] i915/gem_create: use atomic_* instead of __sync_*
  2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 3/4] i915/gem_create: use atomic_* instead of __sync_* Guillaume Tucker
@ 2019-06-14  8:11   ` Ser, Simon
  0 siblings, 0 replies; 18+ messages in thread
From: Ser, Simon @ 2019-06-14  8:11 UTC (permalink / raw)
  To: guillaume.tucker@collabora.com, Hiler, Arkadiusz, Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On Thu, 2019-06-13 at 14:53 +0100, Guillaume Tucker wrote:
> This fixes builds on some architectures, in particular MIPS which
> doesn't have __sync_add_and_fetch_8 and __sync_val_compare_and_swap_8
> for 64-bit variable handling.
> 
> * replace calls to the older __sync_* functions with the new atomic_*
>   standard ones
> * use the _Atomic type modifier as required with stdatomic.h functions
> * add dependency for gem_create on libatomic
> 
> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>

LGTM!

Reviewed-by: Simon Ser <simon.ser@intel.com>

> ---
>  tests/Makefile.am       |  2 +-
>  tests/i915/gem_create.c | 16 ++++++++++++----
>  tests/meson.build       |  9 ++++++++-
>  3 files changed, 21 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index 5a428b8ac213..bbd386c9c2db 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -90,7 +90,7 @@ AM_LDFLAGS = -Wl,--as-needed
>  drm_import_export_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
>  drm_import_export_LDADD = $(LDADD) -lpthread
>  gem_create_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
> -gem_create_LDADD = $(LDADD) -lpthread
> +gem_create_LDADD = $(LDADD) -lpthread -latomic
>  gem_close_race_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
>  gem_close_race_LDADD = $(LDADD) -lpthread
>  gem_ctx_thrash_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
> diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
> index 43cbf45f289b..9008cd8a21e3 100644
> --- a/tests/i915/gem_create.c
> +++ b/tests/i915/gem_create.c
> @@ -45,6 +45,7 @@
>  #include <sys/time.h>
>  #include <getopt.h>
>  #include <pthread.h>
> +#include <stdatomic.h>
>  
>  #include <drm.h>
>  
> @@ -156,7 +157,14 @@ static void invalid_nonaligned_size(int fd)
>  	gem_close(fd, create.handle);
>  }
>  
> -static uint64_t get_npages(uint64_t *global, uint64_t npages)
> +static uint64_t atomic_compare_swap_u64(_Atomic(uint64_t) *ptr,
> +					uint64_t oldval, uint64_t newval)
> +{
> +	atomic_compare_exchange_strong(ptr, &oldval, newval);
> +	return oldval;
> +}
> +
> +static uint64_t get_npages(_Atomic(uint64_t) *global, uint64_t npages)
>  {
>  	uint64_t try, old, max;
>  
> @@ -165,13 +173,13 @@ static uint64_t get_npages(uint64_t *global, uint64_t npages)
>  		old = max;
>  		try = 1 + npages % (max / 2);
>  		max -= try;
> -	} while ((max = __sync_val_compare_and_swap(global, old, max)) != old);
> +	} while ((max = atomic_compare_swap_u64(global, old, max)) != old);
>  
>  	return try;
>  }
>  
>  struct thread_clear {
> -	uint64_t max;
> +	_Atomic(uint64_t) max;
>  	int timeout;
>  	int i915;
>  };
> @@ -202,7 +210,7 @@ static void *thread_clear(void *data)
>  		}
>  		gem_close(i915, create.handle);
>  
> -		__sync_add_and_fetch(&arg->max, npages);
> +		atomic_fetch_add(&arg->max, npages);
>  	}
>  
>  	return NULL;
> diff --git a/tests/meson.build b/tests/meson.build
> index f168fbbae2a8..ffd432d38193 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -110,7 +110,6 @@ i915_progs = [
>  	'gem_close_race',
>  	'gem_concurrent_blit',
>  	'gem_cpu_reloc',
> -	'gem_create',
>  	'gem_cs_prefetch',
>  	'gem_cs_tlb',
>  	'gem_ctx_bad_destroy',
> @@ -277,6 +276,14 @@ foreach prog : i915_progs
>  	test_list += prog
>  endforeach
>  
> +test_executables += executable('gem_create',
> +	   join_paths('i915', 'gem_create.c'),
> +	   dependencies : test_deps + [ libatomic ],
> +	   install_dir : libexecdir,
> +	   install_rpath : libexecdir_rpathdir,
> +	   install : true)
> +test_list += 'gem_create'
> +
>  test_executables += executable('gem_ctx_sseu',
>  	   join_paths('i915', 'gem_ctx_sseu.c'),
>  	   dependencies : test_deps + [ lib_igt_perf ],
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 4/4] tests/sw_sync: use atomic_* instead of __sync_*
  2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 4/4] tests/sw_sync: " Guillaume Tucker
@ 2019-06-14  8:12   ` Ser, Simon
  0 siblings, 0 replies; 18+ messages in thread
From: Ser, Simon @ 2019-06-14  8:12 UTC (permalink / raw)
  To: guillaume.tucker@collabora.com, Hiler, Arkadiusz, Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On Thu, 2019-06-13 at 14:53 +0100, Guillaume Tucker wrote:
> Replace calls to the older __sync_* functions with the new atomic_*
> standard ones to be consistent with other tests and improve
> portability across CPU architectures.  Add dependency of sw_sync on
> libatomic.
> 
> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>

Reviewed-by: Simon Ser <simon.ser@intel.com>

Thanks!

> ---
>  tests/Makefile.am |  1 +
>  tests/meson.build |  8 +++++++-
>  tests/sw_sync.c   | 12 ++++++------
>  3 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index bbd386c9c2db..7d71df8c7a2e 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -122,6 +122,7 @@ prime_self_import_LDADD = $(LDADD) -lpthread
>  gem_userptr_blits_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
>  gem_userptr_blits_LDADD = $(LDADD) -lpthread
>  perf_pmu_LDADD = $(LDADD) $(top_builddir)/lib/libigt_perf.la
> +sw_sync_LDADD = $(LDADD) -latomic
>  
>  kms_flip_LDADD = $(LDADD) -lpthread
>  
> diff --git a/tests/meson.build b/tests/meson.build
> index ffd432d38193..34a74025a537 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -76,7 +76,6 @@ test_progs = [
>  	'prime_self_import',
>  	'prime_udl',
>  	'prime_vgem',
> -	'sw_sync',
>  	'syncobj_basic',
>  	'syncobj_wait',
>  	'template',
> @@ -329,6 +328,13 @@ executable('testdisplay', ['testdisplay.c',
> 'testdisplay_hotplug.c'],
>  	   install : true)
>  test_list += 'testdisplay'
>  
> +test_executables += executable('sw_sync', 'sw_sync.c',
> +	   dependencies : test_deps + [ libatomic ],
> +	   install_dir : libexecdir,
> +	   install_rpath : libexecdir_rpathdir,
> +	   install : true)
> +test_list += 'sw_sync'
> +
>  subdir('amdgpu')
>  
>  gen_testlist = find_program('generate_testlist.sh')
> diff --git a/tests/sw_sync.c b/tests/sw_sync.c
> index 950b8b614759..62d1d17cab45 100644
> --- a/tests/sw_sync.c
> +++ b/tests/sw_sync.c
> @@ -26,6 +26,7 @@
>  
>  #include <pthread.h>
>  #include <semaphore.h>
> +#include <stdatomic.h>
>  #include <stdint.h>
>  #include <sys/socket.h>
>  #include <sys/types.h>
> @@ -43,7 +44,7 @@ IGT_TEST_DESCRIPTION("Test SW Sync Framework");
>  typedef struct {
>  	int timeline;
>  	uint32_t thread_id;
> -	uint32_t *counter;
> +	_Atomic(uint32_t) *counter;
>  	sem_t *sem;
>  } data_t;
>  
> @@ -489,7 +490,7 @@ static void test_sync_multi_consumer(void)
>  	pthread_t thread_arr[MULTI_CONSUMER_THREADS];
>  	sem_t sem;
>  	int timeline;
> -	uint32_t counter = 0;
> +	_Atomic(uint32_t) counter = 0;
>  	uintptr_t thread_ret = 0;
>  	data_t data;
>  	int i, ret;
> @@ -517,7 +518,7 @@ static void test_sync_multi_consumer(void)
>  	{
>  		sem_wait(&sem);
>  
> -		__sync_fetch_and_add(&counter, 1);
> +		atomic_fetch_add(&counter, 1);
>  		sw_sync_timeline_inc(timeline, 1);
>  	}
>  
> @@ -554,7 +555,7 @@ static void *
> test_sync_multi_consumer_producer_thread(void *arg)
>  		if (sync_fence_wait(fence, 1000) < 0)
>  			return (void *) 1;
>  
> -		if (__sync_fetch_and_add(data->counter, 1) !=
> next_point)
> +		if (atomic_fetch_add(data->counter, 1) != next_point)
>  			return (void *) 1;
>  
>  		/* Kick off the next thread. */
> @@ -570,7 +571,7 @@ static void
> test_sync_multi_consumer_producer(void)
>  	data_t data_arr[MULTI_CONSUMER_PRODUCER_THREADS];
>  	pthread_t thread_arr[MULTI_CONSUMER_PRODUCER_THREADS];
>  	int timeline;
> -	uint32_t counter = 0;
> +	_Atomic(uint32_t) counter = 0;
>  	uintptr_t thread_ret = 0;
>  	data_t data;
>  	int i, ret;
> @@ -900,4 +901,3 @@ igt_main
>  	igt_subtest("sync_random_merge")
>  		test_sync_random_merge();
>  }
> -
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images
  2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images Guillaume Tucker
  2019-06-14  8:08   ` Ser, Simon
@ 2019-06-14 10:00   ` Petri Latvala
  2019-06-14 11:24     ` Ser, Simon
  1 sibling, 1 reply; 18+ messages in thread
From: Petri Latvala @ 2019-06-14 10:00 UTC (permalink / raw)
  To: Guillaume Tucker; +Cc: igt-dev, intel-gfx

On Thu, Jun 13, 2019 at 02:53:20PM +0100, Guillaume Tucker wrote:
> Add libatomic to the Fedora docker image so it can link binaries that
> use __atomic_* functions.  Also explicitly add libatomic1 to Debian
> docker images even though it's already installed as a dependency.
> 
> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> ---
>  Dockerfile.debian       | 1 +
>  Dockerfile.debian-arm64 | 1 +
>  Dockerfile.debian-armhf | 1 +
>  Dockerfile.fedora       | 2 +-
>  4 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/Dockerfile.debian b/Dockerfile.debian
> index b9c3be3945e0..d23591850c4e 100644
> --- a/Dockerfile.debian
> +++ b/Dockerfile.debian
> @@ -6,6 +6,7 @@ RUN apt-get install -y \
>  			flex \
>  			bison \
>  			pkg-config \
> +			libatomic1 \
>  			libpciaccess-dev \
>  			libkmod-dev \
>  			libprocps-dev \
> diff --git a/Dockerfile.debian-arm64 b/Dockerfile.debian-arm64
> index 7b3a3c7ca803..003bb22b3215 100644
> --- a/Dockerfile.debian-arm64
> +++ b/Dockerfile.debian-arm64
> @@ -5,6 +5,7 @@ RUN apt-get install -y \
>  			flex \
>  			bison \
>  			pkg-config \
> +			libatomic1 \
>  			x11proto-dri2-dev \
>  			python-docutils \
>  			valgrind \
> diff --git a/Dockerfile.debian-armhf b/Dockerfile.debian-armhf
> index c67a1e2acf6a..3139927c193a 100644
> --- a/Dockerfile.debian-armhf
> +++ b/Dockerfile.debian-armhf
> @@ -5,6 +5,7 @@ RUN apt-get install -y \
>  			flex \
>  			bison \
>  			pkg-config \
> +			libatomic1 \


libatomic1 is the runtime lib, for linking you need the package that
contains libatomic.so. That is *quick search*
libgcc-$version-dev. There doesn't seem to be a generic metapackage
for "the latest libgcc-dev", other than... 'gcc'.

Since Debian is acting a bit speshul here I'd just drop the explicit
libatomic installation.



>  			x11proto-dri2-dev \
>  			python-docutils \
>  			valgrind \
> diff --git a/Dockerfile.fedora b/Dockerfile.fedora
> index 6686e587613d..c84b412b0723 100644
> --- a/Dockerfile.fedora
> +++ b/Dockerfile.fedora
> @@ -1,7 +1,7 @@
>  FROM fedora:30
>  
>  RUN dnf install -y \
> -	gcc flex bison meson ninja-build xdotool \
> +	gcc flex bison libatomic meson ninja-build xdotool \


Possibly the same comment on fedora but I'm not aware of how they
split their gcc package. Anyway, the file to check for is
'libatomic.so'.


-- 
Petri Latvala
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images
  2019-06-14 10:00   ` Petri Latvala
@ 2019-06-14 11:24     ` Ser, Simon
  2019-06-14 12:43       ` Petri Latvala
  0 siblings, 1 reply; 18+ messages in thread
From: Ser, Simon @ 2019-06-14 11:24 UTC (permalink / raw)
  To: guillaume.tucker@collabora.com, Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On Fri, 2019-06-14 at 13:00 +0300, Petri Latvala wrote:
> On Thu, Jun 13, 2019 at 02:53:20PM +0100, Guillaume Tucker wrote:
> > Add libatomic to the Fedora docker image so it can link binaries that
> > use __atomic_* functions.  Also explicitly add libatomic1 to Debian
> > docker images even though it's already installed as a dependency.
> > 
> > Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> > ---
> >  Dockerfile.debian       | 1 +
> >  Dockerfile.debian-arm64 | 1 +
> >  Dockerfile.debian-armhf | 1 +
> >  Dockerfile.fedora       | 2 +-
> >  4 files changed, 4 insertions(+), 1 deletion(-)
> > 
> > diff --git a/Dockerfile.debian b/Dockerfile.debian
> > index b9c3be3945e0..d23591850c4e 100644
> > --- a/Dockerfile.debian
> > +++ b/Dockerfile.debian
> > @@ -6,6 +6,7 @@ RUN apt-get install -y \
> >  			flex \
> >  			bison \
> >  			pkg-config \
> > +			libatomic1 \
> >  			libpciaccess-dev \
> >  			libkmod-dev \
> >  			libprocps-dev \
> > diff --git a/Dockerfile.debian-arm64 b/Dockerfile.debian-arm64
> > index 7b3a3c7ca803..003bb22b3215 100644
> > --- a/Dockerfile.debian-arm64
> > +++ b/Dockerfile.debian-arm64
> > @@ -5,6 +5,7 @@ RUN apt-get install -y \
> >  			flex \
> >  			bison \
> >  			pkg-config \
> > +			libatomic1 \
> >  			x11proto-dri2-dev \
> >  			python-docutils \
> >  			valgrind \
> > diff --git a/Dockerfile.debian-armhf b/Dockerfile.debian-armhf
> > index c67a1e2acf6a..3139927c193a 100644
> > --- a/Dockerfile.debian-armhf
> > +++ b/Dockerfile.debian-armhf
> > @@ -5,6 +5,7 @@ RUN apt-get install -y \
> >  			flex \
> >  			bison \
> >  			pkg-config \
> > +			libatomic1 \
> 
> libatomic1 is the runtime lib, for linking you need the package that
> contains libatomic.so. That is *quick search*
> libgcc-$version-dev. There doesn't seem to be a generic metapackage
> for "the latest libgcc-dev", other than... 'gcc'.
> 
> Since Debian is acting a bit speshul here I'd just drop the explicit
> libatomic installation.

Hmm, I see the .so in libatomic1…

https://packages.debian.org/jessie/amd64/libatomic1/filelist

> 
> 
> >  			x11proto-dri2-dev \
> >  			python-docutils \
> >  			valgrind \
> > diff --git a/Dockerfile.fedora b/Dockerfile.fedora
> > index 6686e587613d..c84b412b0723 100644
> > --- a/Dockerfile.fedora
> > +++ b/Dockerfile.fedora
> > @@ -1,7 +1,7 @@
> >  FROM fedora:30
> >  
> >  RUN dnf install -y \
> > -	gcc flex bison meson ninja-build xdotool \
> > +	gcc flex bison libatomic meson ninja-build xdotool \
> 
> Possibly the same comment on fedora but I'm not aware of how they
> split their gcc package. Anyway, the file to check for is
> 'libatomic.so'.
> 
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images
  2019-06-14 11:24     ` Ser, Simon
@ 2019-06-14 12:43       ` Petri Latvala
  2019-06-14 12:53         ` [Intel-gfx] " Ser, Simon
  0 siblings, 1 reply; 18+ messages in thread
From: Petri Latvala @ 2019-06-14 12:43 UTC (permalink / raw)
  To: Ser, Simon; +Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On Fri, Jun 14, 2019 at 02:24:53PM +0300, Ser, Simon wrote:
> On Fri, 2019-06-14 at 13:00 +0300, Petri Latvala wrote:
> > On Thu, Jun 13, 2019 at 02:53:20PM +0100, Guillaume Tucker wrote:
> > > Add libatomic to the Fedora docker image so it can link binaries that
> > > use __atomic_* functions.  Also explicitly add libatomic1 to Debian
> > > docker images even though it's already installed as a dependency.
> > > 
> > > Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> > > ---
> > >  Dockerfile.debian       | 1 +
> > >  Dockerfile.debian-arm64 | 1 +
> > >  Dockerfile.debian-armhf | 1 +
> > >  Dockerfile.fedora       | 2 +-
> > >  4 files changed, 4 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/Dockerfile.debian b/Dockerfile.debian
> > > index b9c3be3945e0..d23591850c4e 100644
> > > --- a/Dockerfile.debian
> > > +++ b/Dockerfile.debian
> > > @@ -6,6 +6,7 @@ RUN apt-get install -y \
> > >  			flex \
> > >  			bison \
> > >  			pkg-config \
> > > +			libatomic1 \
> > >  			libpciaccess-dev \
> > >  			libkmod-dev \
> > >  			libprocps-dev \
> > > diff --git a/Dockerfile.debian-arm64 b/Dockerfile.debian-arm64
> > > index 7b3a3c7ca803..003bb22b3215 100644
> > > --- a/Dockerfile.debian-arm64
> > > +++ b/Dockerfile.debian-arm64
> > > @@ -5,6 +5,7 @@ RUN apt-get install -y \
> > >  			flex \
> > >  			bison \
> > >  			pkg-config \
> > > +			libatomic1 \
> > >  			x11proto-dri2-dev \
> > >  			python-docutils \
> > >  			valgrind \
> > > diff --git a/Dockerfile.debian-armhf b/Dockerfile.debian-armhf
> > > index c67a1e2acf6a..3139927c193a 100644
> > > --- a/Dockerfile.debian-armhf
> > > +++ b/Dockerfile.debian-armhf
> > > @@ -5,6 +5,7 @@ RUN apt-get install -y \
> > >  			flex \
> > >  			bison \
> > >  			pkg-config \
> > > +			libatomic1 \
> > 
> > libatomic1 is the runtime lib, for linking you need the package that
> > contains libatomic.so. That is *quick search*
> > libgcc-$version-dev. There doesn't seem to be a generic metapackage
> > for "the latest libgcc-dev", other than... 'gcc'.
> > 
> > Since Debian is acting a bit speshul here I'd just drop the explicit
> > libatomic installation.
> 
> Hmm, I see the .so in libatomic1…
> 
> https://packages.debian.org/jessie/amd64/libatomic1/filelist


Where? I only see the .so.1 and .so.1.1.0


-- 
Petri Latvala
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [Intel-gfx] [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images
  2019-06-14 12:43       ` Petri Latvala
@ 2019-06-14 12:53         ` Ser, Simon
  2019-06-18  8:42           ` Guillaume Tucker
  0 siblings, 1 reply; 18+ messages in thread
From: Ser, Simon @ 2019-06-14 12:53 UTC (permalink / raw)
  To: Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On Fri, 2019-06-14 at 15:43 +0300, Petri Latvala wrote:
> On Fri, Jun 14, 2019 at 02:24:53PM +0300, Ser, Simon wrote:
> > On Fri, 2019-06-14 at 13:00 +0300, Petri Latvala wrote:
> > > On Thu, Jun 13, 2019 at 02:53:20PM +0100, Guillaume Tucker wrote:
> > > > Add libatomic to the Fedora docker image so it can link binaries that
> > > > use __atomic_* functions.  Also explicitly add libatomic1 to Debian
> > > > docker images even though it's already installed as a dependency.
> > > > 
> > > > Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> > > > ---
> > > >  Dockerfile.debian       | 1 +
> > > >  Dockerfile.debian-arm64 | 1 +
> > > >  Dockerfile.debian-armhf | 1 +
> > > >  Dockerfile.fedora       | 2 +-
> > > >  4 files changed, 4 insertions(+), 1 deletion(-)
> > > > 
> > > > diff --git a/Dockerfile.debian b/Dockerfile.debian
> > > > index b9c3be3945e0..d23591850c4e 100644
> > > > --- a/Dockerfile.debian
> > > > +++ b/Dockerfile.debian
> > > > @@ -6,6 +6,7 @@ RUN apt-get install -y \
> > > >  			flex \
> > > >  			bison \
> > > >  			pkg-config \
> > > > +			libatomic1 \
> > > >  			libpciaccess-dev \
> > > >  			libkmod-dev \
> > > >  			libprocps-dev \
> > > > diff --git a/Dockerfile.debian-arm64 b/Dockerfile.debian-arm64
> > > > index 7b3a3c7ca803..003bb22b3215 100644
> > > > --- a/Dockerfile.debian-arm64
> > > > +++ b/Dockerfile.debian-arm64
> > > > @@ -5,6 +5,7 @@ RUN apt-get install -y \
> > > >  			flex \
> > > >  			bison \
> > > >  			pkg-config \
> > > > +			libatomic1 \
> > > >  			x11proto-dri2-dev \
> > > >  			python-docutils \
> > > >  			valgrind \
> > > > diff --git a/Dockerfile.debian-armhf b/Dockerfile.debian-armhf
> > > > index c67a1e2acf6a..3139927c193a 100644
> > > > --- a/Dockerfile.debian-armhf
> > > > +++ b/Dockerfile.debian-armhf
> > > > @@ -5,6 +5,7 @@ RUN apt-get install -y \
> > > >  			flex \
> > > >  			bison \
> > > >  			pkg-config \
> > > > +			libatomic1 \
> > > 
> > > libatomic1 is the runtime lib, for linking you need the package that
> > > contains libatomic.so. That is *quick search*
> > > libgcc-$version-dev. There doesn't seem to be a generic metapackage
> > > for "the latest libgcc-dev", other than... 'gcc'.
> > > 
> > > Since Debian is acting a bit speshul here I'd just drop the explicit
> > > libatomic installation.
> > 
> > Hmm, I see the .so in libatomic1…
> > 
> > https://packages.debian.org/jessie/amd64/libatomic1/filelist
> 
> Where? I only see the .so.1 and .so.1.1.0

Bleh, indeed
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [igt-dev] ✓ Fi.CI.IGT: success for Use C11 atomics
  2019-06-13 13:53 [igt-dev] [PATCH i-g-t v2 0/4] Use C11 atomics Guillaume Tucker
                   ` (4 preceding siblings ...)
  2019-06-13 16:33 ` [igt-dev] ✓ Fi.CI.BAT: success for Use C11 atomics Patchwork
@ 2019-06-15  5:16 ` Patchwork
  5 siblings, 0 replies; 18+ messages in thread
From: Patchwork @ 2019-06-15  5:16 UTC (permalink / raw)
  To: Guillaume Tucker; +Cc: igt-dev

== Series Details ==

Series: Use C11 atomics
URL   : https://patchwork.freedesktop.org/series/62048/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6264_full -> IGTPW_3147_full
====================================================

Summary
-------

  **WARNING**

  Minor unknown changes coming with IGTPW_3147_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_3147_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/62048/revisions/1/mbox/

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_3147_full:

### IGT changes ###

#### Warnings ####

  * igt@gem_exec_schedule@semaphore-resolve:
    - shard-apl:          [FAIL][1] ([fdo#110519]) -> [DMESG-FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl4/igt@gem_exec_schedule@semaphore-resolve.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl6/igt@gem_exec_schedule@semaphore-resolve.html

  
Known issues
------------

  Here are the changes found in IGTPW_3147_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-suspend:
    - shard-kbl:          [PASS][3] -> [DMESG-WARN][4] ([fdo#108566])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl7/igt@gem_eio@in-flight-suspend.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl4/igt@gem_eio@in-flight-suspend.html

  * igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
    - shard-kbl:          [PASS][5] -> [DMESG-WARN][6] ([fdo#110913 ]) +2 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl1/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl4/igt@gem_persistent_relocs@forked-faulting-reloc-thrashing.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive:
    - shard-snb:          [PASS][7] -> [INCOMPLETE][8] ([fdo#105411]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-snb2/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-snb4/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrash-inactive.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-iclb:         [PASS][9] -> [DMESG-WARN][10] ([fdo#110913 ]) +4 similar issues
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb8/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb4/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-glk:          [PASS][11] -> [DMESG-WARN][12] ([fdo#110913 ]) +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-glk8/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-glk7/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
    - shard-hsw:          [PASS][13] -> [DMESG-WARN][14] ([fdo#110913 ]) +1 similar issue
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-hsw5/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw6/igt@gem_userptr_blits@map-fixed-invalidate-busy-gup.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [PASS][15] -> [DMESG-WARN][16] ([fdo#110913 ]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-snb5/igt@gem_userptr_blits@sync-unmap-cycles.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-snb6/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@i915_pm_rpm@gem-execbuf-stress:
    - shard-iclb:         [PASS][17] -> [INCOMPLETE][18] ([fdo#107713] / [fdo#108840])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb8/igt@i915_pm_rpm@gem-execbuf-stress.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb4/igt@i915_pm_rpm@gem-execbuf-stress.html

  * igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing:
    - shard-hsw:          [PASS][19] -> [INCOMPLETE][20] ([fdo#103540])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-hsw1/igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw7/igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing.html

  * igt@kms_color@pipe-c-degamma:
    - shard-glk:          [PASS][21] -> [FAIL][22] ([fdo#104782])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-glk7/igt@kms_color@pipe-c-degamma.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-glk7/igt@kms_color@pipe-c-degamma.html
    - shard-kbl:          [PASS][23] -> [FAIL][24] ([fdo#104782])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl1/igt@kms_color@pipe-c-degamma.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl3/igt@kms_color@pipe-c-degamma.html
    - shard-apl:          [PASS][25] -> [FAIL][26] ([fdo#104782])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl1/igt@kms_color@pipe-c-degamma.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl2/igt@kms_color@pipe-c-degamma.html

  * igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen:
    - shard-iclb:         [PASS][27] -> [INCOMPLETE][28] ([fdo#107713])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb8/igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb8/igt@kms_cursor_crc@pipe-a-cursor-256x256-offscreen.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
    - shard-hsw:          [PASS][29] -> [SKIP][30] ([fdo#109271]) +34 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-hsw7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw1/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-glk:          [PASS][31] -> [FAIL][32] ([fdo#102887] / [fdo#105363])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-glk6/igt@kms_flip@flip-vs-expired-vblank-interruptible.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-glk1/igt@kms_flip@flip-vs-expired-vblank-interruptible.html

  * igt@kms_flip@flip-vs-modeset-vs-hang:
    - shard-apl:          [PASS][33] -> [DMESG-WARN][34] ([fdo#110913 ]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl6/igt@kms_flip@flip-vs-modeset-vs-hang.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl1/igt@kms_flip@flip-vs-modeset-vs-hang.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt:
    - shard-iclb:         [PASS][35] -> [FAIL][36] ([fdo#103167]) +3 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-shrfb-plflip-blt.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
    - shard-apl:          [PASS][37] -> [DMESG-WARN][38] ([fdo#108566]) +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl5/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes.html

  * igt@kms_psr@psr2_sprite_plane_onoff:
    - shard-iclb:         [PASS][39] -> [SKIP][40] ([fdo#109441])
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb2/igt@kms_psr@psr2_sprite_plane_onoff.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb8/igt@kms_psr@psr2_sprite_plane_onoff.html

  * igt@kms_rotation_crc@multiplane-rotation-cropping-top:
    - shard-kbl:          [PASS][41] -> [FAIL][42] ([fdo#109016])
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl4/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@kms_rotation_crc@multiplane-rotation-cropping-top.html

  * igt@kms_setmode@basic:
    - shard-hsw:          [PASS][43] -> [FAIL][44] ([fdo#99912])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-hsw7/igt@kms_setmode@basic.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw7/igt@kms_setmode@basic.html
    - shard-kbl:          [PASS][45] -> [FAIL][46] ([fdo#99912])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl4/igt@kms_setmode@basic.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@kms_setmode@basic.html

  * igt@kms_sysfs_edid_timing:
    - shard-hsw:          [PASS][47] -> [FAIL][48] ([fdo#100047])
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-hsw1/igt@kms_sysfs_edid_timing.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw1/igt@kms_sysfs_edid_timing.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-kbl:          [PASS][49] -> [INCOMPLETE][50] ([fdo#103665])
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl2/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl4/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@bcs0-s3:
    - shard-kbl:          [DMESG-WARN][51] ([fdo#108566]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl1/igt@gem_ctx_isolation@bcs0-s3.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@gem_ctx_isolation@bcs0-s3.html

  * igt@gem_eio@in-flight-immediate:
    - shard-iclb:         [DMESG-WARN][53] ([fdo#110913 ]) -> [PASS][54] +3 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb5/igt@gem_eio@in-flight-immediate.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb2/igt@gem_eio@in-flight-immediate.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][55] ([fdo#110854]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb6/igt@gem_exec_balancer@smoke.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb1/igt@gem_exec_balancer@smoke.html

  * igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
    - shard-glk:          [DMESG-WARN][57] ([fdo#110913 ]) -> [PASS][58] +4 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-glk2/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-glk2/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
    - shard-hsw:          [DMESG-WARN][59] ([fdo#110789] / [fdo#110913 ]) -> [PASS][60] +1 similar issue
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-hsw5/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw7/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-apl:          [DMESG-WARN][61] ([fdo#110913 ]) -> [PASS][62] +2 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl7/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl7/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@gem_persistent_relocs@forked-thrashing:
    - shard-snb:          [DMESG-WARN][63] ([fdo#110789] / [fdo#110913 ]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-snb7/igt@gem_persistent_relocs@forked-thrashing.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-snb7/igt@gem_persistent_relocs@forked-thrashing.html

  * igt@gem_userptr_blits@map-fixed-invalidate-busy:
    - shard-hsw:          [DMESG-WARN][65] ([fdo#110913 ]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-hsw4/igt@gem_userptr_blits@map-fixed-invalidate-busy.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw1/igt@gem_userptr_blits@map-fixed-invalidate-busy.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-kbl:          [DMESG-WARN][67] ([fdo#110913 ]) -> [PASS][68] +3 similar issues
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl3/igt@gem_userptr_blits@sync-unmap-cycles.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@kms_cursor_crc@pipe-c-cursor-128x128-sliding:
    - shard-kbl:          [FAIL][69] ([fdo#103232]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-128x128-sliding.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-128x128-sliding.html
    - shard-apl:          [FAIL][71] ([fdo#103232]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl2/igt@kms_cursor_crc@pipe-c-cursor-128x128-sliding.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl2/igt@kms_cursor_crc@pipe-c-cursor-128x128-sliding.html

  * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic:
    - shard-hsw:          [SKIP][73] ([fdo#109271]) -> [PASS][74] +11 similar issues
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-hsw1/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw5/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-apl:          [DMESG-WARN][75] ([fdo#108566]) -> [PASS][76] +4 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl2/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl6/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite:
    - shard-iclb:         [FAIL][77] ([fdo#103167]) -> [PASS][78] +3 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-indfb-draw-pwrite.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc:
    - shard-iclb:         [INCOMPLETE][79] ([fdo#106978] / [fdo#107713]) -> [PASS][80]
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb7/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-mmap-wc.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][81] ([fdo#109642]) -> [PASS][82]
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb7/igt@kms_psr2_su@page_flip.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb2/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_sprite_blt:
    - shard-iclb:         [SKIP][83] ([fdo#109441]) -> [PASS][84] +2 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-iclb4/igt@kms_psr@psr2_sprite_blt.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb2/igt@kms_psr@psr2_sprite_blt.html

  
  [fdo#100047]: https://bugs.freedesktop.org/show_bug.cgi?id=100047
  [fdo#102887]: https://bugs.freedesktop.org/show_bug.cgi?id=102887
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#106978]: https://bugs.freedesktop.org/show_bug.cgi?id=106978
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109016]: https://bugs.freedesktop.org/show_bug.cgi?id=109016
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110519]: https://bugs.freedesktop.org/show_bug.cgi?id=110519
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#110913 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110913 
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


Build changes
-------------

  * IGT: IGT_5055 -> IGTPW_3147
  * Piglit: piglit_4509 -> None

  CI_DRM_6264: 40a5ebf378e800ed3654997ab43267e1aea8ccd1 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3147: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/
  IGT_5055: 495287320225e7f180d384cad7b207b77154438f @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/4] meson: add libatomic dependency
  2019-06-14  8:07   ` [igt-dev] " Ser, Simon
@ 2019-06-18  8:33     ` Guillaume Tucker
  2019-06-18 13:11       ` Ser, Simon
  0 siblings, 1 reply; 18+ messages in thread
From: Guillaume Tucker @ 2019-06-18  8:33 UTC (permalink / raw)
  To: Ser, Simon, Hiler, Arkadiusz, Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On 14/06/2019 09:07, Ser, Simon wrote:
> On Thu, 2019-06-13 at 14:53 +0100, Guillaume Tucker wrote:
>> Add conditional dependency on libatomic in order to be able to use the
>> __atomic_* functions instead of the older __sync_* ones.  The
>> libatomic library is only needed when there aren't any native support
>> on the current architecture, so a linker test is used for this
>> purpose.  This enables atomic operations to be on a wider number of
>> architectures including MIPS.
>>
>> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
>> ---
>>  meson.build | 13 +++++++++++++
>>  1 file changed, 13 insertions(+)
>>
>> diff --git a/meson.build b/meson.build
>> index 6268c58d3634..da25a28f3268 100644
>> --- a/meson.build
>> +++ b/meson.build
>> @@ -179,6 +179,19 @@ math = cc.find_library('m')
>>  realtime = cc.find_library('rt')
>>  dlsym = cc.find_library('dl')
>>  zlib = cc.find_library('z')
>> +if cc.links('''
>> +#include <stdint.h>
>> +int main(void) {
>> +  uint32_t x32 = 0;
>> +  uint64_t x64 = 0;
>> +  __atomic_load_n(&x32, __ATOMIC_SEQ_CST);
>> +  __atomic_load_n(&x64, __ATOMIC_SEQ_CST);
> 
> Minor: maybe we could've used stdatomic.h's atomic_* functions (without
> the "__" prefix) for consistency with the actual IGT code?

I actually thought it was more correct to use the __atomic_*
functions directly from the libatomic library as this is a linker
test.  If for any reason stdatomic.h changes between versions or
compilers and uses something else than libatomic, then this test
would become invalid.

>> +  return 0;
>> +}''', name : 'built-in atomics')
>> +	libatomic = []
> 
> We could use null_dep instead, to make it consistent with the other
> branch.

Ack, will fix that in v3.

>> +else
>> +	libatomic = cc.find_library('atomic')
>> +endif
>>  
>>  if cc.has_header('linux/kd.h')
>>  	config.set('HAVE_LINUX_KD_H', 1)

Thanks,
Guillaume
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images
  2019-06-14 12:53         ` [Intel-gfx] " Ser, Simon
@ 2019-06-18  8:42           ` Guillaume Tucker
  0 siblings, 0 replies; 18+ messages in thread
From: Guillaume Tucker @ 2019-06-18  8:42 UTC (permalink / raw)
  To: Ser, Simon, Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On 14/06/2019 13:53, Ser, Simon wrote:
> On Fri, 2019-06-14 at 15:43 +0300, Petri Latvala wrote:
>> On Fri, Jun 14, 2019 at 02:24:53PM +0300, Ser, Simon wrote:
>>> On Fri, 2019-06-14 at 13:00 +0300, Petri Latvala wrote:
>>>> On Thu, Jun 13, 2019 at 02:53:20PM +0100, Guillaume Tucker wrote:
>>>>> Add libatomic to the Fedora docker image so it can link binaries that
>>>>> use __atomic_* functions.  Also explicitly add libatomic1 to Debian
>>>>> docker images even though it's already installed as a dependency.
>>>>>
>>>>> Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
>>>>> ---
>>>>>  Dockerfile.debian       | 1 +
>>>>>  Dockerfile.debian-arm64 | 1 +
>>>>>  Dockerfile.debian-armhf | 1 +
>>>>>  Dockerfile.fedora       | 2 +-
>>>>>  4 files changed, 4 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/Dockerfile.debian b/Dockerfile.debian
>>>>> index b9c3be3945e0..d23591850c4e 100644
>>>>> --- a/Dockerfile.debian
>>>>> +++ b/Dockerfile.debian
>>>>> @@ -6,6 +6,7 @@ RUN apt-get install -y \
>>>>>  			flex \
>>>>>  			bison \
>>>>>  			pkg-config \
>>>>> +			libatomic1 \
>>>>>  			libpciaccess-dev \
>>>>>  			libkmod-dev \
>>>>>  			libprocps-dev \
>>>>> diff --git a/Dockerfile.debian-arm64 b/Dockerfile.debian-arm64
>>>>> index 7b3a3c7ca803..003bb22b3215 100644
>>>>> --- a/Dockerfile.debian-arm64
>>>>> +++ b/Dockerfile.debian-arm64
>>>>> @@ -5,6 +5,7 @@ RUN apt-get install -y \
>>>>>  			flex \
>>>>>  			bison \
>>>>>  			pkg-config \
>>>>> +			libatomic1 \
>>>>>  			x11proto-dri2-dev \
>>>>>  			python-docutils \
>>>>>  			valgrind \
>>>>> diff --git a/Dockerfile.debian-armhf b/Dockerfile.debian-armhf
>>>>> index c67a1e2acf6a..3139927c193a 100644
>>>>> --- a/Dockerfile.debian-armhf
>>>>> +++ b/Dockerfile.debian-armhf
>>>>> @@ -5,6 +5,7 @@ RUN apt-get install -y \
>>>>>  			flex \
>>>>>  			bison \
>>>>>  			pkg-config \
>>>>> +			libatomic1 \
>>>>
>>>> libatomic1 is the runtime lib, for linking you need the package that
>>>> contains libatomic.so. That is *quick search*
>>>> libgcc-$version-dev. There doesn't seem to be a generic metapackage
>>>> for "the latest libgcc-dev", other than... 'gcc'.
>>>>
>>>> Since Debian is acting a bit speshul here I'd just drop the explicit
>>>> libatomic installation.
>>>
>>> Hmm, I see the .so in libatomic1…
>>>
>>> https://packages.debian.org/jessie/amd64/libatomic1/filelist
>>
>> Where? I only see the .so.1 and .so.1.1.0
> 
> Bleh, indeed
So, I've dropped the libatomic1 as it's indeed not required
*except* that it is for non-x86 architectures at run-time with
multi-arch file systems.  I found that when adding ci tests for
mips, as of course it then needs it when running gem_create.  I'm
sending a v3 with this.

Thanks,
Guillaume
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v2 1/4] meson: add libatomic dependency
  2019-06-18  8:33     ` Guillaume Tucker
@ 2019-06-18 13:11       ` Ser, Simon
  0 siblings, 0 replies; 18+ messages in thread
From: Ser, Simon @ 2019-06-18 13:11 UTC (permalink / raw)
  To: guillaume.tucker@collabora.com, Hiler, Arkadiusz, Latvala, Petri
  Cc: igt-dev@lists.freedesktop.org, intel-gfx@lists.freedesktop.org

On Tue, 2019-06-18 at 09:33 +0100, Guillaume Tucker wrote:
> On 14/06/2019 09:07, Ser, Simon wrote:
> > On Thu, 2019-06-13 at 14:53 +0100, Guillaume Tucker wrote:
> > > Add conditional dependency on libatomic in order to be able to use the
> > > __atomic_* functions instead of the older __sync_* ones.  The
> > > libatomic library is only needed when there aren't any native support
> > > on the current architecture, so a linker test is used for this
> > > purpose.  This enables atomic operations to be on a wider number of
> > > architectures including MIPS.
> > > 
> > > Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
> > > ---
> > >  meson.build | 13 +++++++++++++
> > >  1 file changed, 13 insertions(+)
> > > 
> > > diff --git a/meson.build b/meson.build
> > > index 6268c58d3634..da25a28f3268 100644
> > > --- a/meson.build
> > > +++ b/meson.build
> > > @@ -179,6 +179,19 @@ math = cc.find_library('m')
> > >  realtime = cc.find_library('rt')
> > >  dlsym = cc.find_library('dl')
> > >  zlib = cc.find_library('z')
> > > +if cc.links('''
> > > +#include <stdint.h>
> > > +int main(void) {
> > > +  uint32_t x32 = 0;
> > > +  uint64_t x64 = 0;
> > > +  __atomic_load_n(&x32, __ATOMIC_SEQ_CST);
> > > +  __atomic_load_n(&x64, __ATOMIC_SEQ_CST);
> > 
> > Minor: maybe we could've used stdatomic.h's atomic_* functions (without
> > the "__" prefix) for consistency with the actual IGT code?
> 
> I actually thought it was more correct to use the __atomic_*
> functions directly from the libatomic library as this is a linker
> test.  If for any reason stdatomic.h changes between versions or
> compilers and uses something else than libatomic, then this test
> would become invalid.

I don't know whether __atomic_* functions are standard builtins or if
they are just an implementation detail.

If they are standard builtins, it makes more sense to check for them as
this patch does.

If they aren't, we instead should try to link a program using
stdatomic.h's atomic_* functions, and if it doesn't work assume
libatomic.so is required.

> > > +  return 0;
> > > +}''', name : 'built-in atomics')
> > > +	libatomic = []
> > 
> > We could use null_dep instead, to make it consistent with the other
> > branch.
> 
> Ack, will fix that in v3.
> 
> > > +else
> > > +	libatomic = cc.find_library('atomic')
> > > +endif
> > >  
> > >  if cc.has_header('linux/kd.h')
> > >  	config.set('HAVE_LINUX_KD_H', 1)
> 
> Thanks,
> Guillaume
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2019-06-18 13:11 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-13 13:53 [igt-dev] [PATCH i-g-t v2 0/4] Use C11 atomics Guillaume Tucker
2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 1/4] meson: add libatomic dependency Guillaume Tucker
2019-06-14  8:07   ` [igt-dev] " Ser, Simon
2019-06-18  8:33     ` Guillaume Tucker
2019-06-18 13:11       ` Ser, Simon
2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images Guillaume Tucker
2019-06-14  8:08   ` Ser, Simon
2019-06-14 10:00   ` Petri Latvala
2019-06-14 11:24     ` Ser, Simon
2019-06-14 12:43       ` Petri Latvala
2019-06-14 12:53         ` [Intel-gfx] " Ser, Simon
2019-06-18  8:42           ` Guillaume Tucker
2019-06-13 13:53 ` [igt-dev] [PATCH i-g-t v2 3/4] i915/gem_create: use atomic_* instead of __sync_* Guillaume Tucker
2019-06-14  8:11   ` Ser, Simon
2019-06-13 13:53 ` [Intel-gfx] [PATCH i-g-t v2 4/4] tests/sw_sync: " Guillaume Tucker
2019-06-14  8:12   ` [igt-dev] " Ser, Simon
2019-06-13 16:33 ` [igt-dev] ✓ Fi.CI.BAT: success for Use C11 atomics Patchwork
2019-06-15  5:16 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox