Date: Mon, 30 Jul 2012 21:39:17 +0100 From: Attilio Rao <attilio@freebsd.org> To: Andriy Gapon <avg@freebsd.org> Cc: Konstantin Belousov <kostikbel@gmail.com>, Davide Italiano <davide@freebsd.org>, src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern Message-ID: <CAJ-FndB0zc-TC0E=H4p1qcOB4ngEWtwXoyhScf68G8i0p5UErw@mail.gmail.com> In-Reply-To: <5016A8E4.7070405@FreeBSD.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <CAJ-FndBJNNBNDUEDsDBUvwoVExZpnXmoJmpY58gE3QQbw3hRGA@mail.gmail.com> <CACYV=-HmOwZ=E8Pw3-mUw0994SbvZaA3eMfcwM0fDTu_zykBJg@mail.gmail.com> <CAJ-FndBmXkyJJ=fCkEpVm84E56A2_EoM6kbch03e4RMEM6WCGQ@mail.gmail.com> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <CAJ-FndByYcZ%2BUhnkFT_n2=W=UheqUCi0%2BUAX%2BF07EqbVU=6iDQ@mail.gmail.com> <CAJ-FndCQ6HGAfFdjofNfJ%2BHeNaE7uqoNhJB9GH4pGFxyZ_1yLg@mail.gmail.com> <5016A21B.6090409@FreeBSD.org> <CAJ-FndCFjZP=0ThpMxy6WSDQAZOm0TRkyu0bWfxVBwtT-h%2B1cA@mail.gmail.com> <5016A8E4.7070405@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jul 30, 2012 at 4:31 PM, Andriy Gapon <avg@freebsd.org> wrote: > on 30/07/2012 18:04 Attilio Rao said the following: >> On 7/30/12, Andriy Gapon <avg@freebsd.org> wrote: >>> on 30/07/2012 17:56 Attilio Rao said the following: >>>> More explicitly, I think such combination TDP_NOSLEEPING + >>>> TDP_NOBLOCKING (name invented) should be set on entering the interrupt >>>> context, not only related to this part of callouts. This would be a >>>> very good help for catching buggy situations. >>> >>> Something very tangential. I think it would also be nice to check if a >>> thread has >>> any(?) locks held when returning to userland. >> >> This happens already for INVARIANTS case, with td_locks counters. >> In the !INVARIANTS case, this doesn't happen because you don't want to >> add the burden to bump td_locks for the fast case and I think it is a >> good approach. > > Ah, I missed that, thank you. > BTW, it seems that td_locks is checked twice in normal syscallret() path: once in > syscallret() itself and then in userret(). On this note, would it make sense to > move the whole nine yards of asserts from syscallret() to userret()? > I mean it might make sense to have those checks (td_critnest, td_pflags) in other > paths to userland. Nice catch. The checks were added to syscallret() in r208453. While this is fine, I think that putting them in userret() may give them more exposure and cover also cases like traps which are not covered right now. If you want to make a patch that moves these conditions in userret() I'd be in favor of it. Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-FndB0zc-TC0E=H4p1qcOB4ngEWtwXoyhScf68G8i0p5UErw>