Page MenuHomeFreeBSD

stop_all_proc(): skip traced or signal-stoped processes
ClosedPublic

Authored by kib on Thu, Apr 4, 7:39 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 27, 3:17 AM
Unknown Object (File)
Fri, Apr 26, 4:46 AM
Unknown Object (File)
Thu, Apr 11, 10:56 PM
Unknown Object (File)
Sun, Apr 7, 6:54 PM
Unknown Object (File)
Fri, Apr 5, 4:36 PM
Subscribers

Details

Summary
Since thread_single(SINGLE_ALLPROC) ignores them since 9241ebc796c,
and there is not much we can do for the debugger-controlled process.

Noted by:       olce

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kib requested review of this revision.Thu, Apr 4, 7:39 PM

I'm a priori OK with that as a stopgap measure, although I don't really know how still-running processes interact with the suspend/resume mechanism (which problems can this cause? I can imagine a bunch of them, but not sure if they are impacting).

In the longer term, I'd like that we revise the suspension mechanism to register the reason(s) for the suspension(s) and notify all processes/threads requiring the suspension of another. Perhaps this is even not really a requirement to fix the two problems reported in D44523 that lead to the deadlock situation, but I think this would improve confidence in the fact that the machinery works as intended. Although I admit that this may just be a consequence of me still struggling with the signal and suspension mechanisms, I have a growing feeling that it may need a global simplification/re-design. I just can't provide the manpower for all that in the short term, but at least I'll try to stay up-to-date with the changes that you or anybody else may make in these areas.

This revision is now accepted and ready to land.Thu, Apr 4, 8:33 PM