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:
- AlphaVM for Windows: User Manual
- [PDF] AlphaVM for Linux User Manual - Free Download PDF
- Running Tru64 UNIX inside a VM for Metasploit testing | Astr0baby's not so random thoughts _____ rand() % 100;
- Unix OS archaeology – Tru64 UNIX part 2 | Astr0baby's not so random thoughts _____ rand() % 100;
- Tru64 5.1B Unix and Oracle 9i infosec exercise | Astr0baby's not so random thoughts _____ rand() % 100;
- virtualbox.org: View topic - hot to enable CMPXCHG16B instruction
No comments:
Post a Comment