Monday 21 June 2021

Linux for Alpha on AlphaVM-Free - System Information

AlphaVM-Free & Alpha Linux

The AlphaVM family of system emulators from EmuVM, provide a means to emulate members of the Tsunami family of Alpha based systems from Compaq and HP. Mainly targeted at providing a migration option for existing Alpha systems running OpenVMS or Tru64 UNIX, this emulator is also capable of running Linux for Alpha.

The Alpha (Wikipedia) was the first non Intel x86 platform to have support integrated into the Linux kernel back in the mid 1990s. Linus Torvalds discusses the integration of Alpha and SPARC into Linux and the challenges of developing a portable operating system in his 1997 M.Sc. thesis: "Linux: a Portable Operating System". While the retirement of Alpha systems by Compaq and HP means the remaining hardware is aging, and Linux has been ported to many more systems since, there are still some use cases for Linux on Alpha. But moving away from potentially unreliable and increasingly uncommon hardware has become very desirable. One option for accomplishing this is using a system emulator.

The AlphaVM system emulator is one such possibility and a free version of AlphaVM (AlphaVM-Free) was offered as an evaluation and hobbyist product. This complemented the supported commercial offering (AlphaVM-Pro) which provides increased capabilities and full support. Apparently due to licence abuse (see The sad state of Alpha emulators (for OpenVMS) - Raymii.org) the free version has been since replaced with a low cost option (AlphaVM-Basic).

To have a look at the emulator's capabilities and how well it manages to run Linux, I've setup a legacy AlphaVM-Free system in a Debian Linux 10 (buster) virtual machine and installed Debian Linux 5 (lenny) from the distribution DVD.

Note that AlphaVM requires the CMPXCHG16B instruction to be available on the host. In my case this meant I had to update the VirtualBox configuration for the Debian Linux 10 host virtual machine to allow access to this instruction (see virtualbox.org: View topic - hot to enable CMPXCHG16B instruction).

Emulated System

AlphaVM-Free emulates a range of systems in the Tsunami family of systems, which were based on the 21272 (Tsunami) and 21274 (Typhoon) chipsets:

  • Extreme Performance (XP) workstations:
    • Compaq XP900
    • Compaq XP1000
  • Departmental Server (DS):
    • Compaq DS10, DS10L
    • Compaq DS20, DS20E, DS20L
  • Enterprise Server (ES):
    • Compaq ES40

The DS and ES lines were available in server (AlphaServer) and workstation (AlphaStation) enclosures, the XP line only had a workstation. The the Tsunami/Typhoon chipsets were also used in the AlphaPC 264DP board and its derivatives (e.g. API UP2000 and UP2000+).

For this exploration I've selected a DS10 system with an EV6. Compaq sold the system with a configuration like:

Compaq AlphaServer DS10 6/466:

  • CPU: Alpha 21264 (EV6) at 466 MHz
  • RAM: 256 MiB to 2 GiB
  • Network: built-in dual 10/100 ethernet - Tulip 21143 (DE500)
  • Disk controller:
    • built-in dual IDE (provided by Acer Labs 1543C)
    • SCSI option: Ultra2 (KZPCA-AA; NCR53c895), Ultra3 (KZPEA-DB; AIC-7899)
  • Graphics: optional
    • 3Dlabs Oxygen VX1 (aka. Permedia 3; PBXGF)
    • ELSA Gloria Synergy (Permedia 2; PBXGK)
    • Multi-function DEPVD and DEPVZ cards, include a Permedia 2 graphics adapter
    • PowerStorm 300 or 350 (REALimage 2100; PBXGD)
  • Audio: optional
    • Ensoniq PCI 1373 audio card (ES1373; AVH10)
  • Misc.: Acer Labs 1543C providing: dual IDE, Floppy, USB, 2 serial, 1 parallel, keyboard & mouse (PS/2)

AlphaVM uses substitutions for some of the standard configuration hardware, and doesn't provide graphics or audio support. Since I want to see how some of the alternative device options turn out I've made a couple of additional substitutions:

  • CPU: Alpha 21264 (EV6) at 466 MHz
  • RAM: 1 GiB
  • Network interfaces:
    • DE500 10/100 Mb/s ethernet (Tulip 21143)
    • DE435 10 Mb/s ethernet (Tulip 21040)
  • Disk controller:
    • SCSI: QLogic ISP 1020 SCSI controller with 22 GB, 2 GB and CD-ROM drives
  • Misc.: 2 serial

