On Friday, February 15, 2013 11:31:11 pm Marc Fournier wrote:
> 
> Trying the patch now … but what do you mean by using 'SIGSTOP'?  I generally
> do a 'kill -HUP' then when that doesn't work 'kill -9' … should Iuse -STOP
> instead of 9?

No.  This patch only helps if you are using kill -STOP to pause processes and
later resume them.  If you aren't doing that, then the suspension could be due
to a different cause.  Please try this patch instead and let me know if you
see any of the 'Deferring' messages on the console:

Index: kern_thread.c
===================================================================
--- kern_thread.c       (revision 246122)
+++ kern_thread.c       (working copy)
@@ -794,7 +794,30 @@ thread_suspend_check(int return_instead)
                    (p->p_flag & P_SINGLE_BOUNDARY) && return_instead)
                        return (ERESTART);
 
+#if 0
                /*
+                * Ignore suspend requests for stop signals if they
+                * are deferred.
+                */
+               if (P_SHOULDSTOP(p) == P_STOPPED_SIG &&
+                   td->td_flags & TDF_SBDRY) {
+                       KASSERT(return_instead,
+                           ("TDF_SBDRY set for unsafe thread_suspend_check"));
+                       return (0);
+               }
+#else
+               /* Ignore syspend requests if stops are deferred. */
+               if (td->td_flags & TDF_SBDRY) {
+                       if (!return_instead)
+                               panic("TDF_SBDRY set, but return_instead not");
+                       if (P_SHOULDSTOP(p) != P_STOPPED_SIG)
+                               printf("Deferring non-STOP suspension: 
SHOULDSTOP: %x p_flag %x\n",
+                                   P_SHOULDSTOP(p), p->p_flag);
+                       return (0);
+               }
+#endif
+
+               /*
                 * If the process is waiting for us to exit,
                 * this thread should just suicide.
                 * Assumes that P_SINGLE_EXIT implies P_STOPPED_SINGLE.



-- 
John Baldwin
_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"

Reply via email to