NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/53202: Kernel hangs running t_ptrace_wait:resume1 test



The following reply was made to PR kern/53202; it has been noted by GNATS.

From: Andreas Gustafsson <gson%gson.org@localhost>
To: Taylor R Campbell <riastradh%NetBSD.org@localhost>
Cc: gnats-bugs%NetBSD.org@localhost
Subject: Re: kern/53202: Kernel hangs running t_ptrace_wait:resume1 test
Date: Wed, 25 Apr 2018 10:32:39 +0300

 Taylor R Campbell wrote:
 >  Does inserting a call to yield() after lwp_unsleep in sleepq_block
 >  change anything, 
 
 I have now run a test with the following patch, plus the two patches
 given in the original PR submission:
 
 Index: src/sys/kern/kern_sleepq.c
 ===================================================================
 RCS file: /bracket/repo/src/sys/kern/kern_sleepq.c,v
 retrieving revision 1.51
 diff -u -r1.51 kern_sleepq.c
 --- src/sys/kern/kern_sleepq.c	3 Jul 2016 14:24:58 -0000	1.51
 +++ src/sys/kern/kern_sleepq.c	24 Apr 2018 17:39:03 -0000
 @@ -257,6 +257,7 @@
  	if (early) {
  		/* lwp_unsleep() will release the lock */
  		lwp_unsleep(l, true);
 +                yield();
  	} else {
  		if (timo) {
  			callout_schedule(&l->l_timeout_ch, timo);
 
 > if we restore the use of cv_wait_sig in lwp_wait?
 
 Instead of applying a fourth patch to -current to restore the use of
 cv_wait_sig, I applied the above three patches to sources from CVS
 date 2018.04.15.00.19.23, when cv_wait_sig was still being used.
 
 I then built and tested an i386 debug build on my own testbed.
 The resume1 tests failed with timeouts, but the test suite now ran to
 completion without hanging, and the other tests that failed are ones
 I have also seen failing in other tests runs around the same source
 date:
 
   kernel/t_timeleft:timeleft__lwp_park
   lib/libc/sys/t_ptrace_wait:resume1
   lib/libc/sys/t_ptrace_wait3:resume1
   lib/libc/sys/t_ptrace_wait4:resume1
   lib/libc/sys/t_ptrace_wait6:resume1
   lib/libc/sys/t_ptrace_waitid:resume1
   lib/libc/sys/t_ptrace_waitpid:resume1
   lib/librumphijack/t_tcpip:nfs_autoload
   usr.bin/cc/t_asan_poison:poison
   usr.bin/cc/t_asan_poison:poison_pic
   usr.bin/cc/t_asan_poison:poison_profile
   usr.bin/c++/t_asan_poison:poison
   usr.bin/c++/t_asan_poison:poison_pic
   usr.bin/c++/t_asan_poison:poison_profile
 
 -- 
 Andreas Gustafsson, gson%gson.org@localhost
 


Home | Main Index | Thread Index | Old Index