-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, On May 5, 2009, at 4:26 PM, Manuel Bouyer wrote:
Module Name: src Committed By: bouyer Date: Tue May 5 20:26:36 UTC 2009 Modified Files: src/sys/kern: kern_softint.c Log Message: Declare sh_flags volatile.Without it, on ports where splhigh() is inline, the compiler will optimisethe second SOFTINT_PENDING test in softint_schedule(). A dissasemblyof softint_schedule() with and without the volatile sh_flags confirm thison sparc. Because of this there is a race that could lead to the softhand_t being enqueued twice on si_q, leading to a corrupted queue and some handler being SOFTINT_PENDING but never called. Should fix PR kern/38637
That sounds a lot like a problem I'm trying to track down on macppc for a while now ( and yes, spl*() are inlined )
have fun Michael -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (Darwin) iQEVAwUBSgCmk8pnzkX8Yg2nAQIxowgAl3mwniVq9frjWQn8OvuWJ6Xx0XtJ17Uy qRypq7KIgdrKIFvMXopSE9tfL7rbJ9vcw4mEFqb3pj6mdNL2eHc4Hdx+Kzu+2hDa 4C0AWpbC3wwyBniLgN4/KkBcIeyPAGTxWv+RObZB7Y6oRXFp0Q/oSJgx8/1P408Z 8kQ0HIfM1sOUMgE6HGcFKkeNLkDxefiXAZxPur5KoGRx5qkc0An2bh3aSwVz9cIQ QE89C2hU/2wWjheJ0NK8h0l2MH22/IxlfeGE0Krr8Hsjb5Ale8GV0rX2na2dNoDu KfQ97y3UxkFVdf9Y/IypQ/ZNU4dprajRpzNBVaMmrrK+16IlMDXeoA== =fxqj -----END PGP SIGNATURE-----