Skip to contentSkip to conversation

Use C11 atomics

PATCH Superseded Guillaume Tucker 4 participants 18 messages Jun 13, 2019 – Jun 18, 2019 Arm/Amlogic Meson SoC support

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v2 cover Use C11 atomics

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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#1 lore raw

PATCH v2 1/4 meson: add libatomic dependency

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.

---
 meson.build | 13 +++++++++++++
 1 file changed, 13 insertions(+)
meson.build +13 -0
index 6268c58d3634..da25a28f3268 100644
@@ -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)
Signature · 6 lines
2.20.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
#2 lore raw

Re: [igt-dev] [PATCH i-g-t v2 1/4] meson: add libatomic dependency

Quoted 17 lines · Guillaume Tucker

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.

---
 meson.build | 13 +++++++++++++
 1 file changed, 13 insertions(+)
meson.build +0 -0
index 6268c58d3634..da25a28f3268 100644

meson.build math = cc.find_library('m') · line 188

Quoted 10 lines
meson.build +7 -0
@@ -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?

meson.build math = cc.find_library('m') · line 191

Quoted 3 lines
meson.build +3 -0
+  return 0;
+}''', name : 'built-in atomics')
+	libatomic = []

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

meson.build math = cc.find_library('m') · line 197

Quoted 6 lines
meson.build +3 -0
+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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#3 lore raw

Re: [igt-dev] [PATCH i-g-t v2 1/4] meson: add libatomic dependency

Quoted 23 lines · Simon
Quoted 22 lines · Guillaume Tucker

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.

---
 meson.build | 13 +++++++++++++
 1 file changed, 13 insertions(+)
meson.build +2 -0
index 6268c58d3634..da25a28f3268 100644
@@ -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>
Quoted 8 lines

meson.build math = cc.find_library('m') · line 188

Quoted 5 lines
meson.build +5 -0
+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.

Quoted 6 lines

meson.build math = cc.find_library('m') · line 191

Quoted 3 lines
meson.build +3 -0
+  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.

Quoted 6 lines

meson.build math = cc.find_library('m') · line 197

Quoted 6 lines
meson.build +3 -0
+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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#4 lore raw

Re: [igt-dev] [PATCH i-g-t v2 1/4] meson: add libatomic dependency

Quoted 33 lines · Guillaume Tucker
Quoted 23 lines · Simon
Quoted 22 lines · Guillaume Tucker

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.

---
 meson.build | 13 +++++++++++++
 1 file changed, 13 insertions(+)
meson.build +2 -0
index 6268c58d3634..da25a28f3268 100644
@@ -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>
Quoted 8 lines

meson.build math = cc.find_library('m') · line 188

Quoted 5 lines
meson.build +5 -0
+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?

Quoted 5 lines

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.

Quoted 13 lines
Quoted 6 lines

meson.build math = cc.find_library('m') · line 191

Quoted 3 lines
meson.build +3 -0
+  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.

Quoted 4 lines
Quoted 4 lines
meson.build +3 -0
+else
+	libatomic = cc.find_library('atomic')
+endif
 
Quoted 5 lines
Quoted 2 lines

meson.build math = cc.find_library('m') · line 197

Quoted 2 lines
meson.build +0 -0
 if cc.has_header('linux/kd.h')
 	config.set('HAVE_LINUX_KD_H', 1)

Thanks,
Guillaume

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#5 lore raw

PATCH v2 2/4 gitlab-ci: add libatomic to docker images

In reply to Guillaume Tucker

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.

---
 Dockerfile.debian       | 1 +
 Dockerfile.debian-arm64 | 1 +
 Dockerfile.debian-armhf | 1 +
 Dockerfile.fedora       | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)
Dockerfile.debian +1 -0
index b9c3be3945e0..d23591850c4e 100644
@@ -6,6 +6,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			libpciaccess-dev \
 			libkmod-dev \
 			libprocps-dev \
Dockerfile.debian-arm64 +1 -0
index 7b3a3c7ca803..003bb22b3215 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.debian-armhf +1 -0
index c67a1e2acf6a..3139927c193a 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.fedora +1 -1
index 6686e587613d..c84b412b0723 100644
@@ -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)' \
Signature · 6 lines
2.20.1

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Reviewed-by on v2 2/4
#6 lore raw

Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images

Quoted 5 lines · Guillaume Tucker

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.

Quoted 48 lines
---
 Dockerfile.debian       | 1 +
 Dockerfile.debian-arm64 | 1 +
 Dockerfile.debian-armhf | 1 +
 Dockerfile.fedora       | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)
Dockerfile.debian +1 -0
index b9c3be3945e0..d23591850c4e 100644
@@ -6,6 +6,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			libpciaccess-dev \
 			libkmod-dev \
 			libprocps-dev \
Dockerfile.debian-arm64 +1 -0
index 7b3a3c7ca803..003bb22b3215 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.debian-armhf +1 -0
index c67a1e2acf6a..3139927c193a 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.fedora +0 -0
index 6686e587613d..c84b412b0723 100644

Dockerfile.fedora line 7

Quoted 8 lines
Dockerfile.fedora +1 -1
@@ -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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#7 lore raw

Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images

In reply to Guillaume Tucker
Quoted 41 lines · Guillaume Tucker

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.

---
 Dockerfile.debian       | 1 +
 Dockerfile.debian-arm64 | 1 +
 Dockerfile.debian-armhf | 1 +
 Dockerfile.fedora       | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)
Dockerfile.debian +1 -0
index b9c3be3945e0..d23591850c4e 100644
@@ -6,6 +6,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			libpciaccess-dev \
 			libkmod-dev \
 			libprocps-dev \
Dockerfile.debian-arm64 +1 -0
index 7b3a3c7ca803..003bb22b3215 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.debian-armhf +0 -0
index c67a1e2acf6a..3139927c193a 100644

Dockerfile.debian-armhf RUN apt-get install -y \ · line 8

Quoted 4 lines
Dockerfile.debian-armhf +1 -0
@@ -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.

Dockerfile.fedora line 4

Quoted 13 lines
Dockerfile.debian-armhf +0 -0
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.fedora +1 -1
index 6686e587613d..c84b412b0723 100644
@@ -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'.

Signature · 5 lines
Petri Latvala
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#8 lore raw

Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images

Quoted 52 lines · Petri Latvala
Quoted 41 lines · Guillaume Tucker

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.

---
 Dockerfile.debian       | 1 +
 Dockerfile.debian-arm64 | 1 +
 Dockerfile.debian-armhf | 1 +
 Dockerfile.fedora       | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)
Dockerfile.debian +1 -0
index b9c3be3945e0..d23591850c4e 100644
@@ -6,6 +6,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			libpciaccess-dev \
 			libkmod-dev \
 			libprocps-dev \
Dockerfile.debian-arm64 +1 -0
index 7b3a3c7ca803..003bb22b3215 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.debian-armhf +0 -0
index c67a1e2acf6a..3139927c193a 100644

Dockerfile.debian-armhf RUN apt-get install -y \ · line 8

Quoted 4 lines
Dockerfile.debian-armhf +1 -0
@@ -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'.

Quoted 2 lines

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

Quoted 12 lines
Quoted 12 lines
Dockerfile.debian-armhf +0 -0
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.fedora +0 -0
index 6686e587613d..c84b412b0723 100644
@@ -1,7 +1,7 @@
 FROM fedora:30
 
Quoted 9 lines

Dockerfile.fedora line 4

Quoted 3 lines
Dockerfile.fedora +1 -1
 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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#9 lore raw

Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images

Quoted 53 lines · Simon
Quoted 52 lines · Petri Latvala
Quoted 41 lines · Guillaume Tucker

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.

---
 Dockerfile.debian       | 1 +
 Dockerfile.debian-arm64 | 1 +
 Dockerfile.debian-armhf | 1 +
 Dockerfile.fedora       | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)
Dockerfile.debian +1 -0
index b9c3be3945e0..d23591850c4e 100644
@@ -6,6 +6,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			libpciaccess-dev \
 			libkmod-dev \
 			libprocps-dev \
Dockerfile.debian-arm64 +1 -0
index 7b3a3c7ca803..003bb22b3215 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.debian-armhf +0 -0
index c67a1e2acf6a..3139927c193a 100644

Dockerfile.debian-armhf RUN apt-get install -y \ · line 8

Quoted 4 lines
Dockerfile.debian-armhf +1 -0
@@ -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'.

Quoted 6 lines
Quoted 2 lines

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

Signature · 5 lines
Petri Latvala
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#10 lore raw

Re: [Intel-gfx] [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images

Quoted 54 lines · Petri Latvala
Quoted 53 lines · Simon
Quoted 52 lines · Petri Latvala
Quoted 41 lines · Guillaume Tucker

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.

---
 Dockerfile.debian       | 1 +
 Dockerfile.debian-arm64 | 1 +
 Dockerfile.debian-armhf | 1 +
 Dockerfile.fedora       | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)
Dockerfile.debian +1 -0
index b9c3be3945e0..d23591850c4e 100644
@@ -6,6 +6,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			libpciaccess-dev \
 			libkmod-dev \
 			libprocps-dev \
Dockerfile.debian-arm64 +1 -0
index 7b3a3c7ca803..003bb22b3215 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.debian-armhf +0 -0
index c67a1e2acf6a..3139927c193a 100644

Dockerfile.debian-armhf RUN apt-get install -y \ · line 8

Quoted 4 lines
Dockerfile.debian-armhf +1 -0
@@ -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'.

Quoted 8 lines
Quoted 6 lines
Quoted 2 lines

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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

#11 lore raw

Re: [igt-dev] [PATCH i-g-t v2 2/4] gitlab-ci: add libatomic to docker images

Quoted 58 lines · Simon
Quoted 57 lines · Petri Latvala
Quoted 56 lines · Simon
Quoted 54 lines · Petri Latvala
Quoted 41 lines · Guillaume Tucker

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.

---
 Dockerfile.debian       | 1 +
 Dockerfile.debian-arm64 | 1 +
 Dockerfile.debian-armhf | 1 +
 Dockerfile.fedora       | 2 +-
 4 files changed, 4 insertions(+), 1 deletion(-)
Dockerfile.debian +1 -0
index b9c3be3945e0..d23591850c4e 100644
@@ -6,6 +6,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			libpciaccess-dev \
 			libkmod-dev \
 			libprocps-dev \
Dockerfile.debian-arm64 +1 -0
index 7b3a3c7ca803..003bb22b3215 100644
@@ -5,6 +5,7 @@ RUN apt-get install -y \
 			flex \
 			bison \
 			pkg-config \
+			libatomic1 \
 			x11proto-dri2-dev \
 			python-docutils \
 			valgrind \
Dockerfile.debian-armhf +0 -0
index c67a1e2acf6a..3139927c193a 100644

Dockerfile.debian-armhf RUN apt-get install -y \ · line 8

Quoted 4 lines
Dockerfile.debian-armhf +1 -0
@@ -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.

Quoted 7 lines
Quoted 5 lines
Quoted 3 lines

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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#12 lore raw

PATCH v2 3/4 i915/gem_create: use atomic_* instead of __sync_*

In reply to Guillaume Tucker

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

---
 tests/Makefile.am       |  2 +-
 tests/i915/gem_create.c | 16 ++++++++++++----
 tests/meson.build       |  9 ++++++++-
 3 files changed, 21 insertions(+), 6 deletions(-)
tests/Makefile.am +1 -1
index 5a428b8ac213..bbd386c9c2db 100644
@@ -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)
tests/i915/gem_create.c +12 -4
index 43cbf45f289b..9008cd8a21e3 100644
@@ -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;
tests/meson.build +8 -1
index f168fbbae2a8..ffd432d38193 100644
@@ -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 ],
Signature · 6 lines
2.20.1

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Reviewed-by on v2 3/4
#13 lore raw

Re: [igt-dev] [PATCH i-g-t v2 3/4] i915/gem_create: use atomic_* instead of __sync_*

Quoted 10 lines · Guillaume Tucker

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

LGTM!

Quoted 89 lines
---
 tests/Makefile.am       |  2 +-
 tests/i915/gem_create.c | 16 ++++++++++++----
 tests/meson.build       |  9 ++++++++-
 3 files changed, 21 insertions(+), 6 deletions(-)
tests/Makefile.am +1 -1
index 5a428b8ac213..bbd386c9c2db 100644
@@ -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)
tests/i915/gem_create.c +12 -4
index 43cbf45f289b..9008cd8a21e3 100644
@@ -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;
tests/meson.build +1 -1
index f168fbbae2a8..ffd432d38193 100644
@@ -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',

tests/meson.build foreach prog : i915_progs · line 289

Quoted 10 lines
tests/meson.build +7 -0
+	   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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#14 lore raw

PATCH v2 4/4 tests/sw_sync: use atomic_* instead of __sync_*

In reply to Guillaume Tucker

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.

---
 tests/Makefile.am |  1 +
 tests/meson.build |  8 +++++++-
 tests/sw_sync.c   | 12 ++++++------
 3 files changed, 14 insertions(+), 7 deletions(-)
tests/Makefile.am +1 -0
index bbd386c9c2db..7d71df8c7a2e 100644
@@ -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
 
tests/meson.build +7 -1
index ffd432d38193..34a74025a537 100644
@@ -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')
tests/sw_sync.c +6 -6
index 950b8b614759..62d1d17cab45 100644
@@ -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();
 }
-
Signature · 6 lines
2.20.1

_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Reviewed-by on v2 4/4
#15 lore raw

Re: [igt-dev] [PATCH i-g-t v2 4/4] tests/sw_sync: use atomic_* instead of __sync_*

Quoted 6 lines · Guillaume Tucker

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.

Thanks!

Quoted 106 lines
---
 tests/Makefile.am |  1 +
 tests/meson.build |  8 +++++++-
 tests/sw_sync.c   | 12 ++++++------
 3 files changed, 14 insertions(+), 7 deletions(-)
tests/Makefile.am +1 -0
index bbd386c9c2db..7d71df8c7a2e 100644
@@ -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
 
tests/meson.build +7 -1
index ffd432d38193..34a74025a537 100644
@@ -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')

tests/sw_sync.c +5 -4
index 950b8b614759..62d1d17cab45 100644
@@ -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;
tests/sw_sync.c +1 -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;
tests/sw_sync.c +0 -0
 	int i, ret;

tests/sw_sync.c igt_main · line 903

Quoted 4 lines
tests/sw_sync.c +0 -1
@@ -900,4 +901,3 @@ igt_main
 	igt_subtest("sync_random_merge")
 		test_sync_random_merge();
 }
-

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#16 lore raw

[igt-dev] ✓ Fi.CI.BAT: success for Use C11 atomics

In reply to Guillaume Tucker
== Series Details ==

== 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@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/fi-icl-u3/igt@[email protected]

* 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@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/fi-icl-u3/igt@[email protected]

#### 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@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/fi-icl-guc/igt@[email protected]

[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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#17 lore raw

[igt-dev] ✓ Fi.CI.IGT: success for Use C11 atomics

In reply to Guillaume Tucker
== Series Details ==

== 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@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl6/igt@[email protected]

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@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl4/igt@[email protected]

* 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@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl4/igt@[email protected]

* 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@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb4/igt@[email protected]

* 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@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-glk7/igt@[email protected]

* 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@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw6/igt@[email protected]

* 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@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-snb6/igt@[email protected]

* 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@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb4/igt@[email protected]

* 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@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-glk7/igt@[email protected]
- shard-kbl: [PASS][23] -> [FAIL][24] ([fdo#104782])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl1/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl3/igt@[email protected]
- shard-apl: [PASS][25] -> [FAIL][26] ([fdo#104782])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl1/igt@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl2/igt@[email protected]

* 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@[email protected]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb8/igt@[email protected]

* 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@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw1/igt@[email protected]

* 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@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-glk1/igt@[email protected]

* 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@[email protected]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl1/igt@[email protected]

* 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@[email protected]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl8/igt@[email protected]

* 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@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@[email protected]

* 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@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw7/igt@[email protected]
- shard-kbl: [PASS][45] -> [FAIL][46] ([fdo#99912])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-kbl4/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@[email protected]

* 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@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl4/igt@[email protected]

#### 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@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@[email protected]

* 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@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb2/igt@[email protected]

* 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@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-iclb1/igt@[email protected]

* 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@[email protected]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl7/igt@[email protected]

* 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@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-snb7/igt@[email protected]

* 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@[email protected]
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw1/igt@[email protected]

* 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@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@[email protected]

* 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@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-kbl6/igt@[email protected]
- shard-apl: [FAIL][71] ([fdo#103232]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6264/shard-apl2/igt@[email protected]
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl2/igt@[email protected]

* 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@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-hsw5/igt@[email protected]

* 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@[email protected]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3147/shard-apl6/igt@[email protected]

* 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
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev