Wednesday, May 31, 2006

Ubuntu 6.06 will support Sun Fire T1000

Now it's official. According to http://www.sun.com/smi/Press/sunflash/2006-05/sunflash.20060530.1.xml Ubuntu 6.06 for SPARC will support T1000 and T2000 servers.
So there's still hope.
Question is: will my test period be long enough to enjoy this?

Tuesday, May 09, 2006

Performance results

I did some performance testing today. I compared our build server (P4 1core, 3 GHz, 2GB RAM, linux), against our T1000 (6 cores, 8GB RAM, Solaris 10).

I compared two testcases:

1. A cross compile to ARM architecture of the linux kernel. For that I used a custom built arm-linux-gcc 3.4.5.

2. A cross compile to ARM architecture of one of our applications. For that I used a custom built arm-elf-gcc 4.1.0.

I did no optimizing except for passing "-j 32" to make on the T1000.




Results are interesting. Probably the T1000 cannot use it's full force because lots of io has to be done. Performance for our application is worse because at the end of the compile process there is a long linking phase that can run only on one core.

That is a good starting point. I hope there are some screws to tune this. Maybe linux would perform better on the T1000, Colm MacCárthaighs blog suggests this. But linux still does not work, at least not on my T1000. Still no news from Dave Miller or Fabbione on this.

Monday, May 08, 2006

Cross build environment up and running

We want to use the T1000 as a build server which produces binaries for the ARM processor platform. So the main application we need is a cross platform gcc.

Finally I succeeded in building an arm-elf-gcc-4.1.0. In order to do that I had to install lots of packages from Sunfreeware.com. They have the main gnu applications built for Solaris 10. Some things I had to build on my own, e.g. the binutils. But after all it worked.
Another obstacle on the way was cmake which is the buildsystem we use.
Also the tools for ecos, our embedded operating system had to be built. But now it is all up and running.

"make -j 24" looks quite impressive:

load averages: 1.27, 1.10, 1.04 13:38:56
113 processes: 87 sleeping, 3 running, 23 on cpu
CPU states: 62.6% idle, 31.2% user, 6.2% kernel, 0.0% iowait, 0.0% swap
Memory: 8184M real, 6393M free, 406M swap in use, 7985M swap free

PID USERNAME LWP PRI NICE SIZE RES STATE TIME CPU COMMAND
7667 de 1 20 0 21M 18M cpu/16 0:01 0.30% cc1plus
7665 de 1 30 0 21M 17M cpu/17 0:01 0.30% cc1plus
7680 de 1 20 0 21M 18M cpu/1 0:01 0.29% cc1plus
7673 de 1 30 0 21M 17M cpu/6 0:01 0.29% cc1plus
7677 de 1 30 0 21M 17M cpu/20 0:01 0.29% cc1plus
7686 de 1 30 0 21M 18M cpu/18 0:01 0.29% cc1plus
7689 de 1 30 0 21M 17M cpu/10 0:01 0.29% cc1plus
7692 de 1 30 0 21M 17M cpu/8 0:01 0.29% cc1plus
7688 de 1 30 0 21M 17M cpu/22 0:01 0.29% cc1plus
7690 de 1 30 0 21M 17M cpu/0 0:01 0.29% cc1plus
7694 de 1 30 0 21M 17M cpu/9 0:01 0.29% cc1plus
7685 de 1 30 0 19M 14M cpu/21 0:01 0.29% cc1plus
7684 de 1 30 0 17M 14M cpu/15 0:01 0.29% cc1plus
7696 de 1 30 0 21M 17M cpu/19 0:01 0.29% cc1plus
7705 de 1 20 0 15M 13M cpu/13 0:01 0.28% cc1plus

It's fun watching how all this little compile processes are balanced to different threads. In the end performance is only about 20% better than on our 3.0 GHz Pentium IV, but there are lot of ideas for tuning. More detailed benchmarks will follow later on.

At the moment I'm using Dan Kegels crosstool for building a arm-linux-gcc-3.4.5. When it's finished I will start cross compiling the linux kernel for ARM.
I guess that will be fun ;)

Friday, May 05, 2006

Solaris fixed

I found that the runtime library configuration is stored in /var/ld/ld.config and /var/ld/64/ld.config. So I had a look in /mnt/var. Damn. Empty.
So var is mounted separately. But from where. Using linux /etc/fstab would show. But in Solaris? Consulting google showed me that /etc/vfstab is the place.

# cat /etc/vfstab
...
/dev/dsk/c0t0d0s5 /dev/rdsk/c0t0d0s5 /var ufs 1 no logging
....


So I mounted /dev/dsk/c0t0d0s5.

# mount -F ufs /dev/dsk/c0t0d0s5 /mnt
# cat /mnt/ld/ld.config

XX/usr/local/lib


Bingo! So remove ld.config.

# rm /mnt/ld/ld.config
# umount mnt
# halt

Now Solaris boots fine again.

Thursday, May 04, 2006

Last weekend - City of Trier

Last weekend my wife and me visited our friend Kirsten in Trier.
Saturday in the morning we had some excellent brunch which Kirsten had prepared for us. Then we went to town and did some sightseeing.

My wife Ramona (left) and Kirsten (right). Sorry for the poor quality, but the pictures were taken with the cam in my cellphone.

