On Sat, 28 Feb 2004, Kris Kennaway wrote: > On Sat, Feb 28, 2004 at 11:34:58PM +0100, Poul-Henning Kamp wrote: > > > > On a -current kernel from this morning, I ran a "make -j 12 -s buildworld". > > > > At some point I pressed ctrl-Z and it started spitting tons of > > failed to set signal flags properly for ast() > > out on the serial console, but after about a minute it stopped and the system > > continued. > > I've been reporting this for a year or so..no-one seems to be too > interested in tracking it down. I tracked it down, but no one replied. Basically, the SIGPENDING() check is not strict enough, or issignal() doesn't do enough. issignal() can return with signals pending according to SIGPENDING(). Then the next userret() will report problems unless something in between sets TDF_ASTPENDING and TDF_NEEDSIGCHK again to schedule another (null) call to issignal(). The problem can't be fixed simply by removing the diagnostic, since lots of places use SIGPENDING() to determine whether they should set the TDF flags. But setting the TDF flags unnecessarily is just a pessimization, and nothing seems to break if the diagnostic is turned off, so it seems that the diagnostic is just about the pessimization. BruceReceived on Sat Feb 28 2004 - 19:32:34 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:45 UTC