This commit is contained in:
Zhengyi Chen 2024-03-17 23:50:44 +00:00
parent 6bed890643
commit 6111e79686
4 changed files with 918 additions and 13 deletions

813
results/lshw-rose.out Normal file
View file

@ -0,0 +1,813 @@
rose
description: Rack Mount Chassis
product: R152-P31-00 (01234567890123456789AB)
vendor: GIGABYTE
version: 0100
serial: GMGBN5912A0001
width: 64 bits
capabilities: smbios-3.4.0 dmi-3.4.0 smp cp15_barrier setend swp tagged_addr_disabled
configuration: administrator_password=disabled boot=normal chassis=rackmount family=Server frontpanel_password=disabled keyboard_password=disabled power-on_password=disabled sku=01234567890123456789AB uuid=00000000-0000-4000-8000-74563c400508
*-core
description: Motherboard
product: MP32-AR1-00
vendor: GIGABYTE
physical id: 0
version: 01010101
serial: MG5N7200007
slot: 01234567890123456789AB
*-firmware
description: BIOS
vendor: GIGABYTE
physical id: 0
version: F31h (SCP: 2.10.20220531)
date: 07/27/2022
size: 1MiB
capabilities: pci upgrade cdboot bootselect acpi uefi
*-memory
description: System Memory
physical id: 11
slot: System board or motherboard
size: 256GiB
capacity: 4TiB
capabilities: ecc
configuration: errordetection=multi-bit-ecc
*-bank:0
description: DIMM DDR4 3200 MHz (0.3 ns)
product: M393A4K40DB3-CWE
vendor: Samsung
physical id: 0
serial: 46BD4FB0
slot: DIMM_P0_A0
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:1
description: DIMM DDR4 3200 MHz (0.3 ns)
product: M393A4K40DB3-CWE
vendor: Samsung
physical id: 1
serial: 1777F656
slot: DIMM_P0_A1
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:2
description: DIMM DDR4 3200 MHz (0.3 ns)
product: M393A4K40DB3-CWE
vendor: Samsung
physical id: 2
serial: 46BD4F9E
slot: DIMM_P0_B0
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:3
description: DIMM DDR4 3200 MHz (0.3 ns)
product: M393A4K40DB3-CWE
vendor: Samsung
physical id: 3
serial: 46BD4FB1
slot: DIMM_P0_B1
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:4
description: DIMM [empty]
product: Array 1 Part Number 5
vendor: Array 1 Manufacturer 5
physical id: 4
serial: Array 1 Serial Number 5
slot: DIMM_P0_C0
*-bank:5
description: DIMM [empty]
product: Array 1 Part Number 6
vendor: Array 1 Manufacturer 6
physical id: 5
serial: Array 1 Serial Number 6
slot: DIMM_P0_C1
*-bank:6
description: DIMM [empty]
product: Array 1 Part Number 7
vendor: Array 1 Manufacturer 7
physical id: 6
serial: Array 1 Serial Number 7
slot: DIMM_P0_D0
*-bank:7
description: DIMM [empty]
product: Array 1 Part Number 8
vendor: Array 1 Manufacturer 8
physical id: 7
serial: Array 1 Serial Number 8
slot: DIMM_P0_D1
*-bank:8
description: DIMM DDR4 3200 MHz (0.3 ns)
product: M393A4K40DB3-CWE
vendor: Samsung
physical id: 8
serial: 46BD501D
slot: DIMM_P0_E0
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:9
description: DIMM DDR4 3200 MHz (0.3 ns)
product: M393A4K40DB3-CWE
vendor: Samsung
physical id: 9
serial: 1777FF07
slot: DIMM_P0_E1
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:10
description: DIMM DDR4 3200 MHz (0.3 ns)
product: M393A4K40DB3-CWE
vendor: Samsung
physical id: a
serial: 46BD501E
slot: DIMM_P0_F0
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:11
description: DIMM DDR4 3200 MHz (0.3 ns)
product: M393A4K40DB3-CWE
vendor: Samsung
physical id: b
serial: 46BD5040
slot: DIMM_P0_F1
size: 32GiB
width: 64 bits
clock: 3200MHz (0.3ns)
*-bank:12
description: DIMM [empty]
product: Array 1 Part Number 13
vendor: Array 1 Manufacturer 13
physical id: c
serial: Array 1 Serial Number 13
slot: DIMM_P0_G0
*-bank:13
description: DIMM [empty]
product: Array 1 Part Number 14
vendor: Array 1 Manufacturer 14
physical id: d
serial: Array 1 Serial Number 14
slot: DIMM_P0_G1
*-bank:14
description: DIMM [empty]
product: Array 1 Part Number 15
vendor: Array 1 Manufacturer 15
physical id: e
serial: Array 1 Serial Number 15
slot: DIMM_P0_H0
*-bank:15
description: DIMM [empty]
product: Array 1 Part Number 16
vendor: Array 1 Manufacturer 16
physical id: f
serial: Array 1 Serial Number 16
slot: DIMM_P0_H1
*-cpu
description: CPU
product: ARMv8 (Q32-17)
vendor: Ampere(R)
physical id: 65
bus info: cpu@0
version: Ampere(R) Altra(R) Processor
serial: 0000000000000000920D0306033940C4
slot: CPU 0
size: 1028MHz
capacity: 1700MHz
clock: 1100MHz
capabilities: lm cpufreq
configuration: cores=32 enabledcores=32 threads=32
*-cache:0
description: L1 cache
physical id: 66
slot: Socket 0 L1 Instruction Cache
size: 2MiB
capacity: 2MiB
capabilities: synchronous internal write-back instruction
configuration: level=1
*-cache:1
description: L1 cache
physical id: 67
slot: Socket 0 L1 Data Cache
size: 2MiB
capacity: 2MiB
capabilities: synchronous internal write-back data
configuration: level=1
*-cache:2
description: L2 cache
physical id: 68
slot: Socket 0 L2 Cache
size: 32MiB
capacity: 32MiB
capabilities: synchronous internal write-back unified
configuration: level=2
*-pci:0
description: Host bridge
product: Altra PCI Express Root Complex A
vendor: Ampere Computing, LLC
physical id: 100
bus info: pci@0000:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-pci
description: PCI bridge
product: Altra PCI Express Root Port a0
vendor: Ampere Computing, LLC
physical id: 1
bus info: pci@0000:00:01.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:84 memory:70000000-701fffff ioport:3c0000000000(size=2097152)
*-pci:1
description: Host bridge
product: Altra PCI Express Root Complex A
vendor: Ampere Computing, LLC
physical id: 101
bus info: pci@0001:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-pci
description: PCI bridge
product: Altra PCI Express Root Port a0
vendor: Ampere Computing, LLC
physical id: 1
bus info: pci@0001:00:01.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:89 memory:60000000-602fffff ioport:380000000000(size=150994944)
*-network:0
description: Ethernet interface
product: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller
vendor: Mellanox Technologies
physical id: 0
bus info: pci@0001:01:00.0
logical name: enP1p1s0f0np0
logical name: /dev/fb0
version: 01
serial: b8:ce:f6:a8:82:52
capacity: 40Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pciexpress vpd msix pm bus_master cap_list rom ethernet physical 1000bt-fd 10000bt-fd 25000bt-fd 40000bt-fd autonegotiation fb
configuration: autonegotiation=on broadcast=yes depth=32 driver=mlx5_core driverversion=5.15.0-78-generic duplex=full firmware=24.35.3006 (MT_0000000561) ip=172.16.25.3 latency=0 link=yes mode=1024x768 multicast=yes visual=truecolor xres=1024 yres=768
resources: iomemory:38000-37fff iomemory:38000-37fff irq:89 memory:380000000000-380001ffffff memory:380004000000-3800047fffff memory:60000000-600fffff memory:380005000000-380006ffffff
*-network:1
description: Ethernet interface
product: MT42822 BlueField-2 integrated ConnectX-6 Dx network controller
vendor: Mellanox Technologies
physical id: 0.1
bus info: pci@0001:01:00.1
logical name: enP1p1s0f1np1
version: 01
serial: b8:ce:f6:a8:82:53
capacity: 40Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pciexpress vpd msix pm bus_master cap_list rom ethernet physical 1000bt-fd 10000bt-fd 25000bt-fd 40000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=mlx5_core driverversion=5.15.0-78-generic duplex=full firmware=24.35.3006 (MT_0000000561) ip=172.16.26.3 latency=0 link=yes multicast=yes
resources: iomemory:38000-37fff iomemory:38000-37fff irq:182 memory:380002000000-380003ffffff memory:380004800000-380004ffffff memory:60100000-601fffff memory:380007000000-380008ffffff
*-generic
description: DMA controller
product: MT42822 BlueField-2 SoC Management Interface
vendor: Mellanox Technologies
physical id: 0.2
bus info: pci@0001:01:00.2
version: 01
width: 32 bits
clock: 33MHz
capabilities: pciexpress vpd pm 8237 bus_master cap_list
configuration: driver=vfio-pci latency=0
resources: irq:89 memory:60200000-602fffff
*-pci:2
description: Host bridge
product: Altra PCI Express Root Complex B
vendor: Ampere Computing, LLC
physical id: 102
bus info: pci@0002:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-pci:0
description: PCI bridge
product: Altra PCI Express Root Port b0
vendor: Ampere Computing, LLC
physical id: 1
bus info: pci@0002:00:01.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:88 memory:8000000-81fffff ioport:200000000000(size=2097152)
*-pci:1
description: PCI bridge
product: Altra PCI Express Root Port b4
vendor: Ampere Computing, LLC
physical id: 5
bus info: pci@0002:00:05.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:88 memory:8200000-83fffff ioport:200000200000(size=2097152)
*-pci:3
description: Host bridge
product: Altra PCI Express Root Complex B
vendor: Ampere Computing, LLC
physical id: 103
bus info: pci@0003:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-pci:0
description: PCI bridge
product: Altra PCI Express Root Port b0
vendor: Ampere Computing, LLC
physical id: 1
bus info: pci@0003:00:01.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:86 memory:10000000-101fffff ioport:240000000000(size=2097152)
*-pci:1
description: PCI bridge
product: Altra PCI Express Root Port b4
vendor: Ampere Computing, LLC
physical id: 5
bus info: pci@0003:00:05.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:86 memory:10200000-103fffff ioport:240000200000(size=3145728)
*-network:0
description: Ethernet interface
product: I350 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0003:02:00.0
logical name: eno1
version: 01
serial: 74:56:3c:40:05:08
size: 1Gbit/s
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.15.0-78-generic duplex=full firmware=1.63, 0x800009fa ip=10.1.10.1 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
resources: irq:86 memory:10200000-1021ffff memory:10240000-10243fff memory:240000200000-24000021ffff memory:240000220000-24000023ffff
*-network:1
description: Ethernet interface
product: I350 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0.1
bus info: pci@0003:02:00.1
logical name: eno2
version: 01
serial: 74:56:3c:40:05:09
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.15.0-78-generic firmware=1.63, 0x800009fa latency=0 link=no multicast=yes port=twisted pair
resources: irq:108 memory:10220000-1023ffff memory:10244000-10247fff memory:240000240000-24000025ffff memory:240000260000-24000027ffff
*-pci:4
description: Host bridge
product: Altra PCI Express Root Complex B
vendor: Ampere Computing, LLC
physical id: 104
bus info: pci@0004:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-pci:0
description: PCI bridge
product: Altra PCI Express Root Port b0
vendor: Ampere Computing, LLC
physical id: 1
bus info: pci@0004:00:01.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:90 memory:20000000-22ffffff ioport:280000000000(size=2097152)
*-pci
description: PCI bridge
product: AST1150 PCI-to-PCI Bridge
vendor: ASPEED Technology, Inc.
physical id: 0
bus info: pci@0004:01:00.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci msi pm pciexpress normal_decode bus_master cap_list
resources: memory:20000000-22ffffff
*-display
description: VGA compatible controller
product: ASPEED Graphics Family
vendor: ASPEED Technology, Inc.
physical id: 0
bus info: pci@0004:02:00.0
logical name: /dev/fb0
version: 41
width: 32 bits
clock: 33MHz
capabilities: pm msi vga_controller cap_list fb
configuration: depth=32 driver=ast latency=0 resolution=1024,768
resources: irq:90 memory:20000000-21ffffff memory:22000000-2201ffff
*-pci:1
description: PCI bridge
product: Altra PCI Express Root Port b2
vendor: Ampere Computing, LLC
physical id: 3
bus info: pci@0004:00:03.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:90 memory:23000000-231fffff ioport:280000200000(size=2097152)
*-usb
description: USB controller
product: uPD720201 USB 3.0 Host Controller
vendor: Renesas Technology Corp.
physical id: 0
bus info: pci@0004:03:00.0
version: 03
width: 64 bits
clock: 33MHz
capabilities: pm msi msix pciexpress xhci bus_master cap_list
configuration: driver=xhci_hcd latency=0
resources: irq:90 memory:23000000-23001fff
*-usbhost:0
product: xHCI Host Controller
vendor: Linux 5.15.0-78-generic xhci-hcd
physical id: 0
bus info: usb@1
logical name: usb1
version: 5.15
capabilities: usb-2.00
configuration: driver=hub slots=4 speed=480Mbit/s
*-usb
description: USB hub
product: USB2.0 Hub
vendor: GenesysLogic
physical id: 3
bus info: usb@1:3
version: 93.10
capabilities: usb-2.10
configuration: driver=hub slots=4 speed=480Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 5.15.0-78-generic xhci-hcd
physical id: 1
bus info: usb@2
logical name: usb2
version: 5.15
capabilities: usb-3.00
configuration: driver=hub slots=4 speed=5000Mbit/s
*-usb
description: USB hub
product: USB3.1 Hub
vendor: GenesysLogic
physical id: 3
bus info: usb@2:3
version: 93.10
capabilities: usb-3.20
configuration: driver=hub slots=4 speed=5000Mbit/s
*-pci:2
description: PCI bridge
product: Altra PCI Express Root Port b4
vendor: Ampere Computing, LLC
physical id: 5
bus info: pci@0004:00:05.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:90 memory:23200000-233fffff ioport:280000400000(size=2097152)
*-pci:5
description: Host bridge
product: Altra PCI Express Root Complex B
vendor: Ampere Computing, LLC
physical id: 105
bus info: pci@0005:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-pci:0
description: PCI bridge
product: Altra PCI Express Root Port b0
vendor: Ampere Computing, LLC
physical id: 1
bus info: pci@0005:00:01.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:85 memory:30000000-301fffff ioport:2c0000000000(size=2097152)
*-pci:1
description: PCI bridge
product: Altra PCI Express Root Port b4
vendor: Ampere Computing, LLC
physical id: 5
bus info: pci@0005:00:05.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:85 memory:30200000-303fffff ioport:2c0000200000(size=2097152)
*-pci:2
description: PCI bridge
product: Altra PCI Express Root Port b6
vendor: Ampere Computing, LLC
physical id: 7
bus info: pci@0005:00:07.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:85 memory:30400000-305fffff ioport:2c0000400000(size=2097152)
*-pci:6
description: Host bridge
product: Altra PCI Express Root Complex A
vendor: Ampere Computing, LLC
physical id: 106
bus info: pci@000c:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-pci:0
description: PCI bridge
product: Altra PCI Express Root Port a0
vendor: Ampere Computing, LLC
physical id: 1
bus info: pci@000c:00:01.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:87 memory:40000000-401fffff ioport:300000000000(size=2097152)
*-sata
description: SATA controller
product: ASMedia Technology Inc.
vendor: ASMedia Technology Inc.
physical id: 0
bus info: pci@000c:01:00.0
logical name: scsi0
logical name: scsi2
logical name: scsi3
version: 02
width: 32 bits
clock: 33MHz
capabilities: sata pm pciexpress ahci_1.0 bus_master cap_list rom emulated
configuration: driver=ahci latency=0
resources: irq:87 memory:40080000-40081fff memory:40082000-40083fff memory:40000000-4007ffff
*-disk:0
description: ATA Disk
product: INTEL SSDSC2KB48
physical id: 0
bus info: scsi@0:0.0.0
logical name: /dev/sda
version: 0132
serial: PHYF05200592480BGN
size: 447GiB (480GB)
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: ansiversion=5 guid=ceb012f0-148e-45e3-a2e2-d959d4e8f308 logicalsectorsize=512 sectorsize=4096
*-volume:0
description: Windows FAT volume
vendor: mkfs.fat
physical id: 1
bus info: scsi@0:0.0.0,1
logical name: /dev/sda1
logical name: /boot/efi
version: FAT32
serial: c07f-03dd
size: 1073MiB
capacity: 1074MiB
capabilities: boot fat initialized
configuration: FATs=2 filesystem=fat mount.fstype=vfat mount.options=rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro state=mounted
*-volume:1
description: EXT4 volume
vendor: Linux
physical id: 2
bus info: scsi@0:0.0.0,2
logical name: /dev/sda2
logical name: /boot
version: 1.0
serial: 1c969869-6c83-4794-a47c-55a4c25fd8c4
size: 2GiB
capabilities: journaled extended_attributes large_files huge_files dir_nlink recover 64bit extents ext4 ext2 initialized
configuration: created=2023-02-24 20:20:27 filesystem=ext4 lastmountpoint=/boot modified=2024-03-16 22:18:19 mount.fstype=ext4 mount.options=rw,relatime mounted=2024-03-16 22:18:19 state=mounted
*-volume:2
description: EFI partition
physical id: 3
bus info: scsi@0:0.0.0,3
logical name: /dev/sda3
serial: ZQNhl1-aWtv-edSb-dk3Z-xJym-l50Z-1AQh4Y
size: 444GiB
capabilities: lvm2
*-disk:1
description: ATA Disk
product: ST4000LM024-2AN1
physical id: 1
bus info: scsi@2:0.0.0
logical name: /dev/sdb
version: 0001
serial: cfwMdB-jfA5-t3Sk-20nq-deBM-PAdV-ScYOpJ
size: 3726GiB
capacity: 3726GiB
capabilities: lvm2
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
*-disk:2
description: ATA Disk
product: ST4000LM024-2AN1
physical id: 0.0.0
bus info: scsi@3:0.0.0
logical name: /dev/sdc
version: 0001
serial: pIGorR-NXtM-Hw9E-z0aG-Y566-GUku-MyGYNh
size: 3726GiB
capacity: 3726GiB
capabilities: lvm2
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
*-pci:1
description: PCI bridge
product: Altra PCI Express Root Port a1
vendor: Ampere Computing, LLC
physical id: 2
bus info: pci@000c:00:02.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:87 memory:40200000-403fffff ioport:300000200000(size=2097152)
*-sata
description: SATA controller
product: ASMedia Technology Inc.
vendor: ASMedia Technology Inc.
physical id: 0
bus info: pci@000c:02:00.0
logical name: scsi24
logical name: scsi25
version: 02
width: 32 bits
clock: 33MHz
capabilities: sata pm pciexpress ahci_1.0 bus_master cap_list rom emulated
configuration: driver=ahci latency=0
resources: irq:87 memory:40280000-40281fff memory:40282000-40283fff memory:40200000-4027ffff
*-disk:0
description: ATA Disk
product: ST4000LM024-2AN1
physical id: 0
bus info: scsi@24:0.0.0
logical name: /dev/sdd
version: 0001
serial: PfecXJ-y7LI-QwO6-XuMT-Uyhk-B4At-mt7g0o
size: 3726GiB
capacity: 3726GiB
capabilities: lvm2
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
*-disk:1
description: ATA Disk
product: ST4000LM024-2U81
physical id: 1
bus info: scsi@25:0.0.0
logical name: /dev/sde
version: 0001
serial: 8nDaPv-fJo9-fRao-fRxJ-4goq-cP8b-QJcZIh
size: 3726GiB
capacity: 3726GiB
capabilities: lvm2
configuration: ansiversion=5 logicalsectorsize=512 sectorsize=4096
*-pci:2
description: PCI bridge
product: Altra PCI Express Root Port a2
vendor: Ampere Computing, LLC
physical id: 3
bus info: pci@000c:00:03.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:87 memory:40400000-405fffff ioport:300000400000(size=2097152)
*-pci:3
description: PCI bridge
product: Altra PCI Express Root Port a3
vendor: Ampere Computing, LLC
physical id: 4
bus info: pci@000c:00:04.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:87 memory:40600000-407fffff ioport:300000600000(size=2097152)
*-pci:7
description: Host bridge
product: Altra PCI Express Root Complex A
vendor: Ampere Computing, LLC
physical id: 107
bus info: pci@000d:00:00.0
version: 00
width: 32 bits
clock: 33MHz
*-pci:0
description: PCI bridge
product: Altra PCI Express Root Port a0
vendor: Ampere Computing, LLC
physical id: 1
bus info: pci@000d:00:01.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:83 memory:50000000-501fffff ioport:340000000000(size=2097152)
*-pci:1
description: PCI bridge
product: Altra PCI Express Root Port a1
vendor: Ampere Computing, LLC
physical id: 2
bus info: pci@000d:00:02.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:83 memory:50200000-503fffff ioport:340000200000(size=2097152)
*-pci:2
description: PCI bridge
product: Altra PCI Express Root Port a2
vendor: Ampere Computing, LLC
physical id: 3
bus info: pci@000d:00:03.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:83 memory:50400000-505fffff ioport:340000400000(size=2097152)
*-pci:3
description: PCI bridge
product: Altra PCI Express Root Port a3
vendor: Ampere Computing, LLC
physical id: 4
bus info: pci@000d:00:04.0
version: 04
width: 32 bits
clock: 33MHz
capabilities: pci pm pciexpress normal_decode bus_master cap_list
configuration: driver=pcieport
resources: irq:83 memory:50600000-507fffff ioport:340000600000(size=2097152)
*-pnp00:00
product: PnP device PNP0c02
physical id: 1
capabilities: pnp
configuration: driver=system
*-power:0 UNCLAIMED
description: SPRIN651AM
product: YM-2651Y
vendor: 3Y POWER
physical id: 1
version: A10R
serial: SA00A3632213000844
capacity: 650mWh
*-power:1 UNCLAIMED
description: SPRIN651AM
product: YM-2651Y
vendor: 3Y POWER
physical id: 2
version: A10R
serial: SA00A3632213000845
capacity: 650mWh
*-input
product: Power Button
physical id: 3
logical name: input0
logical name: /dev/input/event0
capabilities: platform