The other integrated devices don't appear to be available to configure, so I'm assuming they are not present in the emulation.

Emulator Command

AlphaVM uses a configuration file for the emulated system specification, and this is simply referenced in the command-line:

$ alphavm_free config.emu

The config.emu file I'm using is:

system {
    type = ds10_466;
    reported_type = default;
    num_cpus = 1;
    ssn = 'EmuVM-00-000-001';
    interval_clock_freq = 1000;
    memory {
        size = 1024;
    }
    cpu {
    	server = basic;
	jit {
            async = yes;
        }
    }
    serial com1 {
        server = socket;
        port = 3000;
    }
    scsi_controller qla0 {
        scsi_id = 7;
    }
    scsi_disk dka0 {
        scsi_bus = 0;
        scsi_id = 0;
        scsi_lun = 0;
        file = 'disk01.dd';
        caching = no;
        write_through = yes;
    }
    scsi_cdrom iso {
        scsi_id = 4;
        file = 'ISO/debian-5010-alpha-DVD-1.iso';
    }
    ether eth0 {
        type = dec21143;
        server = dummy;
        mac_address = 0x08002B000001;
    }
    ether eth1 {
        type = dec21040;
        server = dummy;
        mac_address = 0x08002B000002;
    }
}

Note: this system profile (ds10_466) always provides two ethernet interfaces, which by default are dummy devices. Here this default is overridden to give us one each of the two supported types of adapter (DE500 & DE435) with distinct MAC addresses.

Unlike a real DS10, where the supplied CD-ROM drive is on an IDE bus, the only option here is to configure the CD-ROM drive as a SCSI device, in this case mapped to an ISO image of the Debian Linux 5 (lenny) installation DVD.

System Information

So lets see what the firmware and operating system have to say about emulated platform.

SRM Firmware

The AlphaVM-Free version of the SRM firmware doesn't provide the capabilities of the SRM console on a real DS10, however it does provide the core "show devices" command for reporting potential boot devices:

>>> sh dev
pka		SCSI Controller
dka0		SCSI 0 14 0 0 0 0 0
dka400		SCSI 0 14 0 0 400 0 0
ewa		MOP 0 9 0 0 0 3 0 (08:00:2b:00:00:01)
ewb		MOP 0 11 0 0 0 3 0 (08:00:2b:00:00:02)

So there is the SCSI controller, the system disk (dka0), the CD-ROM drive (dka400) and the two ethernet adapters (ewa & ewb).

uname

Operating system name, version, revision and platform information:

$ uname -a
Linux alvm-deb5 2.6.26-2-alpha-generic #1 Sun Mar 4 21:08:03 UTC 2012 alpha GNU/Linux

So a "Linux" kernel, release "2.6.26-2-alpha-generic", version "#1 Sun Mar 4 21:08:03 UTC 2012", on "alpha" for operating system "GNU/Linux" on a node named "alvm-deb5".

lsb_release

Linux Standard Base (LSB) release information:

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 5.0.10 (lenny)
Release:	5.0.10
Codename:	lenny

A more readable version of the operating system information, including the Debian release codename. May require installation of the 'lsb-release' package.

/proc/cpuinfo

System processor(s) information:

$ cat /proc/cpuinfo 
cpu			: Alpha
cpu model		: EV6
cpu variation		: 7
cpu revision		: 0
cpu serial number	: AlphaVM-CPU-00
system type		: Tsunami
system variation	: Webbrick
system revision		: 0
system serial number	: EmuVM-00-000-001"
cycle frequency [Hz]	: 462962962 
timer frequency [Hz]	: 1000.00
page size [bytes]	: 8192
phys. address bits	: 44
max. addr. space #	: 255
BogoMIPS		: 1712.96
kernel unaligned acc	: 0 (pc=0,va=0)
user unaligned acc	: 0 (pc=0,va=0)
platform string		: AlphaServer DS10 466 MHz
cpus detected		: 1
L1 Icache		: 64K, 2-way, 64b line
L1 Dcache		: 64K, 2-way, 64b line
L2 cache		: n/a
L3 cache		: n/a

On more recent versions of Linux an 'lscpu' command is often provided that reports a more digestible version of this information, and includes a few additional properties.

lspci

List PCI bus devices and lookup names in device database:

