On Sun, 2017-11-05 at 11:24 -0800, Conrad Meyer wrote: > On Sun, Nov 5, 2017 at 11:13 AM, Andriy Gapon <a...@freebsd.org> wrote: > > > > I guess (only guess) that Conrad is saying that it would be useful to have a > > macro like KASSERT but which would be always active regardless of > > INVARIANTS. > > E.g. in illumos they have ASSERT and VERIFY. > Yes, exactly. There are numerous places in the kernel where we have > essentially an unrolled version of that idea, with if + panic. > > Best, > Conrad >
IMO, the only reason ASSERT-style macros exist is to hide the conditional-on-build-type part of the operation. That is, to avoid having #ifdef INVARIANTS scattered everywhere. Creating a macro to generate always-on error detection and reporting code just because there exists a macro to do so conditionally seems to turn the world on its head. Sure, there is a lot of 'if (condition) panic("msg")' in the source. There is also a lot of stuff like 'if (error != 0) return (ENXIO)", so should we have a macro for that too? Where does it end? Since I suspect my opinion will be a minority of 1-ish, I'd like to follow up with a suggestion that the new macro at least get a name that includes the word 'panic', such as PANIC_IF(). Something that can be found in the source with: grep -i panic.*message.I.saw -- Ian _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"