Bug 2114997
| Summary: | virt-what doesn't detect kvm for aarch64 in GCE | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | Craig Donnelly <cdonnell> |
| Component: | virt-what | Assignee: | Richard W.M. Jones <rjones> |
| Status: | CLOSED ERRATA | QA Contact: | YongkuiGuo <yoguo> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 9.0 | CC: | eric.auger, qzhang, rjones, virt-maint, ymao, yoguo |
| Target Milestone: | rc | Keywords: | Triaged |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | virt-what-1.22-2.el9 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2022-11-15 11:12:59 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
This is fixed (as in, I added a test only) in: http://git.annexia.org/?p=virt-what.git;a=commitdiff;h=54b726fa7c9687b692162488e8934a426f9fa6c3 So I should note a few things. Firstly upstream virt-what did actually detect GCE just fine. It prints: # virt-what google_cloud GCE isn't KVM! It's their own thing. I suspect it might even be baremetal. However the version of virt-what in RHEL 9.0 is not very up to date and doesn't have this check. This was fixed by the rebase in RHEL 9.1 (bug 2074476). I upgraded your GCE instance to virt-what-1.22-1.el9.aarch64 and detection now works there. If a fix is required for RHEL 9.0 you will need to go through the usual z-stream steps. (In reply to Richard W.M. Jones from comment #3) > This is fixed (as in, I added a test only) in: > > http://git.annexia.org/?p=virt-what.git;a=commitdiff; > h=54b726fa7c9687b692162488e8934a426f9fa6c3 > > So I should note a few things. Firstly upstream virt-what did actually > detect GCE just fine. It prints: > > # virt-what > google_cloud > > GCE isn't KVM! It's their own thing. I suspect it might even be baremetal. > > However the version of virt-what in RHEL 9.0 is not very up to date > and doesn't have this check. This was fixed by the rebase in RHEL 9.1 > (bug 2074476). I upgraded your GCE instance to virt-what-1.22-1.el9.aarch64 > and detection now works there. > Hi rjones, I tested in the RHEL9.1 aarch64 VM on GCE, and indeed the virt-what output is only 'google_cloud'. [root@wshi-aarch64 ~]# virt-what google_cloud [root@wshi-aarch64 ~]# /usr/libexec/virt-what-cpuid-helper [root@wshi-aarch64 ~] [root@wshi-aarch64 ~]# rpm -q virt-what virt-what-1.22-1.el9.aarch64 But the dmesg command prints the next line: [ 0.000000] smccc: KVM: hypervisor services detected (0x00000000 0x00000000 0x00000000 0x00000003) So it seems like the hypervisor is KVM. Does /proc/device-tree/hypervisor/compatible exist and what does it contain? Because this is RHEL/aarch64, /proc/device-tree doesn't exist at all. Because it's aarch64 there is no CPUID (or equivalent?) I'm not sure if there is a good equivalent way to find out if KVM is being used underneath on RHEL/aarch64. Fixed in: http://git.annexia.org/?p=virt-what.git;a=commitdiff;h=da3568b25a582603ba15690793c8867cc7c5d2a8 Note that we now print the following, because this *is* KVM-based: # virt-what google_cloud kvm Tested on GCE aarch64 env: [root@wshi-aarch64 cloud-user]# virt-what google_cloud kvm [root@wshi-aarch64 cloud-user]# rpm -q virt-what virt-what-1.22-2.el9.aarch64 Verified this bug per comments 16 and 17. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (virt-what bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2022:8282 |
Description of problem: subscription-manager has a requirement to offer automatic registration requirements in major cloud providers. Currently, we deliver `cloud-what` to determine which cloud a system is on to attempt a auto-registration for a given host. Our tooling also looks for input from virt-what to determine facts that are used for entitlements, and this auto-registration process (sub-man facts -> virt.{host_type,is_guest}). virt.host_type is defined with the output of `virt-what`. In the process of testing subscription-manager auto-registration in GCE, it was found that virt-what returns nothing on ARM systems in GCE. In my testing, there is information that indicates it is a KVM system, but not in the ways looked for by virt-what. This issue will prevent automatic registration from working in GCE for ARM systems. Version-Release number of selected component (if applicable): virt-what-1.21-2.el9.2.aarch64 How reproducible: 100% Steps to Reproduce: 1. Deploy RHEL 9 in GCE on aarch64 2. `virt-what` Actual results: [root@r9-arm facts]# virt-what;echo $? 0 Expected results: $ virt-what kvm (if another valid new value is added, we will need to update code as well afaik) Additional info: Will attach dmidecode output and subscription-manager facts below: [root@r9-arm ~]# dmidecode # dmidecode 3.3 Getting SMBIOS data from sysfs. SMBIOS 2.4 present. 16 structures occupying 588 bytes. Table at 0xFFFE0000. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: Google Version: Google Release Date: 06/20/2022 Address: 0xE8000 Runtime Size: 96 kB ROM Size: 64 kB Characteristics: BIOS characteristics not supported Targeted content distribution is supported BIOS Revision: 1.0 Handle 0x0097, DMI type 1, 27 bytes System Information Manufacturer: Google Product Name: Google Compute Engine Version: Not Specified Serial Number: GoogleCloud-957EDC416C53B28F6DA35168B6F8648D UUID: 957edc41-6c53-b28f-6da3-5168b6f8648d Wake-up Type: Power Switch SKU Number: Not Specified Family: Not Specified Handle 0x0098, DMI type 2, 15 bytes Base Board Information Manufacturer: KVM Product Name: Google Compute Engine Version: Not Specified Serial Number: Board-GoogleCloud-957EDC416C53B28F6DA35168B6F8648D Asset Tag: 957EDC41-6C53-B28F-6DA3-5168B6F8648D Features: Board is a hosting board Location In Chassis: Not Specified Chassis Handle: 0x0099 Type: Motherboard Contained Object Handles: 0 Handle 0x0099, DMI type 3, 20 bytes Chassis Information Manufacturer: Google Type: Other Lock: Not Present Version: Not Specified Serial Number: Not Specified Asset Tag: Not Specified Boot-up State: Safe Power Supply State: Safe Thermal State: Safe Security Status: Unknown OEM Information: 0x00000000 Height: Unspecified Number Of Power Cords: Unspecified Handle 0x3001, DMI type 7, 17 bytes Cache Information Socket Designation: L1 Cache Configuration: Disabled, Not Socketed, Level 1 Operational Mode: Write Through Location: Internal Installed Size: 0 kB Maximum Size: 1 kB Supported SRAM Types: None Installed SRAM Type: None Handle 0x3002, DMI type 7, 17 bytes Cache Information Socket Designation: L2 Cache Configuration: Disabled, Not Socketed, Level 1 Operational Mode: Write Back Location: Internal Installed Size: 0 kB Maximum Size: 0 kB Supported SRAM Types: None Installed SRAM Type: None Handle 0x3003, DMI type 7, 17 bytes Cache Information Socket Designation: L3 Cache Configuration: Disabled, Not Socketed, Level 1 Operational Mode: Varies With Memory Address Location: Internal Installed Size: 256 kB Maximum Size: 256 kB Supported SRAM Types: None Installed SRAM Type: None Handle 0x1000, DMI type 4, 42 bytes Processor Information Socket Designation: CPU 1 Type: Central Processor Family: ARMv8 Manufacturer: Google ID: 00 00 00 00 00 00 00 00 Version: Not Specified Voltage: Unknown External Clock: Unknown Max Speed: 3000 MHz Current Speed: 3000 MHz Status: Populated, Enabled Upgrade: Other L1 Cache Handle: 0x3001 L2 Cache Handle: 0x3002 L3 Cache Handle: 0x3003 Serial Number: Not Specified Asset Tag: Not Specified Part Number: Not Specified Core Count: 1 Core Enabled: 1 Thread Count: 1 Characteristics: 64-bit capable Handle 0x0200, DMI type 16, 15 bytes Physical Memory Array Location: Other Use: System Memory Error Correction Type: Multi-bit ECC Maximum Capacity: 4 GB Error Information Handle: Not Provided Number Of Devices: 1 Handle 0x7000, DMI type 17, 21 bytes Memory Device Array Handle: 0x0200 Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 4 GB Form Factor: DIMM Set: None Locator: DIMM 0 Bank Locator: Not Specified Type: RAM Type Detail: Synchronous Handle 0x0300, DMI type 19, 15 bytes Memory Array Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000BFFFFFFF Range Size: 3 GB Physical Array Handle: 0x0200 Partition Width: 1 Handle 0x0301, DMI type 19, 15 bytes Memory Array Mapped Address Starting Address: 0x00100000000 Ending Address: 0x0013FFFFFFF Range Size: 1 GB Physical Array Handle: 0x0200 Partition Width: 1 Handle 0x4000, DMI type 20, 19 bytes Memory Device Mapped Address Starting Address: 0x00000000000 Ending Address: 0x000BFFFFFFF Range Size: 3 GB Physical Device Handle: 0x7000 Memory Array Mapped Address Handle: 0x0300 Partition Row Position: 1 Handle 0x4001, DMI type 20, 19 bytes Memory Device Mapped Address Starting Address: 0x00100000000 Ending Address: 0x0013FFFFFFF Range Size: 1 GB Physical Device Handle: 0x7000 Memory Array Mapped Address Handle: 0x0301 Partition Row Position: 1 Handle 0x0100, DMI type 32, 11 bytes System Boot Information Status: No errors detected Handle 0xFEFF, DMI type 127, 4 bytes End Of Table [root@r9-arm ~]# subscription-manager facts cpu.core(s)_per_socket: 1 cpu.cpu(s): 1 cpu.cpu_socket(s): 1 cpu.thread(s)_per_core: 1 cpu.topology_source: kernel /sys cpu sibling lists distribution.id: Plow distribution.name: Red Hat Enterprise Linux distribution.version: 9.0 distribution.version.modifier: Unknown dmi.baseboard.asset_tag: 957EDC41-6C53-B28F-6DA3-5168B6F8648D dmi.baseboard.chassis_handle: 0x0099 dmi.baseboard.contained_object_handles: 0 dmi.baseboard.features: Board is a hosting board dmi.baseboard.manufacturer: KVM dmi.baseboard.product_name: Google Compute Engine dmi.baseboard.serial_number: Board-GoogleCloud-957EDC416C53B28F6DA35168B6F8648D dmi.baseboard.type: Motherboard dmi.bios.address: 0xe8000 dmi.bios.bios_revision: 1.0 dmi.bios.release_date: 06/20/2022 dmi.bios.rom_size: 64 kB dmi.bios.runtime_size: 96 kB dmi.bios.vendor: Google dmi.bios.version: Google dmi.chassis.boot-up_state: Safe dmi.chassis.lock: Not Present dmi.chassis.manufacturer: Google dmi.chassis.oem_information: 0x00000000 dmi.chassis.power_supply_state: Safe dmi.chassis.thermal_state: Safe dmi.chassis.type: Other dmi.memory.array_handle: 0x0200 dmi.memory.data_width: 64 bits dmi.memory.error_correction_type: Multi-bit ECC dmi.memory.error_information_handle: Not Provided dmi.memory.form_factor: DIMM dmi.memory.location: Other dmi.memory.locator: DIMM 0 dmi.memory.maximum_capacity: 4 GB dmi.memory.number_of_devices: 1 dmi.memory.set: None dmi.memory.size: 4 GB dmi.memory.total_width: 64 bits dmi.memory.type: RAM dmi.memory.type_detail: Synchronous dmi.memory.use: System Memory dmi.meta.cpu_socket_count: 1 dmi.processor.characteristics: 64-bit capable dmi.processor.core_count: 1 dmi.processor.core_enabled: 1 dmi.processor.current_speed: 3000 MHz dmi.processor.family: ARMv8 dmi.processor.id: 00 00 00 00 00 00 00 00 dmi.processor.l1_cache_handle: 0x3001 dmi.processor.l2_cache_handle: 0x3002 dmi.processor.l3_cache_handle: 0x3003 dmi.processor.manufacturer: Google dmi.processor.max_speed: 3000 MHz dmi.processor.socket_designation: CPU 1 dmi.processor.status: Populated, Enabled dmi.processor.thread_count: 1 dmi.processor.type: Central Processor dmi.processor.upgrade: Other dmi.system.manufacturer: Google dmi.system.product_name: Google Compute Engine dmi.system.serial_number: GoogleCloud-957EDC416C53B28F6DA35168B6F8648D dmi.system.uuid: 957EDC41-6C53-B28F-6DA3-5168B6F8648D dmi.system.wake-up_type: Power Switch last_boot: 2022-08-03 13:58:24 UTC lscpu.architecture: aarch64 lscpu.bios_vendor_id: Google lscpu.bogomips: 50.00 lscpu.byte_order: Little Endian lscpu.core(s)_per_socket: 1 lscpu.cpu(s): 1 lscpu.cpu_op-mode(s): 64-bit lscpu.flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs lscpu.model: 1 lscpu.model_name: Neoverse-N1 lscpu.numa_node(s): 1 lscpu.numa_node0_cpu(s): 0 lscpu.on-line_cpu(s)_list: 0 lscpu.socket(s): 1 lscpu.stepping: r3p1 lscpu.thread(s)_per_core: 1 lscpu.vendor_id: ARM lscpu.vulnerability_itlb_multihit: Not affected lscpu.vulnerability_l1tf: Not affected lscpu.vulnerability_mds: Not affected lscpu.vulnerability_meltdown: Not affected lscpu.vulnerability_spec_store_bypass: Mitigation; Speculative Store Bypass disabled via prctl lscpu.vulnerability_spectre_v1: Mitigation; __user pointer sanitization lscpu.vulnerability_spectre_v2: Mitigation; CSV2, BHB lscpu.vulnerability_srbds: Not affected lscpu.vulnerability_tsx_async_abort: Not affected memory.memtotal: 3537600 memory.swaptotal: 0 net.interface.eth0.ipv4_address: 10.128.0.2 net.interface.eth0.ipv4_address_list: 10.128.0.2 net.interface.eth0.ipv4_broadcast: Unknown net.interface.eth0.ipv4_broadcast_list: Unknown net.interface.eth0.ipv4_netmask: 32 net.interface.eth0.ipv4_netmask_list: 32 net.interface.eth0.ipv6_address.link: fe80::1408:9bed:51ec:ae0d net.interface.eth0.ipv6_address.link_list: fe80::1408:9bed:51ec:ae0d net.interface.eth0.ipv6_netmask.link: 64 net.interface.eth0.ipv6_netmask.link_list: 64 net.interface.eth0.mac_address: 42:01:0a:80:00:02 net.interface.lo.ipv4_address: 127.0.0.1 net.interface.lo.ipv4_address_list: 127.0.0.1 net.interface.lo.ipv4_broadcast: Unknown net.interface.lo.ipv4_broadcast_list: Unknown net.interface.lo.ipv4_netmask: 8 net.interface.lo.ipv4_netmask_list: 8 net.interface.lo.ipv6_address.host: ::1 net.interface.lo.ipv6_address.host_list: ::1 net.interface.lo.ipv6_netmask.host: 128 net.interface.lo.ipv6_netmask.host_list: 128 network.fqdn: r9-arm.c.subscription-m.internal network.hostname: r9-arm network.ipv4_address: 10.128.0.2 network.ipv6_address: fe80::1408:9bed:51ec:ae0d proc_cpuinfo.common.bogomips: 50.00 proc_cpuinfo.common.cpu_architecture: 8 proc_cpuinfo.common.cpu_implementer: 0x41 proc_cpuinfo.common.cpu_part: 0xd0c proc_cpuinfo.common.cpu_revision: 1 proc_cpuinfo.common.cpu_variant: 0x3 proc_cpuinfo.common.features: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs proc_stat.btime: 1659535104 system.certificate_version: 3.2 system.default_locale: en_US.UTF-8 uname.machine: aarch64 uname.nodename: r9-arm uname.release: 5.14.0-70.17.1.el9_0.aarch64 uname.sysname: Linux uname.version: #1 SMP Tue Jun 14 11:43:56 EDT 2022 virt.host_type: Not Applicable virt.is_guest: False