On 12/05, caiq...@redhat.com wrote: > > > Yes, it looks good so far. Ptrace tests also does not show any > > regression. > > I said this too early. Looks like step-jump-count started to fail now. > > step-jump-cont: step-jump-cont.c:244: main: Assertion `0' failed. > /bin/sh: line 5: 28212 Aborted ${dir}$tst > FAIL: step-jump-cont
Could you please confirm that if you revert this [PATCH] utrace: don't set ->ops = utrace_detached_ops lockless change the kernel passes the test? This is just impossible that this patch could make any difference for this test-case. > You can login the same machine. Yes, thanks. Unfortunately, I can't extend the reservation. # extendtesttime.sh ... Extending reservation time 48 Unable to connect to server, sleeping 5 seconds... and so on I give up for today. Yes, the test-case fails. It gets SIGSEGV right after we change the instruction pointer to raise_sigusr2. I added printf("%p\n", raise_sigusr2) to print this address, and then disassemled the code under this address: (gdb) disassemble 0x100118c0 Dump of assembler code for function raise_sigusr2: 0x00000000100118c0 <raise_sigusr2+0>: .long 0x0 <---- SIGSEGV 0x00000000100118c4 <raise_sigusr2+4>: .long 0x10000ab0 0x00000000100118c8 <raise_sigusr2+8>: .long 0x0 0x00000000100118cc <raise_sigusr2+12>: vmulosh v0,v1,v19 0x00000000100118d0 <main+0>: .long 0x0 0x00000000100118d4 <main+4>: vmhaddshs v0,v0,v1,v12 0x00000000100118d8 <main+8>: .long 0x0 ... Hmm... this doesn't look like raise_sigusr2(), so I did (gdb) disassemble raise_sigusr2 Dump of assembler code for function raise_sigusr2: 0x0000000010000ab0 <raise_sigusr2+0>: mflr r0 0x0000000010000ab4 <raise_sigusr2+4>: li r3,12 0x0000000010000ab8 <raise_sigusr2+8>: std r0,16(r1) 0x0000000010000abc <raise_sigusr2+12>: stdu r1,-112(r1) 0x0000000010000ac0 <raise_sigusr2+16>: bl 0x10000780 0x0000000010000ac4 <raise_sigusr2+20>: ld r2,40(r1) 0x0000000010000ac8 <raise_sigusr2+24>: cmpdi cr7,r3,0 looks like ppc uses some form of "thunks" for function pointers... Another oddity, the comment says /* PTRACE_GETREGS / PTRACE_SETREGS are not available on ppc. #ifdef PTRACE_GETREGS However, PTRACE_GETREGS is defined, and the testcase does use PTRACE_GETREGS. Perhaps we have some issues with libc or compiler... Did you change anything else (except kernel) on this machine? Oleg.