Thread: [SSI-devel] Bug 2838006 (Corrupt SHM_LOCK_DEST flag)
Brought to you by:
brucewalker,
rogertsang
From: John H. <john@Calva.COM> - 2010-02-03 10:22:46
|
Currently we have: /* shm_mode upper byte flags */ #define SHM_DEST 01000 /* segment will be destroyed on last detach */ #define SHM_LOCKED 02000 /* segment will not be swapped */ #define SHM_HUGETLB 04000 /* segment will use huge TLB pages */ #ifdef CONFIG_SSI /* SSI_XXX: no room for SHM_LOCK_DEST */ #define SHM_LOCK_DEST 10000 /* obj locked for destroy */ #endif /* CONFIG_SSI */ Naive question - why not just: #define SHM_LOCK_DEST 010000 /* obj locked for destroy */ Would need changing later as at some point the base kernel has: #define SHM_NORESERVE 010000 /* don't check for reservations */ The comment says "upper byte flags", this is true if they're using 9 bit bytes. :-) The low 9 bits are the 3 octal digits of the shm access more "rwx". Above that we have at least a healthy 16-9 = 11 bits available. (shm flags is stored in a mode_t, which is an unsigned short on i386, an unsigned int on x86_64). |
From: John H. <john@Calva.COM> - 2010-02-04 09:56:05
|
John Hughes wrote: > The low 9 bits are the 3 octal digits of the shm access more "rwx". > > Above that we have at least a healthy 16-9 = 11 bits available. What lunatic wrote that? Of course we have 16-9 = 7 bits available. The base kernel uses 3 (eventualy 4) so there are at least 3 bits for us. |
From: Roger T. <rog...@gm...> - 2010-02-04 14:31:59
|
On Thu, Feb 4, 2010 at 4:56 AM, John Hughes <jo...@ca...> wrote: > John Hughes wrote: > > The low 9 bits are the 3 octal digits of the shm access more "rwx". > > > > Above that we have at least a healthy 16-9 = 11 bits available. > What lunatic wrote that? Of course we have 16-9 = 7 bits available. > > The base kernel uses 3 (eventualy 4) so there are at least 3 bits for us. > > Think you are right. Looks like the upper 3-bits are not used in the base. |