Re: svn commit: r191276 - in head/sys: amd64/include arm/include i386/include ia64/include mips/include powerpc/include sparc64/include sun4v/include

[ Available lists | Index of svn-src-head | Month of Apr 2009 | Week of 20 Apr 2009 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Nathan Whitehorn <nwhitehorn@freebsd.org>
Date
20 Apr 2009 18:23:42
Subject
Re: svn commit: r191276 - in head/sys: amd64/include arm/include i386/include ia64/include mips/include powerpc/include sparc64/include sun4v/include
Message-ID
49ECB8FD.1050901@freebsd.org


[ Hide this part ]
Robert Watson wrote:
>
> On Mon, 20 Apr 2009, Bruce Evans wrote:
>
>>> +#ifndef CACHE_LINE_SHIFT
>>> +#define CACHE_LINE_SHIFT 6
>>> +#endif
>>> +#define CACHE_LINE_SIZE (1 << CACHE_LINE_SHIFT)
>>
>> This still has the bogus ifdef. Overriding the definition is
>> difficult to do consistently even in a kernel with no modules, since
>> CACHE_LINE_SIZE is not a kernel option. Overriding the definition
>> makes negative sense since the value is a maximum-maximum (possibly
>> larger than strictly needed) so that it can be constant.
>
> OK, I've made this change. My hope is that most applications don't
> resort to including sys/param.h and using CACHE_LINE_SIZE -- most will
> be able to query it at run-time using interfaces we don't yet have
> (such as sysconf(3) and some appropriate constant). I also hope that
> most kernel consumers will be able to use a run-time tuned version
> (which we also don't yet have).
On PowerPC, we currently define a kernel global cacheline_size
(md_var.h) and a sysctl machdep.cacheline_size with this information.
This is currently used in various places in the kernel and in the
userland RTLD for properly synchronizing the instruction cache.
-Nathan


Elapsed time: 0.138 seconds