Trier is a beautiful city with lots of sights: the cathedral, the church of our lady, porta nigra, the basilica, st. gangolf , palace garden, the Karl-Marx-House to name only few of them. Kirsten is an excellent guide and we had lots of fun wandering through the ancient streets. Weather was fine, we enjoyed the sun while temperatures were about 12°C.

Strange sculpture in a church (pardon me - I forgot the name). The latin text says that death treats sceptre and spade equal. Which is true - for sure.

In the evening we visited the beautiful restaurant "Weinstube zum Domstein" which is close to the cathedral. Very nice atmosphere, execellent wine and tasty snacks. We fell to bed, totally exhausted by this formidable day.

Sunday morning Kirsten had to leave us because she works as a waitress in a restaurant. So we visited the Mosel and left Trier later on. We enjoyed this weekend very much. It was for sure not the last time we visited Trier.

Jumpstarting Solaris with a linux server

Rolf Kersten, Product Marketing Manager for Volume Servers and Workstations from Sun Germany, read about my fauxpas with Solaris and contacted me. That is what I call excellent support. Getting support without even starting a support request - cool.

He told me that booting Solaris via network is possible. That is exactly what I am looking for in order to heal my fried Solaris installation on the T1000. So he sent me the complete "Solaris Enteprise System" DVD set (7 DVDs containing Solaris10 and all kinds of tools). For free. Very nice. He also pointed me to someone who succesfully used linux as a solaris jumpstart server.

If you have already setup everything to boot linux via network only few has to be done. You have to install bootparamd, and setup a file called /etc/bootparams.
For me this bootparams did the trick (with [t1000] the hostname of your t1000 and [server] the hostname of your linux machine):

[t1000] root=[server]:/tftpboot/jumpstart/install/Solaris_10/Tools/Boot rootopts=:rsize=8192,wsize=8192

Certainly Solaris has to be installed in your /tftpboot/jumpstart dir.

mkdir -p /tftpboot/jumpstart/install
mkdir /tftpboot/jumpstart/config
ln -s /bin/tar /bin/bar
ln -s /bin/sed /usr/bin/sed
ln -s /usr/bin/gdb /usr/bin/adb


Then add a little script /bin/mach (and don't forget to "chmod a+x" it):

#!/bin/bash
uname -m


Finally go to "Solaris_8/Tools" on the Solaris 10 DVD and start "./setup_install_server /home/jumpstart/install".

Now nfs export has to be prepared, so edit /etc/exports and add

/tftpboot/jumpstart 192.168.150.0/255.255.255.0(rw,no_root_squash,sync)

Then restart nfs "/etc/init.d/nfs-user-server restart" (nfs-kernel-server did not work for me).

On OpenBoot prompt enter "boot net" and you should see the following:

Boot device: /pci@7c0/pci@0/network@4 File and args:
100 Mbps FDX Link up
Requesting Internet Address for 0:14:4f:21:d8:b4
100 Mbps FDX Link up
SunOS Release 5.10 Version Generic_118822-25 64-bit
Copyright 1983-2005 Sun Microsystems, Inc. All rights reserved.
Use is subject to license terms.
Configuring devices.
Using RPC Bootparams for network configuration information.
Attempting to configure interface bge3...
Skipped interface bge3
Attempting to configure interface bge2...
Skipped interface bge2
Attempting to configure interface bge1...
Skipped interface bge1
Attempting to configure interface bge0...
Configured interface bge0
ERROR: bpgetfile unable to access network install information
# -


So we have a Solaris prompt now. Time to mount the T1000 hd.

mkdir mnt
mount -F ufs /dev/dsk/c0t0d0s0 /mnt
ls mnt


Fine. But how to fix the crle desaster? Don't know yet. Stay tuned.

Tuesday, May 02, 2006

Rumours

Fabio said that SUN tested T1000 networking using linux and it worked for them.

Either I am missing something very basic or there is something very different in the SUN test network. Fabio told me that he will investigate on this. I am really curious what is going on here.

Misunderstood

Since I read that Dave Miller suffered from some bad illness I decided to offer him some more help researching the T1000 networking trouble:

Hello Dave,

I just wanted to offer you some help on investigating the T1000 tigon3
networking trouble. If you have any debug patches for the driver we will
be able to test them here on our T1000 and pass on the results to you.

His answer was, well, some kind of indignant:
Why do you keep pinging us over and over again?  When we get time
Fabbione and I will happily look into your problem.

I've been fighting several severe illnesses and health problems
lately, and you keep bugging me is not helping me want to help you
with your bug.

Sit back, and relax. Are you able to do this? Just be patient, we'll
get to it eventually.

I understand that David was not so well the last weeks, and I understand that he has lots of work to do now. But I never mailed him directly before, just CCed some mails to Fabio (and those were some days ago). And I do not think that I put any pressure in my mail.

I appreciate the stuff David does very much an he is my Sun T1 hero for sure. But goofing on someone who wants to help is for sure not improving the community progress in any way. I am used to help in open source development (e.g. Marc Singer and his Sharp LH linux port), and my offers for help were never answered this way before.

Well, I hope Dave only had a bad day. Anyway my offer ist standing. If any testing has to be done, I am there.