3
tex/.gitignore vendored
View file

@ -299,3 +299,6 @@ TSWLatexianTemp*
# option is specified. Footnotes are the stored in a file with suffix Notes.bib.
# Uncomment the next line to have this generated file ignored.
#*Notes.bib
# minted
**/_minted-skeleton

Binary file not shown.

View file

@ -13,10 +13,10 @@
% \usepackage{natbib} % recommended for citations % but I have no experience with natbib...
\usepackage[utf8]{inputenc}
\usepackage[dvipsnames]{xcolor}
\usepackage{hyperref}
\usepackage[justification=centering]{caption}
\usepackage{graphicx}
\usepackage[english]{babel}
\usepackage{float}
% -> biblatex
\usepackage{biblatex}
\addbibresource{mybibfile.bib}
@ -36,6 +36,9 @@
% -> draw textbook-style frames
\usepackage{mdframed}
% <- frames
% -> href (LOAD LAST)
\usepackage{hyperref}
% <- href
\begin{document}
\begin{preliminary}
@ -102,7 +105,9 @@ from the Informatics Research Ethics committee.
\begin{acknowledgements}
Jordanian River to the Mediterranean Sea, maybe\dots
\textcolor{red}{For unbounded peace and happiness among all peoples of the world.}
\textcolor{red}{May we, one day, be able to see each other as equals.}
\end{acknowledgements}
@ -425,7 +430,7 @@ extern void dcache_inval_poc(
unsigned long start, unsigned long end
);
/* Clean data cache region [start, end) to PoC. $\ref{code:dcache_clean_poc}$
/* Clean data cache region [start, end) to PoC. $\label{code:dcache_clean_poc}$
*
* Write-back CPU cache entries that intersect with [start, end),
* such that data from CPU becomes visible to external writers.
@ -554,14 +559,16 @@ The rest of the chapter is structured as follows:
\end{itemize}
\section{Experiment Setup}\label{sec:sw-coherency-setup}
\subsection{QEMU-over-x86: \texttt{star}}
The primary source of experimental data come from a virtualized machine: a virtualized guest running a lightly-customized Linux v6.7.0 preemptive kernel with standard non-graphical Debian 12 distribution installed to provide userspace support. The specifics of this QEMU-emulated ARM64 test-bench, running atop of an x86-64 host PC, is at \ref{table:2}.
\subsection{QEMU-over-x86: \texttt{star}}\label{subsec:spec-star}
The primary source of experimental data come from a virtualized machine: a virtualized guest running a lightly-modified Linux v6.7.0 preemptive kernel with standard non-graphical Debian 12 distribution installed to provide userspace support. Table \ref{table:star} describes the specifics of the QEMU-emulated ARM64 test-bench, while table \ref{table:starhost} describes the specifics of its host.
\begin{table}[h]
\centering
\begin{tabular}{|c|c|}
\hline
Processors & 3x QEMU virt-8.2 (2-way SMT; emulates Cortex-A76) \\
Processors & QEMU virt-8.2 (3 $\times$ 2-way SMT; emulates Cortex-A76) \\
\hline
Frequency & 2.0 GHz (\textit{sic.}\footnotemark[3]) \\
\hline
CPU Flags &
\begin{tabular}{@{}cccccc@{}}
@ -571,31 +578,113 @@ The primary source of experimental data come from a virtualized machine: a virtu
asimdrdm & lrcpc & dcpop & asimddp & & \\
\end{tabular} \\
\hline
NUMA Nodes & 1: $\{P_0, \dots, P_5\}$ \\
NUMA Topology & 1: $\{P_0,\ \dots,\ P_5\}$ \\
\hline
Memory & 4GiB \\
Memory & 1: 4GiB \\
\hline
Kernel & Linux 6.7.0 (modified) SMP Preemptive \\
\hline
Distribution & Debian 12 (bookworm) \\
\hline
\end{tabular}
\caption{Specification of \texttt{star}}
\label{table:2}
\label{table:star}
\end{table}
\footnotetext[3]{As reported from \texttt{lscpu}.}
\begin{table}[h]
\centering
\begin{tabular}{|c|c|}
\hline
Processors & AMD Ryzen 7 4800HS (8-core, 2-way SMT) \\
\hline
Freuqnecy & 2.9 GHz (4.2 GHz Turbo) \\
\hline
NUMA Topology & 1: $\{P_0,\ \dots,\ P_{15}\}$ \\
\hline
Cache Structure &
\begin{tabular}{@{}c|c@{}}
L3 & $P_0 \dots P_7$: 4MiB, $P_8 \dots P_{15}$: 4MiB \\
L2 & Per core\footnotemark[4]: 512KiB \\
L1 & Per core: d-cache 32KiB, i-cache 32KiB \\
\end{tabular} \\
\hline
Memory & 1: 40 GiB DDR4-3200 SO-DIMM \\
\hline
Filesystem & ext4 on Samsung SSD 970 EVO Plus \\
\hline
Kernel & Linux 6.7.9 (arch1-1) SMP Preemptive \\
\hline
Distribution & Arch Linux \\
\hline
\end{tabular}
\caption{Specification of Host}
\label{table:3}
\label{table:starhost}
\end{table}
\subsection{\textit{Neoverse N1}: \texttt{rose}}
% - QEMU-over-x86; preemptive-on-preemptive
% - Native server-ready ARM64 (preemptive), which I didn't run for long ngl
\footnotetext[4]{i.e., per 2 threads. For example: $P_0$, $P_1$ comprises one core.}
\subsection{\textit{Ampere Altra}: \texttt{rose}}\label{subsec:spec-rose}
\begin{table}[H] % suboptimal, but otherwise gets placed in next sec...
\centering
\begin{tabular}{|c|c|}
\hline
Processors & Ampere Altra (32 core; Neoverse N1 microarch.) \\
\hline
Frequency & 1.7 GHz (3.0 GHz max) \\
\hline
NUMA Topology & 1: $\{P_0,\ \dots,\ P_{31}\}$ \\
\hline
Cache Structure &
\begin{tabular}{@{}c|c@{}}
L2 & Per core: 1MiB \\
L1 & Per core: d-cache 64KiB, i-cache 64KiB \\
\end{tabular} \\
\hline
Memory & 1: 256 GiB DDR4-3200 DIMM ECC \\
\hline
Kernel & Linux 6.7.0 (modified) SMP Preemptive \\
\hline
Distribution & Ubuntu 22.04 LTS (Jammy Jellyfish) \\
\hline
\end{tabular}
\caption{Specification of \texttt{rose}}
\label{table:rose}
\end{table}
Additional to virtualized testbench, I have had the honor to access \texttt{rose}, a ARMv8 server rack system hosted by the \textcolor{red}{Systems Group} at the \textit{Informatics Forum}, through the invaluable assistance of my primary advisor, \textit{Amir Noohi}, for instrumentation of similar experimental setups on server-grade bare-metal systems.
The specifications of \texttt{rose} is listed in table \ref{table:rose}.
\section{Methodology}\label{sec:sw-coherency-method}
\subsection{Exporting \texttt{dcache\_clean\_poc}}
As established in subsection \ref{subsec:armv8a-swcoherency}, software cache-coherence maintenance operations (e.g., \texttt{dcache\_[clean|inval]\_poc}) are wrapped behind DMA API function calls and are hence unavailable for direct use in drivers. Moreover, instrumentation of assembly code becomes non-trivial when compared to instrumenting C function symbols, likely due to automatically stripped assembly symbols during kernel linkage. Consequently, it becomes impossible to utilize the existing instrumentation tools available in the Linux kernel (e.g., \texttt{ftrace}) to trace assembly routines.
In order to convert \texttt{dcache\_clean\_poc} to a traceable equivalent, a wrapper function \texttt{\_\_dcache\_clean\_poc} is created as follows:
\begin{minted}[mathescape, linenos, bgcolor=code-bg]{c}
/* In arch/arm64/mm/flush.c */
#include <asm/cacheflush_extra.h>
/* ... */
void __dcache_clean_poc(ulong start, ulong end)
{
dcache_clean_poc(start, end); // see $\ref{code:dcache_clean_poc}$
}
EXPORT_SYMBOL(__dcache_clean_poc);
\end{minted}
Correspondingly, the header \texttt{arch/arm64/include/asm/cacheflush\_extra.h} is created to export the symbol \texttt{\_\_dcache\_clean\_poc} into kernel module namespace. This has the additional benefit of creating a corresponding \texttt{ftrace} target, allowing the symbol to be instrumented using existing Linux instrumentation mechanisms. The entirety of modifications done to the in-tree v6.7.0 kernel culminates to a 44-line patch file (inclusive of metadata, context, etc.). It is expected that the introduction of additional symbols would increment the function latency by (at least) the amount of time necessary to fetch the instruction, but such latency is expected to be miniscule when compared to cache coherency operations.
\subsection{Kernel Module: \texttt{my\_shmem}}
To simulate module-initiated cache coherence behavior over allocated kernel buffers, a kernel module, \texttt{my\_shmem}, is written such that specially-written userspace programs could cause the kernel to invoke \texttt{\_\_dcache\_clean\_poc} at will.
\subsubsection{\texttt{my\_shmem}: Design}
The \texttt{my\_shmem} module is a utility for (lazily) allocating one or more kernel-space pages, re-mapping them into the userspace for reading/writing operations, and invoking cache-coherency operations \emph{as if} accessed via DMA on unmap.
\subsubsection{\texttt{my\_shmem}: Implementation}
\subsection{Instrumentation: \texttt{ftrace} and \textit{eBPF}}
\subsection{Userspace Programs}