$ lspci
00:07.0 ISA bridge: Intel Corporation 82378ZB/IB, 82379AB (SIO, SIO.A) PCI to ISA Bridge (rev 03)
00:09.0 Ethernet controller: Digital Equipment Corporation DECchip 21142/43 (rev 30)
00:0b.0 Ethernet controller: Digital Equipment Corporation DECchip 21040 [Tulip] (rev 20)
00:0e.0 SCSI storage controller: QLogic Corp. ISP1020 Fast-wide SCSI (rev 04)

The "PCI to ISA Bridge" is part of an Intel System I/O (SIO) chip that provides access to various devices (see SIO/SIO.A Datasheet) on a real system.

The raw PCI information can be found in:

$ cat /proc/bus/pci/devices 
0038	80860484	0	               0	         9000000	               0	               0	               0	               0	               0	               0	           10000	               0	               0	               0	               0	               0	
0048	10110019	1d	            8001	         9010000	               0	               0	               0	               0	               0	             100	            1000	               0	               0	               0	               0	               0	tulip
0058	10110002	1e	            8401	         9011000	               0	               0	               0	               0	               0	             100	            1000	               0	               0	               0	               0	               0	de2104x
0070	10771020	23	            8801	         9012000	               0	               0	               0	               0	               0	             100	            1000	               0	               0	               0	               0	               0	qla1280

Which can be a bit difficult to understand.

lshw

A tool to produce a hardware report:

# lshw
alvm-deb5                 
    description: Computer
    product: AlphaServer DS10 466 MHz
    version: Tsunami Webbrick 0
    serial: EmuVM-00-000-001"
    width: 64 bits
  *-core
       description: Motherboard
       physical id: 0
     *-memory
          description: System memory
          physical id: 0
          size: 1GiB
     *-cpu
          product: Alpha
          vendor: Digital Equipment Corporation
          physical id: 1
          bus info: cpu@0
          version: EV6 unknown
          size: 462MHz
          width: 64 bits
     *-isa
          description: ISA bridge
          product: 82378ZB/IB, 82379AB (SIO, SIO.A) PCI to ISA Bridge
          vendor: Intel Corporation
          physical id: 7
          bus info: pci@0000:00:07.0
          version: 03
          width: 32 bits
          clock: 33MHz
          capabilities: isa
          configuration: latency=0 maxlatency=40 mingnt=20
     *-network:0 DISABLED
          description: Ethernet interface
          product: DECchip 21142/43
          vendor: Digital Equipment Corporation
          physical id: 9
          bus info: pci@0000:00:09.0
          logical name: eth0
          version: 30
          serial: 08:00:2b:00:00:01
          width: 32 bits
          clock: 33MHz
          capabilities: ethernet physical
          configuration: broadcast=yes driver=tulip driverversion=1.1.15-NAPI latency=0 maxlatency=40 mingnt=20 module=tulip multicast=yes
     *-network:1 DISABLED
          description: Ethernet interface
          product: DECchip 21040 [Tulip]
          vendor: Digital Equipment Corporation
          physical id: b
          bus info: pci@0000:00:0b.0
          logical name: eth1
          version: 20
          serial: 08:00:2b:00:00:02
          size: 10MB/s
          capacity: 10MB/s
          width: 32 bits
          clock: 33MHz
          capabilities: ethernet physical tp aui 10bt 10bt-fd
          configuration: autonegotiation=on broadcast=yes driver=de2104x driverversion=0.7 duplex=half latency=0 link=no maxlatency=40 mingnt=20 module=de2104x multicast=yes port=twisted pair speed=10MB/s
     *-scsi
          description: SCSI storage controller
          product: ISP1020 Fast-wide SCSI
          vendor: QLogic Corp.
          physical id: e
          bus info: pci@0000:00:0e.0
          logical name: scsi0
          version: 04
          width: 32 bits
          clock: 33MHz
          capabilities: scsi
          configuration: driver=qla1280 latency=0 maxlatency=40 mingnt=20 module=qla1280
        *-disk
             description: SCSI Disk
             product: HD image
             vendor: EmuVM
             physical id: 0.0.0
             bus info: scsi@0:0.0.0
             logical name: /dev/sda
             version: 0001
             size: 9GiB (9663MB)
             capacity: 9GiB (9663MB)
             configuration: ansiversion=2
        *-cdrom
             description: SCSI CD-ROM
             product: CDROM ISO image
             vendor: EmuVM
             physical id: 0.4.0
             bus info: scsi@0:0.4.0
             logical name: /dev/cdrom
             logical name: /dev/scd0
             logical name: /dev/sr0
             logical name: /media/cdrom0
             version: 0001
             capacity: 4436MiB (4651MB)
             capabilities: removable audio
             configuration: ansiversion=2 mount.fstype=iso9660 mount.options=ro,nosuid,nodev,noexec state=mounted status=ready
           *-medium
                physical id: 0
                logical name: /dev/cdrom
                logical name: /media/cdrom0
                capacity: 4436MiB (4651MB)
                configuration: mount.fstype=iso9660 mount.options=ro,nosuid,nodev,noexec state=mounted

