EV67 optimized libc6.1

2006-04-11 Thread Aurelien Jarno
[Please keep debian-glibc in Cc: as I am not subscribed to debian-alpha]

Hi alpha users!

As requested a long time ago in the BTS (bug #229251), I have built 
an EV67 optimized version of the glibc. It uses EV67 specific 
instructions, but also optimized assembly code for the following 
functions: ffs, memchr, memcpy, memset, sqrt, strcat, strchr, strcpy,
strlen, strncat, strncpy and strrchr.

As I don't own an alpha machine I am asking here for some tests. I am 
looking for people having a machine with an EV67 compatible CPU, but 
*also* people having a machine with an *older* CPU.

- For people having an EV67 compatible CPU, please install 
  libc6.1-alphaev67 and verify it is used. You can see that using ldd, 
  for example: 
  'ldd /bin/ls'. It should uses libraries from /lib/ev67/
  Some benchmarking would be really nice to decide if this package is
  really useful or not.

- For people having an *older* CPU, I would like you to test that those 
  libraries are not used, because I am not really sure about the hwcap
  code. It could be a bit risky, so it may be a good idea to do that in
  a chroot. Basically, install libc6.1-alphaev67. If your system still 
  work it's a good sign. Then use ldd to verify those libraries are not 
  used. Note that in case of problem a rm -rf /lib/ev67 should make your 
  system working again.

The packages are available on http://people.debian.org/~aurel32/ev67

Good tests!

Cheers,
Aurelien


-- 
  .''`.  Aurelien Jarno | GPG: 1024D/F1BCDB73
 : :' :  Debian developer   | Electrical Engineer
 `. `'   [EMAIL PROTECTED] | [EMAIL PROTECTED]
   `-people.debian.org/~aurel32 | www.aurel32.net


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: EV67 optimized libc6.1

2006-04-11 Thread Emmanuel Kasper

Hello
Can we ust this glibc also on EV6 cpu or really only EV67 ?
Manu


Aurelien Jarno a écrit :

[Please keep debian-glibc in Cc: as I am not subscribed to debian-alpha]

Hi alpha users!

As requested a long time ago in the BTS (bug #229251), I have built 
an EV67 optimized version of the glibc. It uses EV67 specific 
instructions, but also optimized assembly code for the following 
functions: ffs, memchr, memcpy, memset, sqrt, strcat, strchr, strcpy,

strlen, strncat, strncpy and strrchr.

As I don't own an alpha machine I am asking here for some tests. I am 
looking for people having a machine with an EV67 compatible CPU, but 
*also* people having a machine with an *older* CPU.


- For people having an EV67 compatible CPU, please install 
  libc6.1-alphaev67 and verify it is used. You can see that using ldd, 
  for example: 
  'ldd /bin/ls'. It should uses libraries from /lib/ev67/

  Some benchmarking would be really nice to decide if this package is
  really useful or not.

- For people having an *older* CPU, I would like you to test that those 
  libraries are not used, because I am not really sure about the hwcap

  code. It could be a bit risky, so it may be a good idea to do that in
  a chroot. Basically, install libc6.1-alphaev67. If your system still 
  work it's a good sign. Then use ldd to verify those libraries are not 
  used. Note that in case of problem a rm -rf /lib/ev67 should make your 
  system working again.


The packages are available on http://people.debian.org/~aurel32/ev67

Good tests!

Cheers,
Aurelien





--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: EV67 optimized libc6.1

2006-04-11 Thread Aurelien Jarno

Emmanuel Kasper wrote:

Hello
Can we ust this glibc also on EV6 cpu or really only EV67 ?


This is only ev67. This is the mentioned architecture in the bug report. 
I know almost nothing about alpha CPUs, but it seems EV67 is the CPU for 
which the gain would be significant.


Bye,
Aurelien


Aurelien Jarno a écrit :


[Please keep debian-glibc in Cc: as I am not subscribed to debian-alpha]

Hi alpha users!

As requested a long time ago in the BTS (bug #229251), I have built an 
EV67 optimized version of the glibc. It uses EV67 specific 
instructions, but also optimized assembly code for the following 
functions: ffs, memchr, memcpy, memset, sqrt, strcat, strchr, strcpy,

strlen, strncat, strncpy and strrchr.

As I don't own an alpha machine I am asking here for some tests. I am 
looking for people having a machine with an EV67 compatible CPU, but 
*also* people having a machine with an *older* CPU.


- For people having an EV67 compatible CPU, please install   
libc6.1-alphaev67 and verify it is used. You can see that using ldd,   
for example:   'ldd /bin/ls'. It should uses libraries from /lib/ev67/

  Some benchmarking would be really nice to decide if this package is
  really useful or not.

- For people having an *older* CPU, I would like you to test that 
those   libraries are not used, because I am not really sure about the 
hwcap

  code. It could be a bit risky, so it may be a good idea to do that in
  a chroot. Basically, install libc6.1-alphaev67. If your system still 
  work it's a good sign. Then use ldd to verify those libraries are 
not   used. Note that in case of problem a rm -rf /lib/ev67 should 
make your   system working again.


The packages are available on http://people.debian.org/~aurel32/ev67

Good tests!

Cheers,
Aurelien








--
  .''`.  Aurelien Jarno | GPG: 1024D/F1BCDB73
 : :' :  Debian developer   | Electrical Engineer
 `. `'   [EMAIL PROTECTED] | [EMAIL PROTECTED]
   `-people.debian.org/~aurel32 | www.aurel32.net


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



RE: EV67 optimized libc6.1

2006-04-11 Thread Donsbach, Jeff
Aurelien Jarno wrote:
> This is only ev67. This is the mentioned architecture in the bug
report. 
> I know almost nothing about alpha CPUs, but it seems EV67 is the CPU
for which the gain would
> be significant.

Maybe. Maybe not. What is the nature of the changes you made? What EV67
specific features did you use and where? Did you just recompile with
"-march=ev67"?

If you are using native byte/word instructions in your changes, those
are supported back into the EV56 family.

What you might want to do is test for the CPU's capabilities (i.e. bwx
support, mvi support, cix support) individually rather than a blanket
"if ev67 (do a) else (do b)"

Just a suggestion.
Jeff D
--
Jeff Donsbach
https://ecardfile.com/id/jeff.donsbach



Re: EV67 optimized libc6.1

2006-04-11 Thread Falk Hueffner
Aurelien Jarno <[EMAIL PROTECTED]> writes:

> As requested a long time ago in the BTS (bug #229251), I have built 
> an EV67 optimized version of the glibc.

It depends on "tzdata", which doesn't seem to be available anywhere
(http://people.debian.org/~aurel32/tzdata/ is 404).

-- 
Falk


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: EV67 optimized libc6.1

2006-04-11 Thread Aurelien Jarno
On Tue, Apr 11, 2006 at 12:05:41PM -0400, Donsbach, Jeff wrote:
> Aurelien Jarno wrote:
> > This is only ev67. This is the mentioned architecture in the bug
> report. 
> > I know almost nothing about alpha CPUs, but it seems EV67 is the CPU
> for which the gain would
> > be significant.
> 
> Maybe. Maybe not. What is the nature of the changes you made? What EV67
> specific features did you use and where? Did you just recompile with
> "-march=ev67"?

The libraries are built with -march=ev67 -mtune=ev67, but also the
target is alphaev67-linux-gnu, which means that optimized assembly code
is used for some functions (the one listed in my first mail).

> If you are using native byte/word instructions in your changes, those
> are supported back into the EV56 family.

I don't know exactly. But you can have a look to the corresponding
assembly codes in the glibc sources, in sysdeps/alpha/alphaev67/

> What you might want to do is test for the CPU's capabilities (i.e. bwx
> support, mvi support, cix support) individually rather than a blanket
> "if ev67 (do a) else (do b)"
> 
Well this is not possible, the kernel only returns the CPU class, from
the following list: ev4, ev5, ev56, pca56, ev6, ev67.

Bye,
Aurelien

-- 
  .''`.  Aurelien Jarno | GPG: 1024D/F1BCDB73
 : :' :  Debian developer   | Electrical Engineer
 `. `'   [EMAIL PROTECTED] | [EMAIL PROTECTED]
   `-people.debian.org/~aurel32 | www.aurel32.net


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: EV67 optimized libc6.1

2006-04-11 Thread Aurelien Jarno
On Tue, Apr 11, 2006 at 09:00:52PM +0200, Falk Hueffner wrote:
> Aurelien Jarno <[EMAIL PROTECTED]> writes:
> 
> > As requested a long time ago in the BTS (bug #229251), I have built 
> > an EV67 optimized version of the glibc.
> 
> It depends on "tzdata", which doesn't seem to be available anywhere
> (http://people.debian.org/~aurel32/tzdata/ is 404).
> 
Oops, I removed it from there, because I uploaded it to unstable. And 
you have just tried to find it during the lap of time between its 
removal from incoming.d.o and its apparition on the mirrors.

If you use an up to date mirror, you will be able to simply to apt-get
install it, now or in the very next hours.

Bye,
Aurelien

-- 
  .''`.  Aurelien Jarno | GPG: 1024D/F1BCDB73
 : :' :  Debian developer   | Electrical Engineer
 `. `'   [EMAIL PROTECTED] | [EMAIL PROTECTED]
   `-people.debian.org/~aurel32 | www.aurel32.net


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



RE: EV67 optimized libc6.1

2006-04-12 Thread Donsbach, Jeff

Aurelien,

You wrote:
> Jeff Donsbach wrote:
> What you might want to do is test for the CPU's capabilities (i.e. bwx

> support, mvi support, cix support) individually rather than a blanket 
> "if ev67 (do a) else (do b)"
> 
>Well this is not possible, the kernel only returns the CPU class, from
the following list: ev4,
>ev5, ev56, pca56, ev6, ev67.

It may be too granular from a kernel API, but fyi, you can detect which
instruction set extensions the chip supports using the Alpha's AMASK
instruction with an inline assembly instruction or two.

See this document about the MVI extension
(http://www.alphalinux.org/docs/MVI-full.html#DetectingMVI). It has
listing of what the other bits mean too (BWX, CIX, SQRT, etc)

I haven't looked at your code changes yet, but I'll do so when I get
some free moments of spare time.

Hope this helps,
Jeff D
--
Jeff Donsbach
https://ecardfile.com/id/jeff.donsbach
 



Re: EV67 optimized libc6.1

2006-04-13 Thread Steve Langasek
On Tue, Apr 11, 2006 at 12:32:43PM +0200, Aurelien Jarno wrote:

> As requested a long time ago in the BTS (bug #229251), I have built 
> an EV67 optimized version of the glibc. It uses EV67 specific 
> instructions, but also optimized assembly code for the following 
> functions: ffs, memchr, memcpy, memset, sqrt, strcat, strchr, strcpy,
> strlen, strncat, strncpy and strrchr.

> As I don't own an alpha machine I am asking here for some tests. I am 
> looking for people having a machine with an EV67 compatible CPU, but 
> *also* people having a machine with an *older* CPU.

> - For people having an EV67 compatible CPU, please install 
>   libc6.1-alphaev67 and verify it is used. You can see that using ldd, 
>   for example: 
>   'ldd /bin/ls'. It should uses libraries from /lib/ev67/
>   Some benchmarking would be really nice to decide if this package is
>   really useful or not.

> - For people having an *older* CPU, I would like you to test that those 
>   libraries are not used, because I am not really sure about the hwcap
>   code. It could be a bit risky, so it may be a good idea to do that in
>   a chroot. Basically, install libc6.1-alphaev67. If your system still 
>   work it's a good sign. Then use ldd to verify those libraries are not 
>   used. Note that in case of problem a rm -rf /lib/ev67 should make your 
>   system working again.

> The packages are available on http://people.debian.org/~aurel32/ev67

Tested in a chroot on an ev56 system, 2.6.15 kernel.  No problems, it
continues to use /lib correctly.

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
[EMAIL PROTECTED]   http://www.debian.org/


signature.asc
Description: Digital signature


Re: EV67 optimized libc6.1

2006-04-18 Thread Falk Hueffner
Aurelien Jarno <[EMAIL PROTECTED]> writes:

> - For people having an EV67 compatible CPU, please install 
>   libc6.1-alphaev67 and verify it is used. You can see that using ldd, 
>   for example: 
>   'ldd /bin/ls'. It should uses libraries from /lib/ev67/

It's not being used:

[EMAIL PROTECTED]:/# dpkg -l libc6.1\* | grep ii
ii  libc6.1   2.3.6-6+ev67   GNU C Library: Shared libraries
ii  libc6.1-alphaev67 2.3.6-6+ev67   GNU C Library: Shared libraries (EV67 optim

[EMAIL PROTECTED]:/# ldd /bin/ls
librt.so.1 => /lib/librt.so.1 (0x0202c000)
libacl.so.1 => /lib/libacl.so.1 (0x02056000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0207)
libc.so.6.1 => /lib/libc.so.6.1 (0x0209a000)
libpthread.so.0 => /lib/libpthread.so.0 (0x02214000)
/lib/ld-linux.so.2 (0x0200)
libattr.so.1 => /lib/libattr.so.1 (0x022be000)
libdl.so.2.1 => /lib/libdl.so.2.1 (0x022d4000)
libsepol.so.1 => /lib/libsepol.so.1 (0x022ea000)

I'm not sure why... The library as such works, though:

[EMAIL PROTECTED]:/# LD_LIBRARY_PATH=/lib/ev67 ldd /bin/ls
librt.so.1 => /lib/ev67/librt.so.1 (0x0202c000)
libacl.so.1 => /lib/libacl.so.1 (0x02056000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0207)
libc.so.6.1 => /lib/ev67/libc.so.6.1 (0x0209a000)
libpthread.so.0 => /lib/ev67/libpthread.so.0 (0x02226000)
/lib/ld-linux.so.2 (0x0200)
libattr.so.1 => /lib/libattr.so.1 (0x022d)
libdl.so.2.1 => /lib/ev67/libdl.so.2.1 (0x022e6000)
libsepol.so.1 => /lib/libsepol.so.1 (0x022fc000)
[EMAIL PROTECTED]:/# LD_LIBRARY_PATH=/lib/ev67 ls
bin   dev  homelibmnt  proc  sbin  srv  tmp  var
boot  etc  initrd  media  opt  root  src   sys  usr


-- 
Falk


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]