On 8/9/07, Oliver Yang <Oliver.Yang at sun.com> wrote:
>
> Jonathan Adams wrote:
> > [ snipped...]
> >
> > Looking at the ::kmem_cache output:
> >
> > 32-bit:
> >  >::kmem_cache ! grep streams_dblk_1984
> > cac2e2b0 streams_dblk_1984 020f 000000 2048 9
> >
> > 64-bit
> >  > ::kmem_cache ! grep streams_dblk_1936
> > ffffffffec0033c08 streams_dblk_1936 0269 000000 2048 602
> >
> > The third field is the "flags" field;  this contains the full reason
> > for all the differences you noticed.
> >
> > 32-bit:  KMF_HASH | KMF_CONTENTS | KMF_AUDIT | KMF_DEADBEEF |
> KMF_REDZONE
> > 64-bit:  KMF_HASH | KMF_CONTENTS | KMF_AUDIT | KMF_FIREWALL |
> > KMF_NOMAGAZINE
> ...elided...
> Hi Jonathan,
>
> I have a question about your comments above:
>
> Raymond have told me he already set the kmem_flags = 0xf in the system,
> why the kmem cache debug flags are still different between 32bit and
> 64bit kernel?
>
> The kmem_flags setting should be effecting for all of cache, right?


They do (and in both cases, kmem_flags was set to 0xf).  The issue is that
the way kmem_flags gets translated into a particular cache's cache_flags is
non-trivial;  see
http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common/os/kmem.c#2071

Things like firewalling are actually satisfying the intent of the
KMF_REDZONE flag (for example), but do so in a way that is incompatible with
the code which follows KMF_REDZONE.

Cheers,
- jonathan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.opensolaris.org/pipermail/mdb-discuss/attachments/20070809/41e8b4e3/attachment.html>

Reply via email to