This looks like the configured system, although the configured ISA devices aren't covered.

Requires installation of the 'lshw' package.

report-hw

A script which runs various commands (including some of those above) to produce a hardware report for the system:

# report-hw 
umame -a: Linux alvm-deb5 2.6.26-2-alpha-generic #1 Sun Mar 4 21:08:03 UTC 2012 alpha GNU/Linux
lspci -knn: 00:07.0 ISA bridge [0601]: Intel Corporation 82378ZB/IB, 82379AB (SIO, SIO.A) PCI to ISA Bridge [8086:0484] (rev 03)
lspci -knn: 00:09.0 Ethernet controller [0200]: Digital Equipment Corporation DECchip 21142/43 [1011:0019] (rev 30)
lspci -knn: 	Kernel driver in use: tulip
lspci -knn: 	Kernel modules: tulip
lspci -knn: 00:0b.0 Ethernet controller [0200]: Digital Equipment Corporation DECchip 21040 [Tulip] [1011:0002] (rev 20)
lspci -knn: 	Kernel driver in use: de2104x
lspci -knn: 	Kernel modules: de2104x
lspci -knn: 00:0e.0 SCSI storage controller [0100]: QLogic Corp. ISP1020 Fast-wide SCSI [1077:1020] (rev 04)
lspci -knn: 	Kernel driver in use: qla1280
lspci -knn: 	Kernel modules: qla1280
lsmod: Module                  Size  Used by
lsmod: nls_utf8                2464  1 
lsmod: isofs                  45064  1 
lsmod: zlib_inflate           18008  1 isofs
lsmod: udf                   108768  0 
lsmod: nls_base                9704  3 nls_utf8,isofs,udf
lsmod: crc_itu_t               2496  1 udf
lsmod: loop                   18624  0 
lsmod: evdev                  12441  0 
lsmod: pcspkr                  3472  0 
lsmod: ext3                  159168  1 
lsmod: jbd                    60240  1 ext3
lsmod: sg                     40216  0 
lsmod: sr_mod                 22412  1 
lsmod: cdrom                  44968  1 sr_mod
lsmod: sd_mod                 31984  4 
lsmod: qla1280               125848  4 
lsmod: scsi_mod              189184  4 sg,sr_mod,sd_mod,qla1280
lsmod: de2104x                27652  0 
lsmod: tulip                  65160  0 
lsmod: bitrev                  2624  1 tulip
lsmod: crc32                   4800  2 de2104x,tulip
df: Filesystem           1K-blocks      Used Available Use% Mounted on
df: /dev/sda2              8175224    596648   7163296   8% /
df: tmpfs                   514760         0    514760   0% /lib/init/rw
df: udev                     10240      1088      9152  11% /dev
df: tmpfs                   514760         0    514760   0% /dev/shm
df: /dev/sda1               105386     11782     87982  12% /boot
df: /dev/sr0               4541512   4541512         0 100% /media/cdrom0
free:              total       used       free     shared    buffers     cached
free: Mem:       1029520      84832     944688          0      22328      35336
free: -/+ buffers/cache:      27168    1002352
free: Swap:      1004040          0    1004040
/proc/cmdline: ro  root=/dev/sda2
/proc/cpuinfo: cpu			: Alpha
/proc/cpuinfo: cpu model		: EV6
/proc/cpuinfo: cpu variation		: 7
/proc/cpuinfo: cpu revision		: 0
/proc/cpuinfo: cpu serial number	: AlphaVM-CPU-00
/proc/cpuinfo: system type		: Tsunami
/proc/cpuinfo: system variation	: Webbrick
/proc/cpuinfo: system revision		: 0
/proc/cpuinfo: system serial number	: EmuVM-00-000-001"
/proc/cpuinfo: cycle frequency [Hz]	: 462962962 
/proc/cpuinfo: timer frequency [Hz]	: 1000.00
/proc/cpuinfo: page size [bytes]	: 8192
/proc/cpuinfo: phys. address bits	: 44
/proc/cpuinfo: max. addr. space #	: 255
/proc/cpuinfo: BogoMIPS		: 1712.96
/proc/cpuinfo: kernel unaligned acc	: 0 (pc=0,va=0)
/proc/cpuinfo: user unaligned acc	: 0 (pc=0,va=0)
/proc/cpuinfo: platform string		: AlphaServer DS10 466 MHz
/proc/cpuinfo: cpus detected		: 1
/proc/cpuinfo: L1 Icache		: 64K, 2-way, 64b line
/proc/cpuinfo: L1 Dcache		: 64K, 2-way, 64b line
/proc/cpuinfo: L2 cache		: n/a
/proc/cpuinfo: L3 cache		: n/a
/proc/ioports: 00000000-01ffffff : PCI IO bus 0
/proc/ioports:   00000000-0000001f : dma1
/proc/ioports:   00000020-0000003f : pic1
/proc/ioports:   00000040-0000005f : timer
/proc/ioports:   00000060-0000006f : keyboard
/proc/ioports:   00000070-00000080 : rtc
/proc/ioports:   000000a0-000000bf : pic2
/proc/ioports:   000000c0-000000df : dma2
/proc/ioports:   000002f8-000002ff : serial
/proc/ioports:   000003f8-000003ff : serial
/proc/ioports:   00008000-000080ff : 0000:00:09.0
/proc/ioports:     00008000-000080ff : tulip
/proc/ioports:   00008400-000084ff : 0000:00:0b.0
/proc/ioports:     00008400-000084ff : de2104x
/proc/ioports:   00008800-000088ff : 0000:00:0e.0
/proc/iomem: 00000000-3fffffff : PCI mem bus 0
/proc/iomem:   09000000-0900ffff : 0000:00:07.0
/proc/iomem:   09010000-09010fff : 0000:00:09.0
/proc/iomem:     09010000-09010fff : tulip
/proc/iomem:   09011000-09011fff : 0000:00:0b.0
/proc/iomem:     09011000-09011fff : de2104x
/proc/iomem:   09012000-09012fff : 0000:00:0e.0
/proc/interrupts:   2:          0          XT-PIC   cascade
/proc/interrupts:   3:         56          XT-PIC   serial
/proc/interrupts:   4:      70750          XT-PIC   serial
/proc/interrupts:   8:    2425282             RTC  +timer
/proc/interrupts:  35:      30987           DP264   qla1280
/proc/interrupts: ERR:          0
/proc/meminfo: MemTotal:      1029520 kB
/proc/meminfo: MemFree:        944808 kB
/proc/meminfo: Buffers:         22328 kB
/proc/meminfo: Cached:          35336 kB
/proc/meminfo: SwapCached:          0 kB
/proc/meminfo: Active:          34016 kB
/proc/meminfo: Inactive:        30384 kB
/proc/meminfo: SwapTotal:     1004040 kB
/proc/meminfo: SwapFree:      1004040 kB
/proc/meminfo: Dirty:             184 kB
/proc/meminfo: Writeback:           0 kB
/proc/meminfo: AnonPages:        6776 kB
/proc/meminfo: Mapped:           3776 kB
/proc/meminfo: Slab:            14016 kB
/proc/meminfo: SReclaimable:    10792 kB
/proc/meminfo: SUnreclaim:       3224 kB
/proc/meminfo: PageTables:        576 kB
/proc/meminfo: NFS_Unstable:        0 kB
/proc/meminfo: Bounce:              0 kB
/proc/meminfo: WritebackTmp:        0 kB
/proc/meminfo: CommitLimit:   1518800 kB
/proc/meminfo: Committed_AS:    39520 kB
/proc/meminfo: VmallocTotal:  8388608 kB
/proc/meminfo: VmallocUsed:      1560 kB
/proc/meminfo: VmallocChunk:  8386904 kB
/proc/bus/input/devices: I: Bus=0010 Vendor=001f Product=0001 Version=0100
/proc/bus/input/devices: N: Name="PC Speaker"
/proc/bus/input/devices: P: Phys=isa0061/input0
/proc/bus/input/devices: S: Sysfs=/class/input/input0
/proc/bus/input/devices: U: Uniq=
/proc/bus/input/devices: H: Handlers=kbd event0 
/proc/bus/input/devices: B: EV=40001
/proc/bus/input/devices: B: SND=6
/proc/bus/input/devices: 

