On Fri, 2017-10-13 at 23:38 +0200, Svatopluk Kraus wrote: > MTX_UNOWNED is a flag. You did not change its value from 4 to 0, you > removed it actually. I have very bad feeling about it. But maybe, it's > really possible and in that case, a very good explanation should be > provided. > > Svata >
The part that scares me is that DESTROYED may have been defined as CONTESTED|UNOWNED for subtle and clever reasons lost in the mists of time. Any of the places that are testing the MTX_CONTESTED bit may have been relying somehow on the fact that a destroyed mutex has that bit set. Then again, maybe Mateusz has carefully analyzed all this stuff, and we should just relax. :) -- Ian > > On Fri, Oct 13, 2017 at 10:31 PM, Mateusz Guzik <m...@freebsd.org> > wrote: > > > > Author: mjg > > Date: Fri Oct 13 20:31:56 2017 > > New Revision: 324609 > > URL: https://svnweb.freebsd.org/changeset/base/324609 > > > > Log: > > mtx: change MTX_UNOWNED from 4 to 0 > > > > The value is spread all over the kernel and zeroing a register is > > cheaper/shorter than setting it up to an arbitrary value. > > > > Reduces amd64 GENERIC-NODEBUG .text size by 0.4%. > > > > MFC after: 1 week > > > > Modified: > > head/sys/sys/mutex.h > > > > Modified: head/sys/sys/mutex.h > > =================================================================== > > =========== > > --- head/sys/sys/mutex.h Fri Oct 13 20:29:35 > > 2017 (r324608) > > +++ head/sys/sys/mutex.h Fri Oct 13 20:31:56 > > 2017 (r324609) > > @@ -65,15 +65,11 @@ > > * State bits kept in mutex->mtx_lock, for the DEFAULT lock type. > > None of this, > > * with the exception of MTX_UNOWNED, applies to spin locks. > > */ > > +#define MTX_UNOWNED 0x00000000 /* Cookie for free > > mutex */ > > #define MTX_RECURSED 0x00000001 /* lock recursed > > (for MTX_DEF only) */ > > #define MTX_CONTESTED 0x00000002 /* lock contested > > (for MTX_DEF only) */ > > -#define MTX_UNOWNED 0x00000004 /* Cookie for free mutex */ > > -#define MTX_FLAGMASK (MTX_RECURSED | MTX_CONTESTED | > > MTX_UNOWNED) > > - > > -/* > > - * Value stored in mutex->mtx_lock to denote a destroyed mutex. > > - */ > > -#define MTX_DESTROYED (MTX_CONTESTED | MTX_UNOWNED) > > +#define MTX_DESTROYED 0x00000004 /* lock destroyed > > */ > > +#define MTX_FLAGMASK (MTX_RECURSED | MTX_CONTESTED | > > MTX_DESTROYED) > > > > /* > > * Prototypes > > _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"