QEMU & Linux for PowerPC
A recent post (see Linux for PowerPC on QEMU (mac99) - System Information) looked at Linux on QEMU's 'mac99' machine, an emulation of an Apple PowerMac G4 (AGP Graphics). But what about QEMU's other Power Macintosh system?
QEMU
QEMU provides an emulation of the older, Apple Power Macintosh G3 ("beige").
Checking Apple Support, EveryMac.com, Wikipedia the hardware specification for the 'g3beige' would be:
System | Apple Power Macintosh G3 ("beige") |
---|---|
Mac Firmware | OldWorld |
CPU | PowerPC 750 @ 233, 266, 300, or 333 MHz; upgrade to G4 @ 350 or 400 MHz |
RAM | 32, 64 or 128 MiB (768 MiB max.) |
Bus | PCI |
Storage | built-in IDE controller; 128GB max. HD |
built-in SCSI controller | |
4GB SCSI, 2x 4GB SCSI or 8GB IDE hard disk(s) | |
24x ATAPI/IDE CD-ROM | |
Floppy | 3.5" 1.44MB |
Video | ATI 3D Rage II+, ATI 3D Rage Pro, or ATI 3D Rage Pro Turbo, 6 MiB VRAM |
Audio | Whisper or Wings personality card |
Network | built-in RTL-8029(AS) 10 Mb/s 10baseT ethernet |
Keyboard & Mouse | ADB |
Third-party processor upgrades offered higher spec. G3 and G4 options. Since the emulation will determine the processor speed, we'll go with the default processor.
Emulation Command
For reference the QEMU command used:
qemu-system-ppc \ --machine g3beige \ -hda hda_DebianLinux_g3beige.qcow2 \ -cdrom debian-8.11.0-powerpc-DVD-1.iso \ -g 1024x768x8 \ -net nic \ -net "user,guestfwd=:10.0.2.1:22-cmd:netcat 127.0.0.1 22,hostfwd=::2222-:22" \ -kernel vmlinux-3.16.0-6-powerpc \ -initrd initrd.img-3.16.0-6-powerpc \ -append 'root=/dev/sda3' \ -name 'Debian Linux 8 (jessie) on Power Macintosh G3 (Beige)'
Note that due to issues with the boot loader, a kernel and ramdisk extracted from the installed system are used to start the system.
System Information - Debian Linux 8 (jessie)
With Debian Linux 8 (jessie) for PowerPC installed, lets see what it has to say about the system.
For details of real hardware systems, if you want to compare, see:
- Beige PowerMac G3: a early revision board with an ATI 3D Rage II+
- got quik working with OldWorld G3 Beige 233MHz: a middle revision board with an ATI 3D Rage Pro
- #555651 - installation-reports: Installation Report on oldworld Mac PPC beige G3 233 MHz - Debian Bug report logs: a late revision system
uname & lsb_release
Operating system release and version information:
$ uname -a Linux deb8-g3b 3.16.0-6-powerpc #1 Debian 3.16.56-1+deb8u1 (2018-05-08) ppc GNU/Linux
So a "Linux" kernel, on a node named "deb8-g3b", kernel release "3.16.0-6-powerpc" (a patched 3.16.0 kernel), version "#1 Debian 3.16.56-1+deb8u1 (2018-05-08)", machine type "ppc" for operating system "GNU/Linux".
Distribution information from Linux Standard Base (LSB):
$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.11 (jessie) Release: 8.11 Codename: jessie
Looking at the Debian release information files:
$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 8 (jessie)" NAME="Debian GNU/Linux" VERSION_ID="8" VERSION="8 (jessie)" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" $ cat /etc/debian_version 8.11
Confirmed as a Debian Linux 8 (jessie) distribution.
/proc/cpuinfo & lscpu
Processor information:
$ lscpu Architecture: ppc CPU op-mode(s): 32-bit Byte Order: Big Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 Model: Power Macintosh BogoMIPS: 33.19 L1d cache: 32K L1i cache: 32K $ cat /proc/cpuinfo processor : 0 cpu : 740/750 temperature : 50-126 C (uncalibrated) clock : 266.000000MHz revision : 3.1 (pvr 0008 0301) bogomips : 33.19 timebase : 16596533 platform : PowerMac model : Power Macintosh machine : Power Macintosh motherboard : AAPL,PowerMac G3 MacRISC detected as : 49 (PowerMac G3 (Silk)) pmac flags : 00000000 pmac-generation : OldWorld Memory : 128 MB
As well as the processor there is a bit of information about the system here. Interestingly it identifies as a "PowerMac G3 (Silk)" which suggests the firmware is based on the later revisions of the mainboard, which had OpenFirmware 2.4 and an ATI 3D Rage Pro (Turbo) for the built-in graphics. The earlier revisions of the board firmware identify as:
motherboard : AAPL,Gossamer MacRISC detected as : 48 (PowerMac G3 (Gossamer))
With an older firmware revision, and ATI 3D Rage II+ or ATI 3D Rage Pro graphics.
/proc/meminfo
System memory report:
$ cat /proc/meminfo MemTotal: 122148 kB MemFree: 44404 kB MemAvailable: 91832 kB Buffers: 8844 kB Cached: 45012 kB SwapCached: 0 kB Active: 43824 kB Inactive: 22800 kB Active(anon): 12880 kB Inactive(anon): 4284 kB Active(file): 30944 kB Inactive(file): 18516 kB Unevictable: 0 kB Mlocked: 0 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 122148 kB LowFree: 44404 kB SwapTotal: 358200 kB SwapFree: 358200 kB Dirty: 52 kB Writeback: 0 kB AnonPages: 12780 kB Mapped: 14588 kB Shmem: 4400 kB Slab: 7120 kB SReclaimable: 3408 kB SUnreclaim: 3712 kB KernelStack: 512 kB PageTables: 612 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 419272 kB Committed_AS: 51884 kB VmallocTotal: 883308 kB VmallocUsed: 21868 kB VmallocChunk: 850784 kB
So we have 128 MiB RAM and about 358 MB of swap.
lspci
Report PCI devices:
$ lspci -v 00:00.0 Host bridge: Motorola MPC106 [Grackle] (prog-if 01) Subsystem: Red Hat, Inc Device 1100 Flags: fast devsel 00:01.0 VGA compatible controller: Device 1234:1111 (rev 02) (prog-if 00 [VGA controller]) Subsystem: Red Hat, Inc Device 1100 Flags: fast devsel Memory at 80000000 (32-bit, prefetchable) [size=16M] Memory at 81000000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at 81010000 [disabled] [size=64K] Kernel driver in use: bochs-drm 00:02.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS) Subsystem: Red Hat, Inc QEMU Virtual Machine Flags: fast devsel, IRQ 23 I/O ports at 1000 [size=256] Expansion ROM at 81040000 [disabled] [size=256K] Kernel driver in use: ne2k-pci 00:10.0 Unassigned class [ff00]: Apple Inc. Heathrow Mac I/O Subsystem: Red Hat, Inc Device 1100 Flags: bus master, fast devsel, latency 0 Memory at 81080000 (32-bit, non-prefetchable) [size=512K] Kernel driver in use: macio
Leaving aside the generic VGA device in place of the ATI 3D Rage II+/Pro, this looks okay when compared to a real system.
report-hw
Report hardware information using commands:
$ report-hw uname -a: Linux deb8-g3b 3.16.0-6-powerpc #1 Debian 3.16.56-1+deb8u1 (2018-05-08) ppc GNU/Linux lspci -knn: 00:00.0 Host bridge [0600]: Motorola MPC106 [Grackle] [1057:0002] lspci -knn: Subsystem: Red Hat, Inc Device [1af4:1100] lspci -knn: 00:01.0 VGA compatible controller [0300]: Device [1234:1111] (rev 02) lspci -knn: Subsystem: Red Hat, Inc Device [1af4:1100] lspci -knn: Kernel driver in use: bochs-drm lspci -knn: 00:02.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8029(AS) [10ec:8029] lspci -knn: Subsystem: Red Hat, Inc QEMU Virtual Machine [1af4:1100] lspci -knn: Kernel driver in use: ne2k-pci lspci -knn: 00:10.0 Unassigned class [ff00]: Apple Inc. Heathrow Mac I/O [106b:0010] lspci -knn: Subsystem: Red Hat, Inc Device [1af4:1100] lspci -knn: Kernel driver in use: macio usb: No USB information available lsmod: Module Size Used by lsmod: uinput 7802 2 lsmod: nfsd 264823 2 lsmod: auth_rpcgss 49048 1 nfsd lsmod: oid_registry 2255 1 auth_rpcgss lsmod: nfs_acl 2919 1 nfsd lsmod: nfs 185328 0 lsmod: lockd 76158 2 nfs,nfsd lsmod: fscache 42624 1 nfs lsmod: sunrpc 237002 6 nfs,nfsd,auth_rpcgss,lockd,nfs_acl lsmod: evdev 11401 2 lsmod: bochs_drm 16809 1 lsmod: ttm 58895 1 bochs_drm lsmod: drm_kms_helper 43002 1 bochs_drm lsmod: drm 230603 4 ttm,bochs_drm,drm_kms_helper lsmod: syscopyarea 2930 1 bochs_drm lsmod: sysfillrect 3514 1 bochs_drm lsmod: sysimgblt 1851 1 bochs_drm lsmod: autofs4 27653 2 lsmod: ext4 474308 2 lsmod: crc16 1143 1 ext4 lsmod: mbcache 6076 1 ext4 lsmod: jbd2 73772 1 ext4 lsmod: sg 22219 0 lsmod: sr_mod 15552 0 lsmod: cdrom 43116 1 sr_mod lsmod: sd_mod 38704 4 lsmod: crc_t10dif 963 1 sd_mod lsmod: crct10dif_generic 1401 1 lsmod: crct10dif_common 1220 2 crct10dif_generic,crc_t10dif lsmod: ne2k_pci 9547 0 lsmod: 8390 12688 1 ne2k_pci df: Filesystem 1K-blocks Used Available Use% Mounted on df: /dev/sda3 19912588 710868 18167172 4% / df: udev 10240 0 10240 0% /dev df: tmpfs 24432 4396 20036 18% /run df: tmpfs 61072 0 61072 0% /dev/shm df: tmpfs 5120 0 5120 0% /run/lock df: tmpfs 61072 0 61072 0% /sys/fs/cgroup df: /dev/sda2 242078 27821 201757 13% /boot free: total used free shared buffers cached free: Mem: 122148 76184 45964 4400 8436 43776 free: -/+ buffers/cache: 23972 98176 free: Swap: 358200 0 358200 /proc/cmdline: root=/dev/sda3 /proc/cpuinfo: processor : 0 /proc/cpuinfo: cpu : 740/750 /proc/cpuinfo: temperature : 50-126 C (uncalibrated) /proc/cpuinfo: clock : 266.000000MHz /proc/cpuinfo: revision : 3.1 (pvr 0008 0301) /proc/cpuinfo: bogomips : 33.19 /proc/cpuinfo: timebase : 16596533 /proc/cpuinfo: platform : PowerMac /proc/cpuinfo: model : Power Macintosh /proc/cpuinfo: machine : Power Macintosh /proc/cpuinfo: motherboard : AAPL,PowerMac G3 MacRISC /proc/cpuinfo: detected as : 49 (PowerMac G3 (Silk)) /proc/cpuinfo: pmac flags : 00000000 /proc/cpuinfo: pmac-generation : OldWorld /proc/cpuinfo: Memory : 128 MB /proc/ioports: 00000000-007fffff : /pci@80000000 /proc/ioports: 00000000-00000fff : Legacy IO /proc/ioports: 00001000-000010ff : 0000:00:02.0 /proc/ioports: 00001000-0000101f : ne2k-pci /proc/iomem: 00000000-07ffffff : System RAM /proc/iomem: 80000000-8fffffff : /pci@80000000 /proc/iomem: 80000000-80ffffff : 0000:00:01.0 /proc/iomem: 80000000-80ffffff : bochs-drm /proc/iomem: 81000000-81000fff : 0000:00:01.0 /proc/iomem: 81000000-81000fff : bochs-drm /proc/iomem: 81010000-8101ffff : 0000:00:01.0 /proc/iomem: 81040000-8107ffff : 0000:00:02.0 /proc/iomem: 81080000-810fffff : 0000:00:10.0 /proc/iomem: 81080000-810fffff : 0.81080000:mac-io /proc/iomem: 81088b00-81088bff : 0.00020000:ata-3 /proc/iomem: 81088b00-81088bff : pata-macio-dma /proc/iomem: 81088d00-81088dff : 0.00021000:ata-3 /proc/iomem: 81088d00-81088dff : pata-macio-dma /proc/iomem: 81093000-81093000 : 0.00013000:ch-b /proc/iomem: 81093000-81093000 : pmac_zilog /proc/iomem: 81093010-81093010 : 0.00013000:ch-b /proc/iomem: 81093010-81093010 : pmac_zilog /proc/iomem: 81093020-81093020 : 0.00013020:ch-a /proc/iomem: 81093020-81093020 : pmac_zilog /proc/iomem: 81093030-81093030 : 0.00013020:ch-a /proc/iomem: 81093030-81093030 : pmac_zilog /proc/iomem: 81093040-81093040 : 0.00013000:ch-b /proc/iomem: 81093040-81093040 : pmac_zilog /proc/iomem: 81093050-81093050 : 0.00013020:ch-a /proc/iomem: 81093050-81093050 : pmac_zilog /proc/iomem: 81096000-81097fff : 0.00016000:via-cuda /proc/iomem: 810a0000-810a0fff : 0.00020000:ata-3 /proc/iomem: 810a0000-810a0fff : pata-macio /proc/iomem: 810a1000-810a1fff : 0.00021000:ata-3 /proc/iomem: 810a1000-810a1fff : pata-macio /proc/iomem: 810e0000-810fffff : 0.00060000:nvram /proc/iomem: fd000000-fdffffff : /pci@80000000 /proc/iomem: fd0a0000-fd0bffff : Legacy VGA memory /proc/interrupts: CPU0 /proc/interrupts: 18: 1162 PMAC-PIC 18 Level ADB /proc/interrupts: 19: 3149 PMAC-PIC 13 Level pata-macio /proc/interrupts: 20: 0 PMAC-PIC 20 Level NMI - XMON /proc/interrupts: 22: 907 PMAC-PIC 14 Level pata-macio /proc/interrupts: 23: 679 PMAC-PIC 23 Level eth0 /proc/interrupts: LOC: 19647 Local timer interrupts for timer event device /proc/interrupts: LOC: 649 Local timer interrupts for others /proc/interrupts: SPU: 0 Spurious interrupts /proc/interrupts: PMI: 0 Performance monitoring interrupts /proc/interrupts: MCE: 0 Machine check exceptions /proc/meminfo: MemTotal: 122148 kB /proc/meminfo: MemFree: 46020 kB /proc/meminfo: MemAvailable: 91800 kB /proc/meminfo: Buffers: 8436 kB /proc/meminfo: Cached: 43776 kB /proc/meminfo: SwapCached: 0 kB /proc/meminfo: Active: 43288 kB /proc/meminfo: Inactive: 21700 kB /proc/meminfo: Active(anon): 12892 kB /proc/meminfo: Inactive(anon): 4280 kB /proc/meminfo: Active(file): 30396 kB /proc/meminfo: Inactive(file): 17420 kB /proc/meminfo: Unevictable: 0 kB /proc/meminfo: Mlocked: 0 kB /proc/meminfo: HighTotal: 0 kB /proc/meminfo: HighFree: 0 kB /proc/meminfo: LowTotal: 122148 kB /proc/meminfo: LowFree: 46020 kB /proc/meminfo: SwapTotal: 358200 kB /proc/meminfo: SwapFree: 358200 kB /proc/meminfo: Dirty: 0 kB /proc/meminfo: Writeback: 0 kB /proc/meminfo: AnonPages: 12800 kB /proc/meminfo: Mapped: 14660 kB /proc/meminfo: Shmem: 4400 kB /proc/meminfo: Slab: 7124 kB /proc/meminfo: SReclaimable: 3400 kB /proc/meminfo: SUnreclaim: 3724 kB /proc/meminfo: KernelStack: 520 kB /proc/meminfo: PageTables: 640 kB /proc/meminfo: NFS_Unstable: 0 kB /proc/meminfo: Bounce: 0 kB /proc/meminfo: WritebackTmp: 0 kB /proc/meminfo: CommitLimit: 419272 kB /proc/meminfo: Committed_AS: 51996 kB /proc/meminfo: VmallocTotal: 883308 kB /proc/meminfo: VmallocUsed: 21852 kB /proc/meminfo: VmallocChunk: 850500 kB /proc/bus/input/devices: I: Bus=0017 Vendor=0001 Product=2202 Version=0100 /proc/bus/input/devices: N: Name="ADB keyboard" /proc/bus/input/devices: P: Phys=adb2:2.02/input /proc/bus/input/devices: S: Sysfs=/devices/virtual/input/input0 /proc/bus/input/devices: U: Uniq= /proc/bus/input/devices: H: Handlers=sysrq kbd event0 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=120003 /proc/bus/input/devices: B: KEY=10000 0 0 0 0 0 0 0 0 0 0 feb0ffdf 3cfffff ffffffff fffffffe /proc/bus/input/devices: B: LED=7 /proc/bus/input/devices: /proc/bus/input/devices: I: Bus=0017 Vendor=0001 Product=3303 Version=0100 /proc/bus/input/devices: N: Name="ADB mouse" /proc/bus/input/devices: P: Phys=adb3:3.03/input /proc/bus/input/devices: S: Sysfs=/devices/virtual/input/input1 /proc/bus/input/devices: U: Uniq= /proc/bus/input/devices: H: Handlers=mouse0 event1 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=7 /proc/bus/input/devices: B: KEY=70000 0 0 0 0 0 0 0 0 /proc/bus/input/devices: B: REL=3 /proc/bus/input/devices: /proc/bus/input/devices: I: Bus=0006 Vendor=001f Product=001f Version=0000 /proc/bus/input/devices: N: Name="Mouseemu virtual keyboard" /proc/bus/input/devices: P: Phys= /proc/bus/input/devices: S: Sysfs=/devices/virtual/input/input2 /proc/bus/input/devices: U: Uniq= /proc/bus/input/devices: H: Handlers=sysrq kbd event2 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=100003 /proc/bus/input/devices: B: KEY=1ffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe /proc/bus/input/devices: /proc/bus/input/devices: I: Bus=0006 Vendor=001f Product=001e Version=0000 /proc/bus/input/devices: N: Name="Mouseemu virtual mouse" /proc/bus/input/devices: P: Phys= /proc/bus/input/devices: S: Sysfs=/devices/virtual/input/input3 /proc/bus/input/devices: U: Uniq= /proc/bus/input/devices: H: Handlers=mouse1 event3 /proc/bus/input/devices: B: PROP=0 /proc/bus/input/devices: B: EV=7 /proc/bus/input/devices: B: KEY=70000 0 0 0 0 0 0 0 0 /proc/bus/input/devices: B: REL=103 /proc/bus/input/devices:
Lots of information about the emulated hardware and the operating system here.
dmesg
System messages:
$ dmesg [ 0.000000] Using PowerMac machine description [ 0.000000] Total memory = 128MB; using 256kB for hash table (at c7fc0000) [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.16.0-6-powerpc (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 Debian 3.16.56-1+deb8u1 (2018-05-08) [ 0.000000] Found initrd at 0xc19a2000:0xc272964b [ 0.000000] Found a Heathrow mac-io controller, rev: 0, mapped at 0xff780000 [ 0.000000] PowerMac motherboard: PowerMac G3 (Silk) [ 0.000000] bootconsole [udbg0] enabled [ 0.000000] Found Grackle (MPC106) PCI host bridge at 0x0000000080000000. Firmware bus number: 0->0 [ 0.000000] PCI host bridge /pci@80000000 (primary) ranges: [ 0.000000] IO 0x00000000fe000000..0x00000000fe7fffff -> 0x0000000000000000 [ 0.000000] MEM 0x00000000fd000000..0x00000000fdffffff -> 0x0000000000000000 [ 0.000000] MEM 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000 [ 0.000000] nvram: OF partition at 0x1800 [ 0.000000] nvram: XP partition at 0x1300 [ 0.000000] nvram: NR partition at 0x1400 [ 0.000000] Top of RAM: 0x8000000, Total RAM: 0x8000000 [ 0.000000] Memory hole size: 0MB [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x00000000-0x07ffffff] [ 0.000000] Normal empty [ 0.000000] HighMem empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00000000-0x07ffffff] [ 0.000000] On node 0 totalpages: 32768 [ 0.000000] free_area_init_node: node 0, pgdat c07269c8, node_mem_map c08a7000 [ 0.000000] DMA zone: 256 pages used for memmap [ 0.000000] DMA zone: 0 pages reserved [ 0.000000] DMA zone: 32768 pages, LIFO batch:7 [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 [ 0.000000] pcpu-alloc: [0] 0 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 [ 0.000000] Kernel command line: root=/dev/sda3 [ 0.000000] PID hash table entries: 512 (order: -1, 2048 bytes) [ 0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) [ 0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) [ 0.000000] Sorting __ex_table... [ 0.000000] Memory: 106872K/131072K available (5164K kernel code, 424K rwdata, 1428K rodata, 404K init, 1403K bss, 24200K reserved, 0K highmem) [ 0.000000] Kernel virtual memory layout: [ 0.000000] * 0xfffcf000..0xfffff000 : fixmap [ 0.000000] * 0xff800000..0xffc00000 : highmem PTEs [ 0.000000] * 0xfee9b000..0xff800000 : early ioremap [ 0.000000] * 0xc9000000..0xfee9b000 : vmalloc & ioremap [ 0.000000] NR_IRQS:512 nr_irqs:512 16 [ 0.000000] irq: Found primary Apple PIC /pci@80000000/mac-io@10 for 64 irqs [ 0.000000] irq: System has 64 possible interrupts [ 0.000000] GMT Delta read from XPRAM: 0 minutes, DST: off [ 0.000000] time_init: decrementer frequency = 16.596533 MHz [ 0.000000] time_init: processor frequency = 266.000000 MHz [ 0.000961] clocksource: timebase mult[3c40e888] shift[24] registered [ 0.001513] clockevent: decrementer mult[43fab9e] shift[32] cpu[0] [ 0.010809] Console: colour dummy device 80x25 [ 0.011204] console [tty0] enabled [ 0.011787] bootconsole [udbg0] disabled [ 0.014943] pid_max: default: 32768 minimum: 301 [ 0.015718] Security Framework initialized [ 0.020179] AppArmor: AppArmor disabled by boot time parameter [ 0.020268] Yama: disabled by default; enable with sysctl kernel.yama.* [ 0.021896] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.021968] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.035171] Initializing cgroup subsys memory [ 0.035581] Initializing cgroup subsys devices [ 0.035776] Initializing cgroup subsys freezer [ 0.035917] Initializing cgroup subsys net_cls [ 0.036065] Initializing cgroup subsys blkio [ 0.036180] Initializing cgroup subsys perf_event [ 0.036340] Initializing cgroup subsys net_prio [ 0.036923] ftrace: allocating 17989 entries in 53 pages [ 0.121240] devtmpfs: initialized [ 0.129501] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.140082] NET: Registered protocol family 16 [ 0.157227] PCI: Probing PCI hardware [ 0.159278] PCI host bridge to bus 0000:00 [ 0.160068] pci_bus 0000:00: root bus resource [io 0x0000-0x7fffff] [ 0.160254] pci_bus 0000:00: root bus resource [mem 0xfd000000-0xfdffffff] (bus address [0x00000000-0x00ffffff]) [ 0.160397] pci_bus 0000:00: root bus resource [mem 0x80000000-0x8fffffff] [ 0.161193] pci_bus 0000:00: root bus resource [bus 00-ff] [ 0.161526] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff [ 0.163259] pci 0000:00:00.0: [1057:0002] type 00 class 0x060001 [ 0.166524] pci 0000:00:01.0: [1234:1111] type 00 class 0x030000 [ 0.168094] pci 0000:00:01.0: reg 0x10: [mem 0x80000000-0x80ffffff pref] [ 0.170240] pci 0000:00:01.0: reg 0x18: [mem 0x81000000-0x81000fff] [ 0.175131] pci 0000:00:01.0: reg 0x30: [mem 0x81010000-0x8101ffff pref] [ 0.175837] pci 0000:00:02.0: [10ec:8029] type 00 class 0x020000 [ 0.176566] pci 0000:00:02.0: reg 0x10: [io 0x1000-0x10ff] [ 0.181390] pci 0000:00:02.0: reg 0x30: [mem 0x81040000-0x8107ffff pref] [ 0.181947] pci 0000:00:10.0: [106b:0010] type 00 class 0xff0000 [ 0.182187] pci 0000:00:10.0: reg 0x10: [mem 0x81080000-0x810fffff] [ 0.185795] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00 [ 0.189010] pci_bus 0000:00: resource 4 [io 0x0000-0x7fffff] [ 0.189056] pci_bus 0000:00: resource 5 [mem 0xfd000000-0xfdffffff] [ 0.189180] pci_bus 0000:00: resource 6 [mem 0x80000000-0x8fffffff] [ 0.211371] vgaarb: setting as boot device: PCI:0000:00:01.0 [ 0.211660] vgaarb: device added: PCI:0000:00:01.0,decodes=io+mem,owns=io+mem,locks=none [ 0.211976] vgaarb: loaded [ 0.212050] vgaarb: bridge control possible 0000:00:01.0 [ 0.214177] SCSI subsystem initialized [ 0.215143] libata version 3.00 loaded. [ 0.225509] Switched to clocksource timebase [ 0.294449] NET: Registered protocol family 2 [ 0.303201] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.303327] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.303579] TCP: Hash tables configured (established 1024 bind 1024) [ 0.304620] TCP: reno registered [ 0.304723] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.304900] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.307088] NET: Registered protocol family 1 [ 0.307802] PCI: CLS 0 bytes, default 32 [ 0.315674] Unpacking initramfs... [ 1.554190] Freeing initrd memory: 13852K (c19a2000 - c2729000) [ 1.555534] Thermal assist unit using timers, shrink_timer: 500 jiffies [ 1.560612] audit: initializing netlink subsys (disabled) [ 1.562243] audit: type=2000 audit(1624135833.503:1): initialized [ 1.568405] zbud: loaded [ 1.569970] VFS: Disk quotas dquot_6.5.2 [ 1.570150] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 1.571749] msgmni has been set to 237 [ 1.593935] alg: No test for stdrng (krng) [ 1.594330] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 1.595280] io scheduler noop registered [ 1.595373] io scheduler deadline registered [ 1.595932] io scheduler cfq registered (default) [ 1.600923] Using unsupported 1024x768 QEMU,VGA at 80000000, depth=8, pitch=1024 [ 1.614930] Console: switching to colour frame buffer device 128x48 [ 1.619808] fb0: Open Firmware frame buffer device on /pci@80000000/QEMU,VGA@1 [ 1.621158] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled [ 1.625143] pmac_zilog: 0.6 (Benjamin Herrenschmidt <benh@kernel.crashing.org>) [ 1.625585] Serial: MPC52xx PSC UART driver [ 1.628901] Generic non-volatile memory driver v1.1 [ 1.629564] Linux agpgart interface v0.103 [ 1.631321] MacIO PCI driver attached to Heathrow chipset [ 1.636621] 0.00013020:ch-a: ttyPZ0 at MMIO 0x81093020 (irq = 16, base_baud = 230400) is a Z85c30 ESCC - Serial port [ 1.638191] 0.00013000:ch-b: ttyPZ1 at MMIO 0x81093000 (irq = 17, base_baud = 230400) is a Z85c30 ESCC - Serial port [ 1.644593] Macintosh CUDA driver v0.5 for Unified ADB. [ 1.651824] adb: starting probe task... [ 1.683256] adb devices: [2]: 2 2 [3]: 3 3 [ 1.689745] ADB keyboard at 2, handler 1 [ 1.690181] Detected ADB keyboard, type ANSI. [ 1.692220] input: ADB keyboard as /devices/virtual/input/input0 [ 1.703426] ADB mouse at 3, handler set to 3 (Mouse Systems A3 Mouse, or compatible) [ 1.707131] input: ADB mouse as /devices/virtual/input/input1 [ 1.707363] adb: finished probe task... [ 2.670842] pata-macio 0.00020000:ata-3: Activating pata-macio chipset Heathrow ATA, Apple bus ID 0 [ 2.686799] scsi0 : pata_macio [ 2.691557] ata1: PATA max MWDMA2 irq 19 [ 2.951114] ata1.01: NODEV after polling detection [ 2.955454] ata1.00: ATA-7: QEMU HARDDISK, 2.5+, max UDMA/100 [ 2.955674] ata1.00: 41943040 sectors, multi 16: LBA48 [ 2.959421] ata1.00: configured for MWDMA2 [ 2.988551] scsi 0:0:0:0: Direct-Access ATA QEMU HARDDISK 2.5+ PQ: 0 ANSI: 5 [ 3.946353] pata-macio 0.00021000:ata-3: Activating pata-macio chipset Heathrow ATA, Apple bus ID 1 [ 3.967535] scsi1 : pata_macio [ 3.972663] ata2: PATA max MWDMA2 irq 22 [ 3.986249] mousedev: PS/2 mouse device common for all mice [ 4.000633] rtc-generic rtc-generic: rtc core: registered rtc-generic as rtc0 [ 4.005099] ledtrig-cpu: registered to indicate activity on CPUs [ 4.009705] TCP: cubic registered [ 4.013578] NET: Registered protocol family 10 [ 4.026306] mip6: Mobile IPv6 [ 4.029267] NET: Registered protocol family 17 [ 4.032707] mpls_gso: MPLS GSO support [ 4.038023] registered taskstats version 1 [ 4.052026] rtc-generic rtc-generic: setting system clock to 2021-06-19 20:50:36 UTC (1624135836) [ 4.056580] PM: Hibernation image not present or could not be loaded. [ 4.161240] ata2.01: NODEV after polling detection [ 4.163126] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100 [ 4.172459] ata2.00: configured for MWDMA2 [ 4.201228] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5 [ 4.292531] Freeing unused kernel memory: 404K (c0674000 - c06d9000) [ 4.880467] systemd-udevd[56]: starting version 215 [ 4.945234] random: systemd-udevd: uninitialized urandom read (16 bytes read, 6 bits of entropy available) [ 5.224244] ne2k-pci.c:v1.03 9/22/2003 D. Becker/P. Gortmaker [ 5.285099] ne2k-pci 0000:00:02.0 eth0: RealTek RTL-8029 found at 0x1000, IRQ 23, 52:54:00:12:34:56. [ 5.349073] sd 0:0:0:0: [sda] 41943040 512-byte logical blocks: (21.4 GB/20.0 GiB) [ 5.375886] sd 0:0:0:0: [sda] Write Protect is off [ 5.378975] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 [ 5.386254] sr0: scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray [ 5.389987] cdrom: Uniform CD-ROM driver Revision: 3.20 [ 5.396924] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA [ 5.430839] sr 1:0:0:0: Attached scsi CD-ROM sr0 [ 5.475868] sd 0:0:0:0: Attached scsi generic sg0 type 0 [ 5.491743] sr 1:0:0:0: Attached scsi generic sg1 type 5 [ 5.509096] sda: [mac] sda1 sda2 sda3 sda4 sda5 [ 5.568858] sd 0:0:0:0: [sda] Attached SCSI disk [ 6.803525] PM: Starting manual resume from disk [ 6.806506] PM: Hibernation image partition 8:4 present [ 6.806558] PM: Looking for hibernation image. [ 6.813317] PM: Image not found (code -22) [ 6.813387] PM: Hibernation image not present or could not be loaded. [ 7.782707] EXT4-fs (sda3): mounted filesystem with ordered data mode. Opts: (null) [ 8.708596] random: nonblocking pool is initialized [ 8.771201] systemd[1]: systemd 215 running in system mode. (+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR) [ 8.781150] systemd[1]: Detected architecture 'ppc'. [ 8.916497] systemd[1]: Inserted module 'autofs4' [ 8.930955] systemd[1]: Set hostname to <deb8-g3b>. [ 8.976160] systemd[1]: /etc/mtab is not a symlink or not pointing to /proc/self/mounts. This is not supported anymore. Please make sure to replace this file by a symlink to avoid incorrect or misleading mount(8) output. [ 10.346644] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory. [ 10.378259] systemd[1]: Starting Forward Password Requests to Wall Directory Watch. [ 10.384402] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ 10.394152] systemd[1]: Starting Remote File Systems (Pre). [ 10.407937] systemd[1]: Reached target Remote File Systems (Pre). [ 10.412870] systemd[1]: Starting Dispatch Password Requests to Console Directory Watch. [ 10.416739] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ 10.426232] systemd[1]: Starting Paths. [ 10.434311] systemd[1]: Reached target Paths. [ 10.443020] systemd[1]: Starting Encrypted Volumes. [ 10.450577] systemd[1]: Reached target Encrypted Volumes. [ 10.458411] systemd[1]: Starting Arbitrary Executable File Formats File System Automount Point. [ 10.475434] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point. [ 10.480375] systemd[1]: Expecting device dev-disk-by\x2duuid-b4bbba30\x2d4b99\x2d4139\x2dbb3f\x2d03213722c8ca.device... [ 10.492270] systemd[1]: Expecting device dev-disk-by\x2duuid-ae4edcd7\x2d6ef8\x2d4ced\x2da812\x2dc6ab8ec4d54f.device... [ 10.500950] systemd[1]: Starting Root Slice. [ 10.516686] systemd[1]: Created slice Root Slice. [ 10.520115] systemd[1]: Starting User and Session Slice. [ 10.532420] systemd[1]: Created slice User and Session Slice. [ 10.535682] systemd[1]: Starting /dev/initctl Compatibility Named Pipe. [ 10.553033] systemd[1]: Listening on /dev/initctl Compatibility Named Pipe. [ 10.561127] systemd[1]: Starting Delayed Shutdown Socket. [ 10.570280] systemd[1]: Listening on Delayed Shutdown Socket. [ 10.579938] systemd[1]: Starting Journal Socket (/dev/log). [ 10.588555] systemd[1]: Listening on Journal Socket (/dev/log). [ 10.596990] systemd[1]: Starting udev Control Socket. [ 10.605490] systemd[1]: Listening on udev Control Socket. [ 10.616776] systemd[1]: Starting udev Kernel Socket. [ 10.624534] systemd[1]: Listening on udev Kernel Socket. [ 10.633905] systemd[1]: Starting Journal Socket. [ 10.642351] systemd[1]: Listening on Journal Socket. [ 10.650199] systemd[1]: Starting System Slice. [ 10.657748] systemd[1]: Created slice System Slice. [ 10.665136] systemd[1]: Started File System Check on Root Device. [ 10.668424] systemd[1]: Starting system-systemd\x2dfsck.slice. [ 10.681340] systemd[1]: Created slice system-systemd\x2dfsck.slice. [ 10.684552] systemd[1]: Starting system-getty.slice. [ 10.692386] systemd[1]: Created slice system-getty.slice. [ 10.699453] systemd[1]: Starting Increase datagram queue length... [ 10.749195] systemd[1]: Mounting POSIX Message Queue File System... [ 10.819339] systemd[1]: Starting udev Coldplug all Devices... [ 10.913667] systemd[1]: Starting Create list of required static device nodes for the current kernel... [ 11.042552] systemd[1]: Started Set Up Additional Binary Formats. [ 11.090417] systemd[1]: Starting Load Kernel Modules... [ 11.194695] systemd[1]: Mounted Huge Pages File System. [ 11.227165] systemd[1]: Mounting Debug File System... [ 11.337252] systemd[1]: Starting Slices. [ 11.437379] systemd[1]: Reached target Slices. [ 11.550394] systemd[1]: Mounted POSIX Message Queue File System. [ 11.697973] systemd[1]: Started Increase datagram queue length. [ 11.886474] systemd[1]: Started Create list of required static device nodes for the current kernel. [ 11.978177] systemd[1]: Started Load Kernel Modules. [ 12.053488] systemd[1]: Mounted Debug File System. [ 12.516729] systemd[1]: Started udev Coldplug all Devices. [ 12.650223] systemd[1]: Mounted FUSE Control File System. [ 12.654096] systemd[1]: Mounted Configuration File System. [ 12.656719] systemd[1]: Starting Apply Kernel Variables... [ 12.686542] systemd[1]: Starting Create Static Device Nodes in /dev... [ 12.733851] systemd[1]: Starting Syslog Socket. [ 12.759818] systemd[1]: Listening on Syslog Socket. [ 12.774010] systemd[1]: Starting Journal Service... [ 12.905593] systemd[1]: Started Journal Service. [ 13.618591] systemd-udevd[137]: starting version 215 [ 15.036664] [drm] Initialized drm 1.1.0 20060810 [ 15.366234] checking generic (80000000 c0000) vs hw (80000000 1000000) [ 15.366297] fb: switching to bochsdrmfb from OFfb QEMU,VGA [ 15.369610] Console: switching to colour dummy device 80x25 [ 15.467283] [drm] Found bochs VGA, ID 0xb0c5. [ 15.467377] [drm] Framebuffer size 16384 kB @ 0x80000000, mmio @ 0x81000000. [ 15.489870] [TTM] Zone kernel: Available graphics memory: 61074 kiB [ 15.489980] [TTM] Initializing pool allocator [ 15.757899] Console: switching to colour frame buffer device 128x48 [ 16.017987] bochs-drm 0000:00:01.0: fb0: bochsdrmfb frame buffer device [ 16.018270] bochs-drm 0000:00:01.0: registered panic notifier [ 16.018786] [drm] Initialized bochs-drm 1.0.0 20130925 for 0000:00:01.0 on minor 0 [ 17.647076] Adding 358200k swap on /dev/sda4. Priority:-1 extents:1 across:358200k FS [ 20.107964] EXT4-fs (sda3): re-mounted. Opts: errors=remount-ro [ 20.526336] EXT4-fs (sda2): mounting ext2 file system using the ext4 subsystem [ 20.544621] EXT4-fs (sda2): mounted filesystem without journal. Opts: (null) [ 21.552031] systemd-journald[133]: Received request to flush runtime journal from PID 1 [ 32.379695] RPC: Registered named UNIX socket transport module. [ 32.396658] RPC: Registered udp transport module. [ 32.407123] RPC: Registered tcp transport module. [ 32.414957] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 32.811843] FS-Cache: Loaded [ 32.942085] FS-Cache: Netfs 'nfs' registered for caching [ 33.182179] Installing knfsd (copyright (C) 1996 okir@monad.swb.de). [ 38.496548] input: Mouseemu virtual keyboard as /devices/virtual/input/input2 [ 38.535855] input: Mouseemu virtual mouse as /devices/virtual/input/input3
Lots of information about hardware detection and initalization.
Benchmark
Since this is an emulated machine an obvious question is, how well does it perform compared to the real thing?
BogoMips
The BogoMips (Wikipedia) pseudo-benchmark has a behavior where the score is related to the processor clock speed, and has an easily available collection of results from a range of systems (see BogoMips mini-Howto). BogoMips is used by the Linux kernel to calibrate a wait loop. The value is obtained at boot, and is reported by '/proc/cpuinfo' and 'lscpu' (see above). Depending on the platform the BogoMips result may also be reported in 'dmesg' along with an indication of the method used to derive the score.
On our emulated 'g3beige' system we get (from /proc/cpuinfo):
BogoMIPS: 33.19
Since the BogoMips score for PowerPC is about twice the processor clock speed, this would suggest that the emulated processor is roughly equivalent to a G3 running at 16 MHz. Which seems way too low for the observed performance.
From the investigation of this issue for the 'mac99' system, we know that during the Linux 2.6 kernels there was a change to the BogoMips calculation on PowerPC that meant is was derived by doubling the timer fequency. Checking some figures for Power Macintosh G3 hardware found online confirms this behaviour:
CPU | Kernel | BogoMips | Source |
---|---|---|---|
740/750 @ 233 MHz | 2.6.8 | 465.92 | got quik working with OldWorld G3 Beige 233MHz |
740/750 @ 300 MHz | 2.6.15 | 600.06 | Bug#379365: marked as done (Semi-successful install with miBoot floppy set and Netinst CD on OldWorld Mac...) |
740/750 @ 266 MHz | 2.6.26 | 33.28 | #555651 - installation-reports: Installation Report on oldworld Mac PPC beige G3 233 MHz - Debian Bug report logs |
740/750 @ 266 MHz | 2.6.32 | 33.41 | Beige PowerMac G3 |
Verifying with install disks for various Debian Linux releases on our QEMU 'mac99' system, so we can get some calculated BogoMips figures:
Debian Release | Linux Kernel | BogoMips Source | BogoMips Result |
---|---|---|---|
3.0r6 (woody) | 2.4.18 | dmesg | Calibrating delay loop... 1022.36 BogoMIPS |
3.1r8 (sarge) | 2.6.8 | dmesg | Calibrating delay loop... 1044.48 BogoMIPS |
4.0r9 (etch) | 2.6.18 | dmesg | Calibrating delay loop... 36.86 BogoMIPS (lpj=73728) |
5.0.10 (lenny) | 2.6.26 | dmesg | Calibrating delay loop... 38.65 BogoMIPS (lpj=77312) |
6.0.10 (squeeze) | 2.6.32 | cpuinfo | bogomips : 33.20 |
7.11.0 (wheezy) | 3.2.0 | cpuinfo | bogomips : 33.21 |
8.11.0 (jessie) | 3.16.0 | cpuinfo | bogomips : 33.19 |
Since the older kernels give processor based Bogomips results, we can estimate the equivalent processor clock for these numbers. The PowerPC Bogomips is normally about twice the processor clock, so the little over 1000 results suggest a processor clock of a little over 500 MHz. Which would place this emulated system around the performance of the higher end models of the original Blue&White PowerMac G3 hardware, which is quite a bit beyond the Power Macintosh G3 ("beige") for which the high end model only had a 333 MHz processor.
OpenSSL
The OpenSSL cryptographic library provides a tool providing a command-line interface to the library methods and one aspect of this provides a speed test. Since I'm mostly interested in older systems I'm going to focus on the common RSA and MD5 methods.
$ openssl speed md5 Doing md5 for 3s on 16 size blocks: 336528 md5's in 2.99s Doing md5 for 3s on 64 size blocks: 332707 md5's in 3.00s Doing md5 for 3s on 256 size blocks: 277699 md5's in 3.00s Doing md5 for 3s on 1024 size blocks: 180009 md5's in 2.99s Doing md5 for 3s on 8192 size blocks: 39722 md5's in 3.00s OpenSSL 1.0.1t 3 May 2016 built on: Thu Mar 29 12:14:07 2018 options:bn(64,32) rc4(ptr,char) des(idx,risc1,16,long) aes(partial) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md5 1800.82k 7097.75k 23696.98k 61648.57k 108467.54k $ openssl speed rsa Doing 512 bit private rsa's for 10s: 5458 512 bit private RSA's in 10.00s Doing 512 bit public rsa's for 10s: 53427 512 bit public RSA's in 9.99s Doing 1024 bit private rsa's for 10s: 1066 1024 bit private RSA's in 9.98s Doing 1024 bit public rsa's for 10s: 15852 1024 bit public RSA's in 9.99s Doing 2048 bit private rsa's for 10s: 132 2048 bit private RSA's in 10.01s Doing 2048 bit public rsa's for 10s: 5278 2048 bit public RSA's in 9.99s Doing 4096 bit private rsa's for 10s: 22 4096 bit private RSA's in 10.07s Doing 4096 bit public rsa's for 10s: 1575 4096 bit public RSA's in 10.00s OpenSSL 1.0.1t 3 May 2016 built on: Thu Mar 29 12:14:07 2018 options:bn(64,32) rc4(ptr,char) des(idx,risc1,16,long) aes(partial) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM sign verify sign/s verify/s rsa 512 bits 0.001832s 0.000187s 545.8 5348.0 rsa 1024 bits 0.009362s 0.000630s 106.8 1586.8 rsa 2048 bits 0.075833s 0.001893s 13.2 528.3 rsa 4096 bits 0.457727s 0.006349s 2.2 157.5
Extracting the relevant figures for comparisons (see OpenSSL Speed Results):
- OpenSSL speed MD5 8,192 bytes: 108,467.54k
- OpenSSL speed RSA 4,096 bytes sign/s: 2.2
- OpenSSL speed RSA 4,096 bytes verify/s: 157.5
Looking at various compilations of RSA results, this looks to be around the ballpark of the Power Mac G4 (QuickSilver 2002; EveryMac), which featured two 7455 @ 1.0 GHz processors. Quite a step up from the single 750 @ 333 MHz in the high end model "beige".
Further Sources
- Power Macintosh G3 - Wikipedia
- Documentation/Platforms/PowerPC - QEMU
- Running Qemu-system-ppc with Mac OS/OSX guests in macOS [E-Maculation wiki]
Supplemental: OpenSSL 1.0.1t Results
Debian Linux 8 (jessie) for PowerPC provides a build of OpenSSL 1.0.1t:
$ openssl version -a OpenSSL 1.0.1t 3 May 2016 built on: Thu Mar 29 12:14:07 2018 platform: debian-powerpc options: bn(64,32) rc4(ptr,char) des(idx,risc1,16,long) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM OPENSSLDIR: "/usr/lib/ssl"
From the compile flags this build has been compiled with assembler implementations for SHA-1, SHA-256 and AES.
OpenSSL 1.0.1t speed
For reference a full run of the methods provided by OpenSSL 1.0.1t on this QEMU g3beige system gives results (openssl speed):
OpenSSL 1.0.1t 3 May 2016 built on: Thu Mar 29 12:14:07 2018 options:bn(64,32) rc4(ptr,char) des(idx,risc1,16,long) aes(partial) blowfish(idx) compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -DTERMIO -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-z,relro -Wa,--noexecstack -Wall -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DAES_ASM The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md2 0.00 0.00 0.00 0.00 0.00 mdc2 0.00 0.00 0.00 0.00 0.00 md4 2460.99k 8962.94k 28310.70k 77181.27k 151603.88k md5 1914.97k 7614.70k 24962.47k 63073.62k 113792.34k hmac(md5) 2455.40k 9179.09k 29748.06k 70251.52k 119548.40k sha1 2192.07k 8903.87k 30378.58k 80008.99k 148974.25k rmd160 1002.20k 3150.38k 6795.26k 9956.01k 11001.86k rc4 29979.70k 38114.56k 40100.95k 40981.50k 41306.79k des cbc 9819.27k 11017.57k 11180.03k 11487.57k 11485.13k des ede3 3377.58k 3648.32k 3725.06k 3740.33k 3771.05k idea cbc 0.00 0.00 0.00 0.00 0.00 seed cbc 12395.55k 14511.99k 15028.14k 15397.21k 15512.92k rc2 cbc 12242.20k 14146.53k 14773.08k 14632.62k 14868.48k rc5-32/12 cbc 0.00 0.00 0.00 0.00 0.00 blowfish cbc 13890.79k 17466.20k 18404.27k 18428.25k 18604.03k cast cbc 13211.80k 15909.59k 16715.94k 16821.93k 16916.48k aes-128 cbc 13542.91k 15671.45k 16324.95k 16470.02k 16520.53k aes-192 cbc 12183.65k 13817.11k 14189.91k 14467.75k 14473.44k aes-256 cbc 11065.88k 12392.73k 12673.45k 12823.21k 12823.21k camellia-128 cbc 14438.42k 17089.46k 17712.12k 17744.21k 18057.90k camellia-192 cbc 12223.59k 14189.63k 14606.59k 14742.19k 14849.37k camellia-256 cbc 12536.33k 13811.75k 14524.07k 14794.75k 14866.15k sha256 5721.34k 18142.04k 44209.92k 68814.17k 83004.96k sha512 645.95k 2626.56k 3808.17k 5329.94k 5950.12k whirlpool 462.38k 971.71k 1626.62k 1847.28k 2067.11k aes-128 ige 13003.01k 15025.69k 15797.93k 15961.09k 15925.25k aes-192 ige 11710.29k 13254.83k 13818.28k 13929.47k 14008.32k aes-256 ige 10694.71k 12084.86k 12344.58k 12513.28k 12556.50k ghash 18781.61k 24101.37k 25815.33k 26272.09k 26468.35k sign verify sign/s verify/s rsa 512 bits 0.001815s 0.000188s 551.1 5328.7 rsa 1024 bits 0.009016s 0.000648s 110.9 1542.6 rsa 2048 bits 0.075833s 0.001930s 13.2 518.0 rsa 4096 bits 0.462727s 0.006489s 2.2 154.1 sign verify sign/s verify/s dsa 512 bits 0.002027s 0.001891s 493.3 528.7 dsa 1024 bits 0.007015s 0.007553s 142.5 132.4 dsa 2048 bits 0.020877s 0.022831s 47.9 43.8 sign verify sign/s verify/s 160 bit ecdsa (secp160r1) 0.0020s 0.0071s 492.1 141.1 192 bit ecdsa (nistp192) 0.0024s 0.0091s 411.6 109.4 224 bit ecdsa (nistp224) 0.0029s 0.0115s 344.9 86.9 256 bit ecdsa (nistp256) 0.0036s 0.0150s 279.6 66.7 384 bit ecdsa (nistp384) 0.0067s 0.0299s 149.8 33.4 521 bit ecdsa (nistp521) 0.0115s 0.0596s 86.6 16.8 163 bit ecdsa (nistk163) 0.0043s 0.0209s 232.1 47.8 233 bit ecdsa (nistk233) 0.0083s 0.0406s 121.1 24.7 283 bit ecdsa (nistk283) 0.0124s 0.0725s 80.8 13.8 409 bit ecdsa (nistk409) 0.0311s 0.1756s 32.1 5.7 571 bit ecdsa (nistk571) 0.0727s 0.4012s 13.8 2.5 163 bit ecdsa (nistb163) 0.0044s 0.0229s 228.8 43.6 233 bit ecdsa (nistb233) 0.0084s 0.0455s 119.0 22.0 283 bit ecdsa (nistb283) 0.0123s 0.0820s 81.2 12.2 409 bit ecdsa (nistb409) 0.0303s 0.1994s 33.0 5.0 571 bit ecdsa (nistb571) 0.0752s 0.4805s 13.3 2.1 op op/s 160 bit ecdh (secp160r1) 0.0061s 163.7 192 bit ecdh (nistp192) 0.0078s 127.5 224 bit ecdh (nistp224) 0.0101s 99.4 256 bit ecdh (nistp256) 0.0122s 81.7 384 bit ecdh (nistp384) 0.0264s 37.9 521 bit ecdh (nistp521) 0.0515s 19.4 163 bit ecdh (nistk163) 0.0105s 95.0 233 bit ecdh (nistk233) 0.0199s 50.3 283 bit ecdh (nistk283) 0.0352s 28.4 409 bit ecdh (nistk409) 0.0838s 11.9 571 bit ecdh (nistk571) 0.1911s 5.2 163 bit ecdh (nistb163) 0.0113s 88.7 233 bit ecdh (nistb233) 0.0224s 44.7 283 bit ecdh (nistb283) 0.0400s 25.0 409 bit ecdh (nistb409) 0.0957s 10.4 571 bit ecdh (nistb571) 0.2227s 4.5
OpenSSL 1.0.1t speed
A local build of OpenSSL 1.0.1t with assembler disabled (no-asm), on this QEMU g3beige system gives results (openssl speed):
OpenSSL 1.0.1t 3 May 2016 built on: Sun May 22 07:02:28 2022 options:bn(64,32) rc4(ptr,char) des(idx,risc1,16,long) aes(partial) idea(int) blowfish(idx) compiler: gcc -I. -I.. -I../include -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DB_ENDIAN -O3 -Wall The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes md2 0.00 0.00 0.00 0.00 0.00 mdc2 983.04k 1748.95k 2126.51k 2280.11k 2367.49k md4 1397.41k 5685.94k 20507.48k 63429.97k 167166.12k md5 1252.27k 4979.95k 17107.46k 50945.20k 113169.75k hmac(md5) 2681.57k 9281.97k 31822.34k 74520.58k 128334.94k sha1 1147.38k 4114.97k 11658.75k 22049.45k 30058.34k rmd160 726.32k 2457.39k 5938.18k 9412.24k 11296.77k rc4 30971.24k 36955.70k 38356.02k 39296.26k 39941.46k des cbc 10059.76k 11219.31k 11430.53k 11536.73k 11520.68k des ede3 3661.52k 3869.50k 3969.79k 3999.08k 3913.05k idea cbc 15656.40k 18417.09k 18891.26k 18893.66k 18972.67k seed cbc 12541.56k 13982.24k 14653.56k 14680.06k 14761.98k rc2 cbc 12335.89k 14116.26k 14508.03k 14575.62k 14468.88k rc5-32/12 cbc 0.00 0.00 0.00 0.00 0.00 blowfish cbc 15295.01k 18544.65k 19569.15k 20208.42k 20037.63k cast cbc 13765.97k 16531.03k 17346.99k 17523.07k 17388.89k aes-128 cbc 15739.06k 17546.69k 18062.25k 18280.79k 18260.76k aes-192 cbc 14146.45k 15416.06k 16232.11k 16435.20k 16108.20k aes-256 cbc 12964.90k 14238.35k 14308.78k 14615.55k 14718.20k camellia-128 cbc 15989.08k 18386.99k 19166.46k 19275.09k 18427.89k camellia-192 cbc 13405.85k 15271.83k 15519.66k 15787.01k 15701.79k camellia-256 cbc 13703.61k 15234.16k 15700.05k 15884.33k 15611.22k sha256 2959.73k 8276.44k 17104.64k 23297.20k 26113.37k sha512 647.57k 2555.95k 3970.05k 5676.37k 6438.91k whirlpool 471.47k 977.94k 1646.79k 1907.37k 2039.81k aes-128 ige 11964.54k 13741.31k 14642.26k 14737.04k 14236.00k aes-192 ige 10854.74k 13734.42k 14810.45k 13392.90k 13724.33k aes-256 ige 10346.65k 12073.98k 13741.63k 12023.47k 12389.03k ghash 20123.26k 23664.51k 26434.22k 27709.65k 28041.22k sign verify sign/s verify/s rsa 512 bits 0.004739s 0.000400s 211.0 2496.9 rsa 1024 bits 0.022545s 0.001006s 44.4 993.8 rsa 2048 bits 0.121325s 0.002961s 8.2 337.7 rsa 4096 bits 0.715000s 0.009441s 1.4 105.9 sign verify sign/s verify/s dsa 512 bits 0.004017s 0.004448s 248.9 224.8 dsa 1024 bits 0.010010s 0.011753s 99.9 85.1 dsa 2048 bits 0.029296s 0.034757s 34.1 28.8 sign verify sign/s verify/s 160 bit ecdsa (secp160r1) 0.0031s 0.0138s 325.6 72.5 192 bit ecdsa (nistp192) 0.0033s 0.0160s 299.5 62.3 224 bit ecdsa (nistp224) 0.0041s 0.0204s 246.8 48.9 256 bit ecdsa (nistp256) 0.0051s 0.0261s 196.3 38.3 384 bit ecdsa (nistp384) 0.0094s 0.0493s 106.8 20.3 521 bit ecdsa (nistp521) 0.0253s 0.1386s 39.6 7.2 163 bit ecdsa (nistk163) 0.0041s 0.0176s 244.3 56.9 233 bit ecdsa (nistk233) 0.0079s 0.0317s 126.1 31.5 283 bit ecdsa (nistk283) 0.0118s 0.0553s 84.4 18.1 409 bit ecdsa (nistk409) 0.0292s 0.1218s 34.3 8.2 571 bit ecdsa (nistk571) 0.0696s 0.2692s 14.4 3.7 163 bit ecdsa (nistb163) 0.0040s 0.0187s 248.3 53.5 233 bit ecdsa (nistb233) 0.0085s 0.0407s 117.4 24.6 283 bit ecdsa (nistb283) 0.0121s 0.0648s 82.9 15.4 409 bit ecdsa (nistb409) 0.0291s 0.1394s 34.3 7.2 571 bit ecdsa (nistb571) 0.0694s 0.3073s 14.4 3.3 op op/s 160 bit ecdh (secp160r1) 0.0117s 85.3 192 bit ecdh (nistp192) 0.0133s 74.9 224 bit ecdh (nistp224) 0.0171s 58.4 256 bit ecdh (nistp256) 0.0212s 47.2 384 bit ecdh (nistp384) 0.0415s 24.1 521 bit ecdh (nistp521) 0.1163s 8.6 163 bit ecdh (nistk163) 0.0087s 114.8 233 bit ecdh (nistk233) 0.0159s 62.9 283 bit ecdh (nistk283) 0.0273s 36.6 409 bit ecdh (nistk409) 0.0602s 16.6 571 bit ecdh (nistk571) 0.1349s 7.4 163 bit ecdh (nistb163) 0.0092s 108.5 233 bit ecdh (nistb233) 0.0172s 58.2 283 bit ecdh (nistb283) 0.0305s 32.8 409 bit ecdh (nistb409) 0.0673s 14.9 571 bit ecdh (nistb571) 0.1526s 6.6
No comments:
Post a Comment