Coverage of some of the missing devices here.

dmesg

System boot messages:

# dmesg
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.26-2-alpha-generic (Debian 2.6.26-29) (dannf@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 Sun Mar 4 21:08:03 UTC 2012
[    0.000000] Booting GENERIC on Tsunami variation Webbrick using machine vector Webbrick from SRM
[    0.000000] Major Options: MAGIC_SYSRQ 
[    0.000000] Command line: ro  root=/dev/sda2
[    0.000000] memcluster 0, usage 1, start        0, end      256
[    0.000000] memcluster 1, usage 0, start      256, end   131072
[    0.000000] freeing pages 256:2048
[    0.000000] freeing pages 2987:131072
[    0.000000] reserving pages 2987:2989
[    0.000000] Initial ramdisk at: 0xfffffc003f62e000 (9240441 bytes)
[    0.000000] On node 0 totalpages: 131072
[    0.000000]   DMA zone: 896 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 130176 pages, LIFO batch:15
[    0.000000]   Normal zone: 0 pages used for memmap
[    0.000000]   Movable zone: 0 pages used for memmap
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130176
[    0.000000] Kernel command line: ro  root=/dev/sda2
[    0.000000] PID hash table entries: 4096 (order: 12, 32768 bytes)
[    0.000000] Using epoch = 2000
[    0.000000] Setting RTC_FREQ to 1024 Hz (20)
[    0.000000] Turning on RTC interrupts.
[4194001.855599] Console: colour dummy device 80x25
[4194001.855599] console [tty0] enabled
[4194001.869271] Dentry cache hash table entries: 131072 (order: 7, 1048576 bytes)
[4194001.892708] Inode-cache hash table entries: 65536 (order: 6, 524288 bytes)
[4194002.327279] Memory: 1019512k/1048576k available (2162k kernel code, 26336k reserved, 3314k data, 304k init)
[4194002.331185] Calibrating delay loop... 1712.96 BogoMIPS (lpj=835584)
[4194002.369271] Security Framework initialized
[4194002.369271] Capability LSM initialized
[4194002.369271] Mount-cache hash table entries: 512
[4194002.373177] Initializing cgroup subsys ns
[4194002.373177] Initializing cgroup subsys cpuacct
[4194002.373177] Initializing cgroup subsys devices
[4194002.394661] net_namespace: 1208 bytes
[4194002.399544] NET: Registered protocol family 16
[4194002.406380] EISA bus registered
[4194002.408333] pci: enabling save/restore of SRM state
[4194002.426888] Linux Plug and Play Support v0.97 (c) Adam Belay
[4194002.449349] NET: Registered protocol family 2
[4194002.465950] IP route cache hash table entries: 32768 (order: 5, 262144 bytes)
[4194002.476693] TCP established hash table entries: 131072 (order: 8, 2097152 bytes)
[4194002.510872] TCP bind hash table entries: 65536 (order: 6, 524288 bytes)
[4194002.524544] TCP: Hash tables configured (established 131072 bind 65536)
[4194002.524544] TCP reno registered
[4194002.531380] NET: Registered protocol family 1
[4194002.535286] checking if image is initramfs... it is
[4194054.565533] Freeing initrd memory: 9023k freed
[4194054.578228] VFS: Disk quotas dquot_6.5.1
[4194054.578228] Dquot-cache hash table entries: 1024 (order 0, 8192 bytes)
[4194054.581158] msgmni has been set to 2010
[4194054.583111] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[4194054.583111] io scheduler noop registered
[4194054.583111] io scheduler anticipatory registered
[4194054.583111] io scheduler deadline registered
[4194054.585064] io scheduler cfq registered (default)
[4194054.585064] isapnp: Scanning for PnP cards...
[4194055.301861] isapnp: No Plug & Play device found
[4194055.371197] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled
[4194055.375103] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16450
[4194055.375103] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16450
[4194055.417095] brd: module loaded
[4194055.418072] i8042.c: No controller found.
[4194055.421001] mice: PS/2 mouse device common for all mice
[4194055.442486] TCP cubic registered
[4194055.443462] NET: Registered protocol family 17
[4194055.445415] registered taskstats version 1
[4194055.450298] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
[4194055.452251] Freeing unused kernel memory: 304k freed
[4194164.165086] Linux Tulip driver version 1.1.15-NAPI (Feb 27, 2007)
[4194164.166063] PCI: Setting latency timer of device 0000:00:09.0 to 64
[4194164.181688] eth0: Digital DS21142/43 Tulip rev 48 at Port 0x8000, 08:00:2b:00:00:01, IRQ 29.
[4194165.574265] de2104x PCI Ethernet driver v0.7 (Mar 17, 2004)
[4194165.596726] eth1: 21040 at 0xfffffd0009011000, 08:00:2b:00:00:02, IRQ 30
[4194165.596726] PCI: Setting latency timer of device 0000:00:0b.0 to 64
[4194167.297897] SCSI subsystem initialized
[4194168.386764] qla1280: QLA1040 found on PCI bus 0, dev 14
[4194168.386764] PCI: Setting latency timer of device 0000:00:0e.0 to 64
[4194176.574260] scsi(0:0): Resetting SCSI BUS
[4194180.295937] scsi0 : QLogic QLA1040 PCI to SCSI Host Adapter
[4194180.295937]        Firmware version:  7.65.06, Driver version 3.26
[4194180.302773] scsi 0:0:0:0: Direct-Access     EmuVM    HD image         0001 PQ: 0 ANSI: 2
[4194180.302773] scsi(0:0:0:0): Sync: period 10, offset 12, Wide, Tagged queuing: depth 31
[4194181.026406] scsi 0:0:4:0: CD-ROM            EmuVM    CDROM ISO image  0001 PQ: 0 ANSI: 2
[4194181.026406] scsi(0:0:4:0): Sync: period 10, offset 12, Wide
[4194184.553748] Driver 'sd' needs updating - please use bus_type methods
[4194184.553748] sd 0:0:0:0: [sda] 18874368 512-byte hardware sectors (9664 MB)
[4194184.553748] sd 0:0:0:0: [sda] Write Protect is off
[4194184.562537] sd 0:0:0:0: [sda] Mode Sense: b7 00 10 08
[4194184.562537] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
[4194184.563513] sd 0:0:0:0: [sda] 18874368 512-byte hardware sectors (9664 MB)
[4194184.563513] sd 0:0:0:0: [sda] Write Protect is off
[4194184.563513] sd 0:0:0:0: [sda] Mode Sense: b7 00 10 08
[4194184.565467] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
[4194184.565467]  sda: sda1 sda2 sda3 sda4
[4194184.571326] sd 0:0:0:0: [sda] Attached SCSI disk
[4194187.596715] Driver 'sr' needs updating - please use bus_type methods
[4194187.598668] sr0: scsi3-mmc drive: 0x/0x caddy
[4194187.598668] Uniform CD-ROM driver Revision: 3.20
[4194187.599645] sr 0:0:4:0: Attached scsi CD-ROM sr0
[4194190.095737] sd 0:0:0:0: Attached scsi generic sg0 type 0
[4194190.095737] sr 0:0:4:0: Attached scsi generic sg1 type 5
[4194206.111354] kjournald starting.  Commit interval 5 seconds
[4194206.111354] EXT3-fs: mounted filesystem with ordered data mode.
[4194212.936546] udevd version 125 started
[4194349.144484] input: PC Speaker as /class/input/input0
[4194357.962839] Adding 1004040k swap on /dev/sda4.  Priority:-1 extents:1 across:1004040k
[4194358.339792] EXT3 FS on sda2, internal journal
[4194361.133736] loop: module loaded
[4195148.941926] UDF-fs: No VRS found
[4195148.950715] ISO 9660 Extensions: Microsoft Joliet Level 3
[4195149.699738] ISO 9660 Extensions: RRIP_1991A

Lots of stuff here, so I'll only pick out some highlights...

  • The SCSI controller is reported as a "QLogic QLA1040 PCI to SCSI Host Adapter" here, but other commands show it as a "QLogic Corp. ISP1020 Fast-wide SCSI"
  • The drives have a manufacturer string of "EmuVM", which tells us we are under emulation.

Picking through the output might find more gems.

Benchmark

Since this is an emulated machine an obvious question is, how well does it perform compared to the real thing? To find out we're going to need a benchmark to complement the BogoMips pseudo-benchmark detailed in '/proc/cpuinfo' and 'dmesg'.

OpenSSL

OpenSSL provides a means of assessing the performance of the provided cryptographic algorithms using the provided 'openssl' tool, and is installed as part of the standard packages. Since we're going to be comparing against other older systems and the published AlphaVM benchmarks (Benchmarks - EmuVM) we'll look at the older MD5 and RSA algorithms:

$ openssl speed md5
Doing md5 for 3s on 16 size blocks: 89725 md5's in 5.43s
Doing md5 for 3s on 64 size blocks: 66920 md5's in 5.30s
Doing md5 for 3s on 256 size blocks: 41124 md5's in 5.44s
Doing md5 for 3s on 1024 size blocks: 15721 md5's in 5.47s
Doing md5 for 3s on 8192 size blocks: 2362 md5's in 5.58s
OpenSSL 0.9.8g 19 Oct 2007
built on: Wed Jan 18 22:51:04 UTC 2012
options:bn(64,64) md2(int) rc4(ptr,int) des(idx,risc1,16,long) aes(partial) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIO -O3 -Wa,--noexecstack -g -Wall
available timing options: TIMES TIMEB HZ=1024 [sysconf value]
timing function used: times
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md5                264.49k      807.67k     1934.40k     2941.06k     3470.64k
$ openssl speed rsa
Doing 512 bit private rsa's for 10s: 969 512 bit private RSA's in 18.66s
Doing 512 bit public rsa's for 10s: 14727 512 bit public RSA's in 18.47s
Doing 1024 bit private rsa's for 10s: 283 1024 bit private RSA's in 18.14s
Doing 1024 bit public rsa's for 10s: 6001 1024 bit public RSA's in 18.28s
Doing 2048 bit private rsa's for 10s: 56 2048 bit private RSA's in 18.22s
Doing 2048 bit public rsa's for 10s: 2061 2048 bit public RSA's in 18.25s
Doing 4096 bit private rsa's for 10s: 10 4096 bit private RSA's in 19.80s
Doing 4096 bit public rsa's for 10s: 631 4096 bit public RSA's in 18.15s
OpenSSL 0.9.8g 19 Oct 2007
built on: Wed Jan 18 22:51:04 UTC 2012
options:bn(64,64) md2(int) rc4(ptr,int) des(idx,risc1,16,long) aes(partial) blowfish(idx) 
compiler: gcc -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DTERMIO -O3 -Wa,--noexecstack -g -Wall
available timing options: TIMES TIMEB HZ=1024 [sysconf value]
timing function used: times
                  sign    verify    sign/s verify/s
rsa  512 bits 0.019258s 0.001254s     51.9    797.5
rsa 1024 bits 0.064112s 0.003046s     15.6    328.3
rsa 2048 bits 0.325439s 0.008853s      3.1    113.0
rsa 4096 bits 1.979980s 0.028769s      0.5     34.8

Extracting relevant figures for comparisons:

  • OpenSSL speed MD5 8,192 bytes: 3,470.64k
  • OpenSSL speed RSA 4,096 bytes sign/s: 0.5
  • OpenSSL speed RSA 4,096 bytes verify/s: 34.8

Looking at the published AlphaVM benchmarks (Benchmarks - EmuVM), which include figures from a real DS10 6/466:

  • OpenSSL speed MD5 8,192 bytes: 42,636k
  • OpenSSL speed RSA 4,096 bytes sign/s: 3.5
  • OpenSSL speed RSA 4,096 bytes verify/s: 232.0

It is evident that the emulated DS10 6/466 is much slower than the real thing, by about an order of magnitude. However this is with a version of AlphaVM with a basic emulation for the processor, that doesn't include features that improve the emulation performance. The figures for AlphaVM-Pro how how much difference tuning the emulation can make:

  • OpenSSL speed MD5 8,192 bytes: 234,367k
  • OpenSSL speed RSA 4,096 bytes sign/s: 14.3
  • OpenSSL speed RSA 4,096 bytes verify/s: 961.1

With this particular set of results showing performance that surpasses the real hardware.

For rough comparisons of other platforms and emulators see OpenSSL Speed Results.

Thoughts

AlphaVM-Free seems to run Linux for Alpha pretty well, certainly well enough for most hobbyist requirements.

It is interesting that comparing the benchmark performance seen here, with that observed running Linux for Alpha in QEMU on the same host system (see Linux for Alpha on QEMU - System Information), suggests that computational workloads of this nature would work better on QEMU than on AlphaVM-Free. The published benchmarks suggest that AlphaVM-Pro product would be better still.

Further Sources

More information can be found at:


No comments: