This is the mail archive of the
libc-ports@sources.redhat.com
mailing list for the libc-ports project.
Re: [PATCH][alpha] Fix _SC_LEVEL*CACHE*
- From: Aurelien Jarno <aurelien at aurel32 dot net>
- To: libc-ports at sourceware dot org
- Cc: Richard Henderson <rth at twiddle dot net>
- Date: Sun, 19 Feb 2012 13:51:19 +0100
- Subject: Re: [PATCH][alpha] Fix _SC_LEVEL*CACHE*
- References: <20110401211854.GC16226@hall.aurel32.net>
Ping ?
On Fri, Apr 01, 2011 at 11:18:54PM +0200, Aurelien Jarno wrote:
> sysconf() on alpha returns improper results for _SC_LEVEL*CACHE*
> entries:
>
> | LEVEL1_ICACHE_SIZE 64
> | LEVEL1_ICACHE_ASSOC 65536
> | LEVEL1_ICACHE_LINESIZE 2
> | LEVEL1_DCACHE_SIZE 64
> | LEVEL1_DCACHE_ASSOC 65536
> |?LEVEL1_DCACHE_LINESIZE 2
> | LEVEL2_CACHE_SIZE 64
> | LEVEL2_CACHE_ASSOC 4194304
> | LEVEL2_CACHE_LINESIZE 1
>
> This is due to the entries number being not properly aligned on modulo
> 3. This probably used to work at some point, but now that more entries
> have been added, it doesn't work anymore. The patch below fixes that.
>
>
> 2011-04-01 Aurelien Jarno <aurelien@aurel32.net>
>
> * sysdeps/unix/sysv/linux/alpha/sysconf.c: Fix cache sysconf
> switch.
>
> diff --git a/sysdeps/unix/sysv/linux/alpha/sysconf.c b/sysdeps/unix/sysv/linux/alpha/sysconf.c
> index 51a2a47..30faa3f 100644
> --- a/sysdeps/unix/sysv/linux/alpha/sysconf.c
> +++ b/sysdeps/unix/sysv/linux/alpha/sysconf.c
> @@ -135,7 +135,7 @@ __sysconf (int name)
> if (shape <= 0)
> return shape;
>
> - switch (name % 3)
> + switch ((name - _SC_LEVEL1_ICACHE_SIZE) % 3)
> {
> case 0: /* total size */
> return shape & -0x100;
> --
> Aurelien Jarno GPG: 1024D/F1BCDB73aurelien@aurel32.net http://www.aurel32.net
>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net