linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* BUG: core dump in selftest of proc fs
@ 2023-01-04 18:27 Mirsad Goran Todorovac
  2023-01-04 18:36 ` Alexey Dobriyan
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Mirsad Goran Todorovac @ 2023-01-04 18:27 UTC (permalink / raw)
  To: linux-kselftest
  Cc: Shuah Khan, Andrew Morton, Alexey Dobriyan, Brian Foster,
	Guo Zhengkui, linux-fsdevel, linux-kernel, Thorsten Leemhuis

[-- Attachment #1: Type: text/plain, Size: 1444 bytes --]

Dear all,

Trying to complete `make kselftest` for the first time, so maybe I'm doing something wrong?

Or we are having a regression in 6.2-rc2 release candidate ...

However, the output of selftest run is:

make[2]: Entering directory '.../linux_torvalds/tools/testing/selftests/proc'
TAP version 13
1..21
# selftests: proc: fd-001-lookup
ok 1 selftests: proc: fd-001-lookup
# selftests: proc: fd-002-posix-eq
ok 2 selftests: proc: fd-002-posix-eq
# selftests: proc: fd-003-kthread
ok 3 selftests: proc: fd-003-kthread
# selftests: proc: proc-loadavg-001
ok 4 selftests: proc: proc-loadavg-001
# selftests: proc: proc-empty-vm
# proc-empty-vm: proc-empty-vm.c:184: test_proc_pid_maps: Assertion `rv == 0' failed.
# /usr/bin/timeout: the monitored command dumped core
# Aborted
not ok 5 selftests: proc: proc-empty-vm # exit=134
# selftests: proc: proc-pid-vm
# proc-pid-vm: proc-pid-vm.c:365: main: Assertion `rv == len' failed.
# /usr/bin/timeout: the monitored command dumped core
# Aborted

Please find attached lshw output, dmesg, config and lsmod.

I am available for further diagnostics.

The platform is Ubuntu 22.10 kinetic kudu on a Lenovo Ideapad 3 15ITL6 laptop.

Kind regards,
Mirsad

--
Mirsad Goran Todorovac
Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu
-- 
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb, Republic of Croatia
The European Union

[-- Attachment #2: config-6.2.0-rc2-mglru-kmemlk-nokasan+.xz --]
[-- Type: application/x-xz, Size: 44904 bytes --]

[-- Attachment #3: dmesg.log.xz --]
[-- Type: application/x-xz, Size: 26936 bytes --]

[-- Attachment #4: lshw.txt.xz --]
[-- Type: application/x-xz, Size: 5184 bytes --]

[-- Attachment #5: lsmod.txt.xz --]
[-- Type: application/x-xz, Size: 3412 bytes --]

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

* Re: BUG: core dump in selftest of proc fs
  2023-01-04 18:27 BUG: core dump in selftest of proc fs Mirsad Goran Todorovac
@ 2023-01-04 18:36 ` Alexey Dobriyan
  2023-01-06 13:49   ` Mirsad Goran Todorovac
  2023-01-06 10:39 ` Alexey Dobriyan
  2023-01-06 19:30 ` [PATCH] proc: fix PIE proc-empty-vm, proc-pid-vm tests Alexey Dobriyan
  2 siblings, 1 reply; 9+ messages in thread
From: Alexey Dobriyan @ 2023-01-04 18:36 UTC (permalink / raw)
  To: Mirsad Goran Todorovac
  Cc: linux-kselftest, Shuah Khan, Andrew Morton, Brian Foster,
	Guo Zhengkui, linux-fsdevel, linux-kernel, Thorsten Leemhuis

On Wed, Jan 04, 2023 at 07:27:40PM +0100, Mirsad Goran Todorovac wrote:
> Trying to complete `make kselftest` for the first time, so maybe I'm doing something wrong?
> 
> Or we are having a regression in 6.2-rc2 release candidate ...
> 
> However, the output of selftest run is:

> # proc-empty-vm: proc-empty-vm.c:184: test_proc_pid_maps: Assertion `rv == 0' failed.
> # /usr/bin/timeout: the monitored command dumped core
> # Aborted
> not ok 5 selftests: proc: proc-empty-vm # exit=134
> # selftests: proc: proc-pid-vm
> # proc-pid-vm: proc-pid-vm.c:365: main: Assertion `rv == len' failed.
> # /usr/bin/timeout: the monitored command dumped core
> # Aborted
> 
> Please find attached lshw output, dmesg, config and lsmod.
> 
> I am available for further diagnostics.
> 
> The platform is Ubuntu 22.10 kinetic kudu on a Lenovo Ideapad 3 15ITL6 laptop.

What the output of "cat /proc/self/maps" ?

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

* Re: BUG: core dump in selftest of proc fs
  2023-01-04 18:27 BUG: core dump in selftest of proc fs Mirsad Goran Todorovac
  2023-01-04 18:36 ` Alexey Dobriyan
@ 2023-01-06 10:39 ` Alexey Dobriyan
  2023-01-06 13:53   ` Mirsad Goran Todorovac
  2023-01-06 19:30 ` [PATCH] proc: fix PIE proc-empty-vm, proc-pid-vm tests Alexey Dobriyan
  2 siblings, 1 reply; 9+ messages in thread
From: Alexey Dobriyan @ 2023-01-06 10:39 UTC (permalink / raw)
  To: Mirsad Goran Todorovac
  Cc: linux-kselftest, Shuah Khan, Andrew Morton, Brian Foster,
	Guo Zhengkui, linux-fsdevel, linux-kernel, Thorsten Leemhuis

On Wed, Jan 04, 2023 at 07:27:40PM +0100, Mirsad Goran Todorovac wrote:
> Dear all,
> 
> Trying to complete `make kselftest` for the first time, so maybe I'm doing something wrong?
> 
> Or we are having a regression in 6.2-rc2 release candidate ...
> 
> However, the output of selftest run is:
> 
> make[2]: Entering directory '.../linux_torvalds/tools/testing/selftests/proc'
> TAP version 13
> 1..21
> # selftests: proc: fd-001-lookup
> ok 1 selftests: proc: fd-001-lookup
> # selftests: proc: fd-002-posix-eq
> ok 2 selftests: proc: fd-002-posix-eq
> # selftests: proc: fd-003-kthread
> ok 3 selftests: proc: fd-003-kthread
> # selftests: proc: proc-loadavg-001
> ok 4 selftests: proc: proc-loadavg-001
> # selftests: proc: proc-empty-vm
> # proc-empty-vm: proc-empty-vm.c:184: test_proc_pid_maps: Assertion `rv == 0' failed.
> # /usr/bin/timeout: the monitored command dumped core
> # Aborted
> not ok 5 selftests: proc: proc-empty-vm # exit=134
> # selftests: proc: proc-pid-vm
> # proc-pid-vm: proc-pid-vm.c:365: main: Assertion `rv == len' failed.
> # /usr/bin/timeout: the monitored command dumped core
> # Aborted
> 
> Please find attached lshw output, dmesg, config and lsmod.
> 
> I am available for further diagnostics.
> 
> The platform is Ubuntu 22.10 kinetic kudu on a Lenovo Ideapad 3 15ITL6 laptop.

The "bug" is that "call rel32" instruction testing for executable
vsyscall page which should be relocated to "call 0xffffffffff600000"
is messed up. Ubuntu 22.10 ships with "vsyscall=xonly" so there should not be
any faults when executing from it. But segfault happens with normal
randomised userspace address.

I'll change it to "call *rax" which should be more robust (and works)
and free from relocations.

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

* Re: BUG: core dump in selftest of proc fs
  2023-01-04 18:36 ` Alexey Dobriyan
@ 2023-01-06 13:49   ` Mirsad Goran Todorovac
  0 siblings, 0 replies; 9+ messages in thread
From: Mirsad Goran Todorovac @ 2023-01-06 13:49 UTC (permalink / raw)
  To: Alexey Dobriyan
  Cc: linux-kselftest, Shuah Khan, Andrew Morton, Brian Foster,
	Guo Zhengkui, linux-fsdevel, linux-kernel, Thorsten Leemhuis

On 04. 01. 2023. 19:36, Alexey Dobriyan wrote:
> On Wed, Jan 04, 2023 at 07:27:40PM +0100, Mirsad Goran Todorovac wrote:
>> Trying to complete `make kselftest` for the first time, so maybe I'm doing something wrong?
>>
>> Or we are having a regression in 6.2-rc2 release candidate ...
>>
>> However, the output of selftest run is:
> 
>> # proc-empty-vm: proc-empty-vm.c:184: test_proc_pid_maps: Assertion `rv == 0' failed.
>> # /usr/bin/timeout: the monitored command dumped core
>> # Aborted
>> not ok 5 selftests: proc: proc-empty-vm # exit=134
>> # selftests: proc: proc-pid-vm
>> # proc-pid-vm: proc-pid-vm.c:365: main: Assertion `rv == len' failed.
>> # /usr/bin/timeout: the monitored command dumped core
>> # Aborted
>>
>> Please find attached lshw output, dmesg, config and lsmod.
>>
>> I am available for further diagnostics.
>>
>> The platform is Ubuntu 22.10 kinetic kudu on a Lenovo Ideapad 3 15ITL6 laptop.
> 
> What the output of "cat /proc/self/maps" ?

root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds# cat /proc/self/maps
5606e3099000-5606e309b000 r--p 00000000 103:04 5505728                   /usr/bin/cat
5606e309b000-5606e309f000 r-xp 00002000 103:04 5505728                   /usr/bin/cat
5606e309f000-5606e30a1000 r--p 00006000 103:04 5505728                   /usr/bin/cat
5606e30a1000-5606e30a2000 r--p 00007000 103:04 5505728                   /usr/bin/cat
5606e30a2000-5606e30a3000 rw-p 00008000 103:04 5505728                   /usr/bin/cat
5606e4804000-5606e4825000 rw-p 00000000 00:00 0                          [heap]
7f9833400000-7f9833c42000 r--p 00000000 103:04 5505206                   /usr/lib/locale/locale-archive
7f9833e00000-7f9833e22000 r--p 00000000 103:04 5506045                   /usr/lib/x86_64-linux-gnu/libc.so.6
7f9833e22000-7f9833f9b000 r-xp 00022000 103:04 5506045                   /usr/lib/x86_64-linux-gnu/libc.so.6
7f9833f9b000-7f9833ff2000 r--p 0019b000 103:04 5506045                   /usr/lib/x86_64-linux-gnu/libc.so.6
7f9833ff2000-7f9833ff6000 r--p 001f1000 103:04 5506045                   /usr/lib/x86_64-linux-gnu/libc.so.6
7f9833ff6000-7f9833ff8000 rw-p 001f5000 103:04 5506045                   /usr/lib/x86_64-linux-gnu/libc.so.6
7f9833ff8000-7f9834005000 rw-p 00000000 00:00 0
7f983401e000-7f9834040000 rw-p 00000000 00:00 0
7f9834040000-7f9834097000 r--p 00000000 103:04 5636099                   /usr/lib/locale/C.utf8/LC_CTYPE
7f9834097000-7f983409a000 rw-p 00000000 00:00 0
7f983409d000-7f983409e000 r--p 00000000 103:04 5636115                   /usr/lib/locale/C.utf8/LC_NUMERIC
7f983409e000-7f983409f000 r--p 00000000 103:04 5636123                   /usr/lib/locale/C.utf8/LC_TIME
7f983409f000-7f98340a0000 r--p 00000000 103:04 5636098                   /usr/lib/locale/C.utf8/LC_COLLATE
7f98340a0000-7f98340a1000 r--p 00000000 103:04 5636111                   /usr/lib/locale/C.utf8/LC_MONETARY
7f98340a1000-7f98340a2000 r--p 00000000 103:04 5636109                   /usr/lib/locale/C.utf8/LC_MESSAGES/SYS_LC_MESSAGES
7f98340a2000-7f98340a3000 r--p 00000000 103:04 5636117                   /usr/lib/locale/C.utf8/LC_PAPER
7f98340a3000-7f98340a4000 r--p 00000000 103:04 5636113                   /usr/lib/locale/C.utf8/LC_NAME
7f98340a4000-7f98340a5000 r--p 00000000 103:04 5636097                   /usr/lib/locale/C.utf8/LC_ADDRESS
7f98340a5000-7f98340a6000 r--p 00000000 103:04 5636121                   /usr/lib/locale/C.utf8/LC_TELEPHONE
7f98340a6000-7f98340a7000 r--p 00000000 103:04 5636107                   /usr/lib/locale/C.utf8/LC_MEASUREMENT
7f98340a7000-7f98340ae000 r--s 00000000 103:04 6164284                   /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
7f98340ae000-7f98340af000 r--p 00000000 103:04 5636106                   /usr/lib/locale/C.utf8/LC_IDENTIFICATION
7f98340af000-7f98340b1000 rw-p 00000000 00:00 0
7f98340b1000-7f98340b2000 r--p 00000000 103:04 5505669                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7f98340b2000-7f98340db000 r-xp 00001000 103:04 5505669                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7f98340db000-7f98340e5000 r--p 0002a000 103:04 5505669                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7f98340e5000-7f98340e7000 r--p 00034000 103:04 5505669                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7f98340e7000-7f98340e9000 rw-p 00036000 103:04 5505669                   /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
7ffd0e771000-7ffd0e792000 rw-p 00000000 00:00 0                          [stack]
7ffd0e7ec000-7ffd0e7f0000 r--p 00000000 00:00 0                          [vvar]
7ffd0e7f0000-7ffd0e7f2000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0                  [vsyscall]
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds#

Sorry, overlooked your reply in the bunch of msgs. :(

Thanks,
Mirsad

--
Mirsad Goran Todorovac
Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu
-- 
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb, Republic of Croatia
The European Union


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

* Re: BUG: core dump in selftest of proc fs
  2023-01-06 10:39 ` Alexey Dobriyan
@ 2023-01-06 13:53   ` Mirsad Goran Todorovac
  0 siblings, 0 replies; 9+ messages in thread
From: Mirsad Goran Todorovac @ 2023-01-06 13:53 UTC (permalink / raw)
  To: Alexey Dobriyan
  Cc: linux-kselftest, Shuah Khan, Andrew Morton, Brian Foster,
	Guo Zhengkui, linux-fsdevel, linux-kernel, Thorsten Leemhuis

On 06. 01. 2023. 11:39, Alexey Dobriyan wrote:
> On Wed, Jan 04, 2023 at 07:27:40PM +0100, Mirsad Goran Todorovac wrote:
>> Dear all,
>>
>> Trying to complete `make kselftest` for the first time, so maybe I'm doing something wrong?
>>
>> Or we are having a regression in 6.2-rc2 release candidate ...
>>
>> However, the output of selftest run is:
>>
>> make[2]: Entering directory '.../linux_torvalds/tools/testing/selftests/proc'
>> TAP version 13
>> 1..21
>> # selftests: proc: fd-001-lookup
>> ok 1 selftests: proc: fd-001-lookup
>> # selftests: proc: fd-002-posix-eq
>> ok 2 selftests: proc: fd-002-posix-eq
>> # selftests: proc: fd-003-kthread
>> ok 3 selftests: proc: fd-003-kthread
>> # selftests: proc: proc-loadavg-001
>> ok 4 selftests: proc: proc-loadavg-001
>> # selftests: proc: proc-empty-vm
>> # proc-empty-vm: proc-empty-vm.c:184: test_proc_pid_maps: Assertion `rv == 0' failed.
>> # /usr/bin/timeout: the monitored command dumped core
>> # Aborted
>> not ok 5 selftests: proc: proc-empty-vm # exit=134
>> # selftests: proc: proc-pid-vm
>> # proc-pid-vm: proc-pid-vm.c:365: main: Assertion `rv == len' failed.
>> # /usr/bin/timeout: the monitored command dumped core
>> # Aborted
>>
>> Please find attached lshw output, dmesg, config and lsmod.
>>
>> I am available for further diagnostics.
>>
>> The platform is Ubuntu 22.10 kinetic kudu on a Lenovo Ideapad 3 15ITL6 laptop.
> 
> The "bug" is that "call rel32" instruction testing for executable
> vsyscall page which should be relocated to "call 0xffffffffff600000"
> is messed up. Ubuntu 22.10 ships with "vsyscall=xonly" so there should not be
> any faults when executing from it. But segfault happens with normal
> randomised userspace address.
> 
> I'll change it to "call *rax" which should be more robust (and works)
> and free from relocations.

If you will need to test the patch in the same environment where the problem initially
occurred, I am ready at your disposal.

Thanks,
Mirsad

--
Mirsad Goran Todorovac
Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu
-- 
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb, Republic of Croatia
The European Union


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

* [PATCH] proc: fix PIE proc-empty-vm, proc-pid-vm tests
  2023-01-04 18:27 BUG: core dump in selftest of proc fs Mirsad Goran Todorovac
  2023-01-04 18:36 ` Alexey Dobriyan
  2023-01-06 10:39 ` Alexey Dobriyan
@ 2023-01-06 19:30 ` Alexey Dobriyan
  2023-01-06 20:53   ` Mirsad Goran Todorovac
  2023-01-06 21:18   ` BUG: assert spuriously fails in selftest/proc/proc-uptime-001.c Mirsad Goran Todorovac
  2 siblings, 2 replies; 9+ messages in thread
From: Alexey Dobriyan @ 2023-01-06 19:30 UTC (permalink / raw)
  To: Andrew Morton
  Cc: linux-kselftest, Shuah Khan, Mirsad Goran Todorovac,
	Brian Foster, Guo Zhengkui, linux-fsdevel, linux-kernel,
	Thorsten Leemhuis

vsyscall detection code uses direct call to the beginning of
the vsyscall page:

	asm ("call %P0" :: "i" (0xffffffffff600000))

It generates "call rel32" instruction but it is not relocated if binary
is PIE, so binary segfaults into random userspace address and vsyscall
page status is detected incorrectly.

Do more direct:

	asm ("call *%rax")

which doesn't do need any relocaltions.

Mark g_vsyscall as volatile for a good measure, I didn't find instruction
setting it to 0. Now the code is obviously correct:

	xor	eax, eax
	mov	rdi, rbp
	mov	rsi, rbp
	mov	DWORD PTR [rip+0x2d15], eax      # g_vsyscall = 0
	mov	rax, 0xffffffffff600000
	call	rax
	mov	DWORD PTR [rip+0x2d02], 1        # g_vsyscall = 1
	mov	eax, DWORD PTR ds:0xffffffffff600000
	mov	DWORD PTR [rip+0x2cf1], 2        # g_vsyscall = 2
	mov	edi, [rip+0x2ceb]                # exit(g_vsyscall)
	call	exit

Note: fixed proc-empty-vm test oopses 5.19.0-28-generic kernel
	but this is separate story.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
---

 tools/testing/selftests/proc/proc-empty-vm.c |   12 +++++++-----
 tools/testing/selftests/proc/proc-pid-vm.c   |    9 +++++----
 2 files changed, 12 insertions(+), 9 deletions(-)

--- a/tools/testing/selftests/proc/proc-empty-vm.c
+++ b/tools/testing/selftests/proc/proc-empty-vm.c
@@ -25,6 +25,7 @@
 #undef NDEBUG
 #include <assert.h>
 #include <errno.h>
+#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -41,7 +42,7 @@
  * 1: vsyscall VMA is --xp		vsyscall=xonly
  * 2: vsyscall VMA is r-xp		vsyscall=emulate
  */
-static int g_vsyscall;
+static volatile int g_vsyscall;
 static const char *g_proc_pid_maps_vsyscall;
 static const char *g_proc_pid_smaps_vsyscall;
 
@@ -147,11 +148,12 @@ static void vsyscall(void)
 
 		g_vsyscall = 0;
 		/* gettimeofday(NULL, NULL); */
+		uint64_t rax = 0xffffffffff600000;
 		asm volatile (
-			"call %P0"
-			:
-			: "i" (0xffffffffff600000), "D" (NULL), "S" (NULL)
-			: "rax", "rcx", "r11"
+			"call *%[rax]"
+			: [rax] "+a" (rax)
+			: "D" (NULL), "S" (NULL)
+			: "rcx", "r11"
 		);
 
 		g_vsyscall = 1;
--- a/tools/testing/selftests/proc/proc-pid-vm.c
+++ b/tools/testing/selftests/proc/proc-pid-vm.c
@@ -257,11 +257,12 @@ static void vsyscall(void)
 
 		g_vsyscall = 0;
 		/* gettimeofday(NULL, NULL); */
+		uint64_t rax = 0xffffffffff600000;
 		asm volatile (
-			"call %P0"
-			:
-			: "i" (0xffffffffff600000), "D" (NULL), "S" (NULL)
-			: "rax", "rcx", "r11"
+			"call *%[rax]"
+			: [rax] "+a" (rax)
+			: "D" (NULL), "S" (NULL)
+			: "rcx", "r11"
 		);
 
 		g_vsyscall = 1;

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

* Re: [PATCH] proc: fix PIE proc-empty-vm, proc-pid-vm tests
  2023-01-06 19:30 ` [PATCH] proc: fix PIE proc-empty-vm, proc-pid-vm tests Alexey Dobriyan
@ 2023-01-06 20:53   ` Mirsad Goran Todorovac
  2023-01-06 21:18   ` BUG: assert spuriously fails in selftest/proc/proc-uptime-001.c Mirsad Goran Todorovac
  1 sibling, 0 replies; 9+ messages in thread
From: Mirsad Goran Todorovac @ 2023-01-06 20:53 UTC (permalink / raw)
  To: Alexey Dobriyan, Andrew Morton
  Cc: linux-kselftest, Shuah Khan, Brian Foster, Guo Zhengkui,
	linux-fsdevel, linux-kernel, Thorsten Leemhuis

Hi,

On 06. 01. 2023. 20:30, Alexey Dobriyan wrote:
> vsyscall detection code uses direct call to the beginning of
> the vsyscall page:
> 
> 	asm ("call %P0" :: "i" (0xffffffffff600000))
> 
> It generates "call rel32" instruction but it is not relocated if binary
> is PIE, so binary segfaults into random userspace address and vsyscall
> page status is detected incorrectly.
> 
> Do more direct:
> 
> 	asm ("call *%rax")
> 
> which doesn't do need any relocaltions.
> 
> Mark g_vsyscall as volatile for a good measure, I didn't find instruction
> setting it to 0. Now the code is obviously correct:
> 
> 	xor	eax, eax
> 	mov	rdi, rbp
> 	mov	rsi, rbp
> 	mov	DWORD PTR [rip+0x2d15], eax      # g_vsyscall = 0
> 	mov	rax, 0xffffffffff600000
> 	call	rax
> 	mov	DWORD PTR [rip+0x2d02], 1        # g_vsyscall = 1
> 	mov	eax, DWORD PTR ds:0xffffffffff600000
> 	mov	DWORD PTR [rip+0x2cf1], 2        # g_vsyscall = 2
> 	mov	edi, [rip+0x2ceb]                # exit(g_vsyscall)
> 	call	exit
> 
> Note: fixed proc-empty-vm test oopses 5.19.0-28-generic kernel
> 	but this is separate story.
> 
> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
> Reported-by: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
> ---
> 
>   tools/testing/selftests/proc/proc-empty-vm.c |   12 +++++++-----
>   tools/testing/selftests/proc/proc-pid-vm.c   |    9 +++++----
>   2 files changed, 12 insertions(+), 9 deletions(-)
> 
> --- a/tools/testing/selftests/proc/proc-empty-vm.c
> +++ b/tools/testing/selftests/proc/proc-empty-vm.c
> @@ -25,6 +25,7 @@
>   #undef NDEBUG
>   #include <assert.h>
>   #include <errno.h>
> +#include <stdint.h>
>   #include <stdio.h>
>   #include <stdlib.h>
>   #include <string.h>
> @@ -41,7 +42,7 @@
>    * 1: vsyscall VMA is --xp		vsyscall=xonly
>    * 2: vsyscall VMA is r-xp		vsyscall=emulate
>    */
> -static int g_vsyscall;
> +static volatile int g_vsyscall;
>   static const char *g_proc_pid_maps_vsyscall;
>   static const char *g_proc_pid_smaps_vsyscall;
>   
> @@ -147,11 +148,12 @@ static void vsyscall(void)
>   
>   		g_vsyscall = 0;
>   		/* gettimeofday(NULL, NULL); */
> +		uint64_t rax = 0xffffffffff600000;
>   		asm volatile (
> -			"call %P0"
> -			:
> -			: "i" (0xffffffffff600000), "D" (NULL), "S" (NULL)
nt> -			: "rax", "rcx", "r11"
> +			"call *%[rax]"
> +			: [rax] "+a" (rax)
> +			: "D" (NULL), "S" (NULL)
> +			: "rcx", "r11"
>   		);
>   
>   		g_vsyscall = 1;
> --- a/tools/testing/selftests/proc/proc-pid-vm.c
> +++ b/tools/testing/selftests/proc/proc-pid-vm.c
> @@ -257,11 +257,12 @@ static void vsyscall(void)
>   
>   		g_vsyscall = 0;
>   		/* gettimeofday(NULL, NULL); */
> +		uint64_t rax = 0xffffffffff600000;
>   		asm volatile (
> -			"call %P0"
> -			:
> -			: "i" (0xffffffffff600000), "D" (NULL), "S" (NULL)
> -			: "rax", "rcx", "r11"
> +			"call *%[rax]"
> +			: [rax] "+a" (rax)
> +			: "D" (NULL), "S" (NULL)
> +			: "rcx", "r11"
>   		);
>   
>   		g_vsyscall = 1;

I can confirm that the patch fixed the core dump in the exact environment that
used to reproduce the bug.

Apparently, it seems that gcc 12.2.0 -O2 optimiser on Ubuntu 22.10 kinetic kudu
did some new creative stuff to Alexey's code. For someone interested, I have saved the
assembly with and w/o -O2 ...

However, I have just found some spurious bug in proc-uptime-001.

But, this is another story ...

Thanks,
Mirsad

--
Mirsad Goran Todorovac
Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu
-- 
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb, Republic of Croatia
The European Union


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

* BUG: assert spuriously fails in selftest/proc/proc-uptime-001.c
  2023-01-06 19:30 ` [PATCH] proc: fix PIE proc-empty-vm, proc-pid-vm tests Alexey Dobriyan
  2023-01-06 20:53   ` Mirsad Goran Todorovac
@ 2023-01-06 21:18   ` Mirsad Goran Todorovac
  2023-01-06 22:06     ` Mirsad Goran Todorovac
  1 sibling, 1 reply; 9+ messages in thread
From: Mirsad Goran Todorovac @ 2023-01-06 21:18 UTC (permalink / raw)
  To: Alexey Dobriyan
  Cc: linux-kselftest, Shuah Khan, Brian Foster, Guo Zhengkui,
	linux-fsdevel, linux-kernel, Thorsten Leemhuis, Andrew Morton

Hi all,

In the same environment as the previous bug report (Lenovo Ideapad 3 15ITL6 laptop
running Ubuntu 22.10 kinetic kudu and 6.2-rc2 vanilla Torvalds tree kernel), the
next test in the ...selftest/proc/* sequence spuriously fails in assert (i1 <= i0).

Please note that the compiler is the novelty GCC 12.2.0-3ubuntu1.

This was previously hidden by premature hang in the `make kselftest` run due to
proc-empty-vm an proc-pid-vm problems that are now fixed.

root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001

It happens about half of the times the program is called.

The source seems OK, I can't tell why the idle counter doesn't look monotonic to
the program.

Hope this helps.

BTW, good news: this time I have checked independently, and this is the last test from the .../selftest/proc
group that doesn't have clean exit code 0.

Thanks,
Mirsad

--
Mirsad Goran Todorovac
Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu
-- 
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb, Republic of Croatia
The European Union


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

* Re: BUG: assert spuriously fails in selftest/proc/proc-uptime-001.c
  2023-01-06 21:18   ` BUG: assert spuriously fails in selftest/proc/proc-uptime-001.c Mirsad Goran Todorovac
@ 2023-01-06 22:06     ` Mirsad Goran Todorovac
  0 siblings, 0 replies; 9+ messages in thread
From: Mirsad Goran Todorovac @ 2023-01-06 22:06 UTC (permalink / raw)
  To: Alexey Dobriyan
  Cc: linux-kselftest, Shuah Khan, Brian Foster, Guo Zhengkui,
	linux-fsdevel, linux-kernel, Thorsten Leemhuis, Andrew Morton

On 06. 01. 2023. 22:18, Mirsad Goran Todorovac wrote:
> Hi all,
> 
> In the same environment as the previous bug report (Lenovo Ideapad 3 15ITL6 laptop
> running Ubuntu 22.10 kinetic kudu and 6.2-rc2 vanilla Torvalds tree kernel), the
> next test in the ...selftest/proc/* sequence spuriously fails in assert (i1 <= i0).
> 
> Please note that the compiler is the novelty GCC 12.2.0-3ubuntu1.
> 
> This was previously hidden by premature hang in the `make kselftest` run due to
> proc-empty-vm an proc-pid-vm problems that are now fixed.
> 
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
> Aborted (core dumped)
> root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
> 
> It happens about half of the times the program is called.
> 
> The source seems OK, I can't tell why the idle counter doesn't look monotonic to
> the program.
> 
> Hope this helps.
> 
> BTW, good news: this time I have checked independently, and this is the last test from the .../selftest/proc
> group that doesn't have clean exit code 0.

UPDATE:

The same behavior independently occurred with GCC 10.4.0, 9.5.0, 8.5.0 and 6.5.0.

Apparently this happens in 30% to 50% of attempts. Perhaps that's why it wasn't discovered yet:

root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# make CC=gcc-10
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   fd-001-lookup.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/fd-001-lookup
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   fd-002-posix-eq.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/fd-002-posix-eq
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   fd-003-kthread.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/fd-003-kthread
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-loadavg-001.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-loadavg-001
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-empty-vm.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-empty-vm
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-pid-vm.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-pid-vm
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-self-map-files-001.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-self-map-files-001
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-self-map-files-002.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-self-map-files-002
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-self-syscall.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-self-syscall
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-self-wchan.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-self-wchan
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-subset-pid.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-subset-pid
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-tid0.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-tid0
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-uptime-001.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-uptime-001
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-uptime-002.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-uptime-002
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   read.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/read
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   self.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/self
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   setns-dcache.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/setns-dcache
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   setns-sysvipc.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/setns-sysvipc
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   thread-self.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/thread-self
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-multiple-procfs.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-multiple-procfs
gcc-10 -Wall -O2 -Wno-unused-function -D_GNU_SOURCE   -pthread   proc-fsconfig-hidepid.c  -o 
/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc/proc-fsconfig-hidepid
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# for exe in `ls -l | grep -e -x | 
awk '{ print $9 }'`; do echo -n ${exe}':'; ./$exe ; echo "exit=$?" ; done
fd-001-lookup:exit=0
fd-002-posix-eq:exit=0
fd-003-kthread:exit=0
proc-empty-vm:exit=0
proc-fsconfig-hidepid:exit=0
proc-loadavg-001:exit=0
proc-multiple-procfs:exit=0
proc-pid-vm:exit=0
proc-self-map-files-001:exit=0
proc-self-map-files-002:exit=0
proc-self-syscall:exit=0
proc-self-wchan:exit=0
proc-subset-pid:exit=0
proc-tid0:exit=0
proc-uptime-001:exit=0
proc-uptime-002:exit=0
read:exit=0
self:exit=0
setns-dcache:exit=0
setns-sysvipc:exit=0
thread-self:exit=0
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
proc-uptime-001: proc-uptime-001.c:39: main: Assertion `i1 >= i0' failed.
Aborted (core dumped)
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001
root@marvin-IdeaPad-3-15ITL6:/home/marvin/linux/kernel/linux_torvalds/tools/testing/selftests/proc# ./proc-uptime-001

The conclusion (to state the obvious) is that the GCC 12.2.0 optimisations are
not the culprit this time :-/

Thanks,
Mirsad

--
Mirsad Goran Todorovac
Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu
-- 
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb, Republic of Croatia
The European Union


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

end of thread, other threads:[~2023-01-06 22:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-04 18:27 BUG: core dump in selftest of proc fs Mirsad Goran Todorovac
2023-01-04 18:36 ` Alexey Dobriyan
2023-01-06 13:49   ` Mirsad Goran Todorovac
2023-01-06 10:39 ` Alexey Dobriyan
2023-01-06 13:53   ` Mirsad Goran Todorovac
2023-01-06 19:30 ` [PATCH] proc: fix PIE proc-empty-vm, proc-pid-vm tests Alexey Dobriyan
2023-01-06 20:53   ` Mirsad Goran Todorovac
2023-01-06 21:18   ` BUG: assert spuriously fails in selftest/proc/proc-uptime-001.c Mirsad Goran Todorovac
2023-01-06 22:06     ` Mirsad Goran Todorovac

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