All of lore.kernel.org
 help / color / mirror / Atom feed
* [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
@ 2025-03-11 14:35 Akihiro Suda
  2025-03-11 18:25 ` Aruna Ramakrishna
  2025-03-13 17:58 ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user " Dave Hansen
  0 siblings, 2 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-11 14:35 UTC (permalink / raw)
  To: Linux Regressions, Linux x86, aruna.ramakrishna, tglx

When the kernel is compiled with CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS,
it no longer boots on Virtualization.framework [1] (Apple's equivalent of QEMU)
on Intel Macs, since the following commit:

    70044df250d0  x86/pkeys: Update PKRU to enable all pkeys before XSAVE

Tested with macOS 13.5.1, running on MacBook Pro 2020 with
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.

The issue doesn't seem to happen with QEMU + Hypervisor.framework (Apple's KVM).

This issue was originally reported by Blake Garner in Lima [2]'s Slack channel.

[1] https://developer.apple.com/documentation/virtualization/running-linux-in-a-virtual-machine
[2] https://lima-vm.io/

---
#regzbot link: https://github.com/lima-vm/lima/issues/3334
#regzbot introduced: 70044df250d022572e26cd301bddf75eac1fe50e
#regzbot title: x86/pkeys: Update PKRU to enable all pkeys before XSAVE
---

A boot log with the regression commit, with defconfig:

$ LinuxVirtualMachine bzImage-g70044df250d0 initrd
(...)
[    0.477064] Run /init as init process
[    0.478585] ------------[ cut here ]------------
[    0.478747] WARNING: CPU: 0 PID: 1 at
arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
[    0.478893] Modules linked in:
[    0.478999] CPU: 0 UID: 0 PID: 1 Comm: init Not tainted
6.11.0-rc1-00007-g70044df250d0 #15
[    0.479148] RIP: 0010:get_xsave_addr_user+0x28/0x40
[    0.479454] Code: 90 90 66 0f 1f 00 48 63 ce ba 01 00 00 00 48 d3
e2 48 23 15 12 36 7e 01 74 0f 8b 04 8d 00 55 22 a8 48 01 f8 c3 cc cc
cc cc 90 <0f> 0b 90 31 c0 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00
00 0f
[    0.479699] RSP: 0018:ffff95af4000fd80 EFLAGS: 00010246
[    0.479983] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000009
[    0.480137] RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffe7b10bf80
[    0.480301] RBP: 00007ffe7b10bf80 R08: ffff95af4000fe90 R09: 0000000000000000
[    0.480431] R10: 0000000000000001 R11: 0000000000000010 R12: ffff930081198c40
[    0.480820] R13: 00007ffe7b10bf80 R14: ffff930081198c00 R15: ffff930081198000
[    0.481112] FS:  00007ff310710740(0000) GS:ffff9300fdc00000(0000)
knlGS:0000000000000000
[    0.481261] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    0.481415] CR2: 00007ffe7b10bf80 CR3: 00000000011f0004 CR4: 0000000000770ef0
[    0.481552] PKRU: 55555554
[    0.481660] Call Trace:
[    0.481726]  <TASK>
[    0.481798]  ? get_xsave_addr_user+0x28/0x40
[    0.481923]  ? __warn.cold+0x8e/0xea
[    0.482122]  ? get_xsave_addr_user+0x28/0x40
[    0.482212]  ? report_bug+0xff/0x140
[    0.482316]  ? handle_bug+0x3b/0x70
[    0.482408]  ? exc_invalid_op+0x17/0x70
[    0.482540]  ? asm_exc_invalid_op+0x1a/0x20
[    0.482609]  ? get_xsave_addr_user+0x28/0x40
[    0.482732]  copy_fpstate_to_sigframe+0x1be/0x380
[    0.482801]  ? __put_user_8+0x11/0x20
[    0.482869]  get_sigframe+0xf1/0x280
[    0.482957]  x64_setup_rt_frame+0x67/0x2c0
[    0.483057]  arch_do_signal_or_restart+0x1b3/0x240
[    0.483140]  syscall_exit_to_user_mode+0xb0/0x130
[    0.483215]  do_syscall_64+0xab/0x1a0
[    0.483270]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[    0.483343] RIP: 0033:0x7ff3107b2046
[    0.483405] Code: 00 00 48 8b 15 b3 1d 17 00 64 89 02 48 c7 c2 ff
ff ff ff 48 8b 5d f8 c9 48 89 d0 c3 0f 1f 84 00 00 00 00 00 48 8b 45
10 0f 05 <48> 63 d0 3d 00 f0 ff ff 77 10 48 8b 5d f8 48 89 d0 c9 c3 0f
1f 80
[    0.483666] RSP: 002b:00007ffe7b10cab0 EFLAGS: 00000202 ORIG_RAX:
000000000000003d
[    0.483774] RAX: 0000000000000035 RBX: 00007ff310710740 RCX: 00007ff3107b2046
[    0.483876] RDX: 0000000000000000 RSI: 00007ffe7b10cb0c RDI: ffffffffffffffff
[    0.483976] RBP: 00007ffe7b10cac0 R08: 0000000000000000 R09: 0000000000000000
[    0.484078] R10: 0000000000000000 R11: 0000000000000202 R12: 00007ffe7b10cb10
[    0.484178] R13: 00005561f9af12a0 R14: 00005561f9af2600 R15: 0000000000000001
[    0.484280]  </TASK>
[    0.484318] ---[ end trace 0000000000000000 ]---

(kernel hangs here)

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-11 14:35 [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization Akihiro Suda
@ 2025-03-11 18:25 ` Aruna Ramakrishna
  2025-03-12  5:57   ` Akihiro Suda
  2025-03-13 17:58 ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user " Dave Hansen
  1 sibling, 1 reply; 30+ messages in thread
From: Aruna Ramakrishna @ 2025-03-11 18:25 UTC (permalink / raw)
  To: Akihiro Suda; +Cc: Linux Regressions, Linux x86, tglx@linutronix.de

Hi Akihiro,

> On Mar 11, 2025, at 7:35 AM, Akihiro Suda <suda.kyoto@gmail.com> wrote:
> 
> When the kernel is compiled with CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS,
> it no longer boots on Virtualization.framework [1] (Apple's equivalent of QEMU)
> on Intel Macs, since the following commit:
> 
>    70044df250d0  x86/pkeys: Update PKRU to enable all pkeys before XSAVE
> 
> Tested with macOS 13.5.1, running on MacBook Pro 2020 with
> Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.
> 
> The issue doesn't seem to happen with QEMU + Hypervisor.framework (Apple's KVM).

Do you have CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS enabled in this instance
too, where you don’t see the issue?

Could I see lscpu output (just the Flags: section) on the machine with the issue? (after disabling
CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS of course.)

Thanks,
Aruna

> 
> This issue was originally reported by Blake Garner in Lima [2]'s Slack channel.
> 
> [1] https://developer.apple.com/documentation/virtualization/running-linux-in-a-virtual-machine
> [2] https://lima-vm.io/
> 
> ---
> #regzbot link: https://github.com/lima-vm/lima/issues/3334
> #regzbot introduced: 70044df250d022572e26cd301bddf75eac1fe50e
> #regzbot title: x86/pkeys: Update PKRU to enable all pkeys before XSAVE
> ---
> 
> A boot log with the regression commit, with defconfig:
> 
> $ LinuxVirtualMachine bzImage-g70044df250d0 initrd
> (...)
> [    0.477064] Run /init as init process
> [    0.478585] ------------[ cut here ]------------
> [    0.478747] WARNING: CPU: 0 PID: 1 at
> arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
> [    0.478893] Modules linked in:
> [    0.478999] CPU: 0 UID: 0 PID: 1 Comm: init Not tainted
> 6.11.0-rc1-00007-g70044df250d0 #15
> [    0.479148] RIP: 0010:get_xsave_addr_user+0x28/0x40
> [    0.479454] Code: 90 90 66 0f 1f 00 48 63 ce ba 01 00 00 00 48 d3
> e2 48 23 15 12 36 7e 01 74 0f 8b 04 8d 00 55 22 a8 48 01 f8 c3 cc cc
> cc cc 90 <0f> 0b 90 31 c0 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00
> 00 0f
> [    0.479699] RSP: 0018:ffff95af4000fd80 EFLAGS: 00010246
> [    0.479983] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000009
> [    0.480137] RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffe7b10bf80
> [    0.480301] RBP: 00007ffe7b10bf80 R08: ffff95af4000fe90 R09: 0000000000000000
> [    0.480431] R10: 0000000000000001 R11: 0000000000000010 R12: ffff930081198c40
> [    0.480820] R13: 00007ffe7b10bf80 R14: ffff930081198c00 R15: ffff930081198000
> [    0.481112] FS:  00007ff310710740(0000) GS:ffff9300fdc00000(0000)
> knlGS:0000000000000000
> [    0.481261] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [    0.481415] CR2: 00007ffe7b10bf80 CR3: 00000000011f0004 CR4: 0000000000770ef0
> [    0.481552] PKRU: 55555554
> [    0.481660] Call Trace:
> [    0.481726]  <TASK>
> [    0.481798]  ? get_xsave_addr_user+0x28/0x40
> [    0.481923]  ? __warn.cold+0x8e/0xea
> [    0.482122]  ? get_xsave_addr_user+0x28/0x40
> [    0.482212]  ? report_bug+0xff/0x140
> [    0.482316]  ? handle_bug+0x3b/0x70
> [    0.482408]  ? exc_invalid_op+0x17/0x70
> [    0.482540]  ? asm_exc_invalid_op+0x1a/0x20
> [    0.482609]  ? get_xsave_addr_user+0x28/0x40
> [    0.482732]  copy_fpstate_to_sigframe+0x1be/0x380
> [    0.482801]  ? __put_user_8+0x11/0x20
> [    0.482869]  get_sigframe+0xf1/0x280
> [    0.482957]  x64_setup_rt_frame+0x67/0x2c0
> [    0.483057]  arch_do_signal_or_restart+0x1b3/0x240
> [    0.483140]  syscall_exit_to_user_mode+0xb0/0x130
> [    0.483215]  do_syscall_64+0xab/0x1a0
> [    0.483270]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> [    0.483343] RIP: 0033:0x7ff3107b2046
> [    0.483405] Code: 00 00 48 8b 15 b3 1d 17 00 64 89 02 48 c7 c2 ff
> ff ff ff 48 8b 5d f8 c9 48 89 d0 c3 0f 1f 84 00 00 00 00 00 48 8b 45
> 10 0f 05 <48> 63 d0 3d 00 f0 ff ff 77 10 48 8b 5d f8 48 89 d0 c9 c3 0f
> 1f 80
> [    0.483666] RSP: 002b:00007ffe7b10cab0 EFLAGS: 00000202 ORIG_RAX:
> 000000000000003d
> [    0.483774] RAX: 0000000000000035 RBX: 00007ff310710740 RCX: 00007ff3107b2046
> [    0.483876] RDX: 0000000000000000 RSI: 00007ffe7b10cb0c RDI: ffffffffffffffff
> [    0.483976] RBP: 00007ffe7b10cac0 R08: 0000000000000000 R09: 0000000000000000
> [    0.484078] R10: 0000000000000000 R11: 0000000000000202 R12: 00007ffe7b10cb10
> [    0.484178] R13: 00005561f9af12a0 R14: 00005561f9af2600 R15: 0000000000000001
> [    0.484280]  </TASK>
> [    0.484318] ---[ end trace 0000000000000000 ]---
> 
> (kernel hangs here)


^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-11 18:25 ` Aruna Ramakrishna
@ 2025-03-12  5:57   ` Akihiro Suda
  2025-03-12  6:18     ` Akihiro Suda
  0 siblings, 1 reply; 30+ messages in thread
From: Akihiro Suda @ 2025-03-12  5:57 UTC (permalink / raw)
  To: Aruna Ramakrishna; +Cc: Linux Regressions, Linux x86, tglx@linutronix.de

Hi, Aruna, thanks for your reply

>> The issue doesn't seem to happen with QEMU + Hypervisor.framework (Apple's KVM).
>
> Do you have CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS enabled in this instance
too, where you don’t see the issue?

Yes. It's just the defconfig.

FYI the qemu command line is:
```
qemu-system-x86_64 \
  -cpu max -accel hvf -smp 2 \
  -m 2048 \
  -nographic \
  -kernel bzImage -initrd initrd  -append "console=ttyS0"
```

> lscpu

`cat /proc/cpuinfo` may work here?

```
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm
constant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq
ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c
rdrand hypervisor lahf_lm abm 3dnowprefetch pti intel_ppin fsgsbase
bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed adx smap avx512ifma
clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1
arat avx512vbmi umip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni
avx512_bitalg avx512_vpopcntdq

bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass
l1tf mds swapgs itlb_multihit srbds mmio_stale_data retbleed gds bhi
```

This seems different from `qemu-system-x86_64 -cpu host -accel hvf`,
which works fine:

```
--- cpuinfo.qemu.cpu-host,accel-hvf     2025-03-12 14:50:29
+++ cpuinfo.apple-vz    2025-03-12 14:51:51
@@ -2,11 +2,10 @@
 vendor_id       : GenuineIntel
 cpu family      : 6
 model           : 126
-model name      : 06/7e
+model name      : Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
 stepping        : 5
-microcode       : 0x1
-cpu MHz         : 2303.829
-cache size      : 16384 KB
+cpu MHz         : 2303.840
+cache size      : 8192 KB
 physical id     : 0
 siblings        : 2
 core id         : 0
@@ -15,25 +14,24 @@
 initial apicid  : 0
 fpu             : yes
 fpu_exception   : yes
-cpuid level     : 13
+cpuid level     : 22
 wp              : yes
-flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx
pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpud
+flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm
constant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq
ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c
rdrand hypervisor lahf_lm abm 3dnowprefetch pti fsgsbase bmi1 avx2
smep bmi2 erms avx512f avx512dq rdseed adx smap avx512ifma clflushopt
avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat
avx512vbmi umip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni
avx512_bitalg avx512_vpopcntdq
 bugs            : cpu_meltdown spectre_v1 spectre_v2
spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data
retbleed gds bhi
-bogomips        : 4607.65
+bogomips        : 4607.68
 clflush size    : 64
 cache_alignment : 64
-address sizes   : 36 bits physical, 48 bits virtual
+address sizes   : 39 bits physical, 48 bits virtual
 power management:

 processor       : 1
 vendor_id       : GenuineIntel
 cpu family      : 6
 model           : 126
-model name      : 06/7e
+model name      : Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
 stepping        : 5
-microcode       : 0x1
-cpu MHz         : 2303.829
-cache size      : 16384 KB
+cpu MHz         : 2303.840
+cache size      : 8192 KB
 physical id     : 0
 siblings        : 2
 core id         : 1
@@ -42,13 +40,13 @@
 initial apicid  : 1
 fpu             : yes
 fpu_exception   : yes
-cpuid level     : 13
+cpuid level     : 22
 wp              : yes
-flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx
pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpud
+flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm
constant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq
ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c
rdrand hypervisor lahf_lm abm 3dnowprefetch pti intel_ppin fsgsbase
bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed adx smap avx512ifma
clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1
arat avx512vbmi umip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni
avx512_bitalg avx512_vpopcntdq
 bugs            : cpu_meltdown spectre_v1 spectre_v2
spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data
retbleed gds bhi
-bogomips        : 4607.65
+bogomips        : 4607.68
 clflush size    : 64
 cache_alignment : 64
-address sizes   : 36 bits physical, 48 bits virtual
+address sizes   : 39 bits physical, 48 bits virtual
 power management:


```

Regards,
Akihiro Suda

2025年3月12日(水) 3:25 Aruna Ramakrishna <aruna.ramakrishna@oracle.com>:
>
> Hi Akihiro,
>
> > On Mar 11, 2025, at 7:35 AM, Akihiro Suda <suda.kyoto@gmail.com> wrote:
> >
> > When the kernel is compiled with CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS,
> > it no longer boots on Virtualization.framework [1] (Apple's equivalent of QEMU)
> > on Intel Macs, since the following commit:
> >
> >    70044df250d0  x86/pkeys: Update PKRU to enable all pkeys before XSAVE
> >
> > Tested with macOS 13.5.1, running on MacBook Pro 2020 with
> > Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.
> >
> > The issue doesn't seem to happen with QEMU + Hypervisor.framework (Apple's KVM).
>
> Do you have CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS enabled in this instance
> too, where you don’t see the issue?
>
> Could I see lscpu output (just the Flags: section) on the machine with the issue? (after disabling
> CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS of course.)
>
> Thanks,
> Aruna
>
> >
> > This issue was originally reported by Blake Garner in Lima [2]'s Slack channel.
> >
> > [1] https://developer.apple.com/documentation/virtualization/running-linux-in-a-virtual-machine
> > [2] https://lima-vm.io/
> >
> > ---
> > #regzbot link: https://github.com/lima-vm/lima/issues/3334
> > #regzbot introduced: 70044df250d022572e26cd301bddf75eac1fe50e
> > #regzbot title: x86/pkeys: Update PKRU to enable all pkeys before XSAVE
> > ---
> >
> > A boot log with the regression commit, with defconfig:
> >
> > $ LinuxVirtualMachine bzImage-g70044df250d0 initrd
> > (...)
> > [    0.477064] Run /init as init process
> > [    0.478585] ------------[ cut here ]------------
> > [    0.478747] WARNING: CPU: 0 PID: 1 at
> > arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
> > [    0.478893] Modules linked in:
> > [    0.478999] CPU: 0 UID: 0 PID: 1 Comm: init Not tainted
> > 6.11.0-rc1-00007-g70044df250d0 #15
> > [    0.479148] RIP: 0010:get_xsave_addr_user+0x28/0x40
> > [    0.479454] Code: 90 90 66 0f 1f 00 48 63 ce ba 01 00 00 00 48 d3
> > e2 48 23 15 12 36 7e 01 74 0f 8b 04 8d 00 55 22 a8 48 01 f8 c3 cc cc
> > cc cc 90 <0f> 0b 90 31 c0 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00
> > 00 0f
> > [    0.479699] RSP: 0018:ffff95af4000fd80 EFLAGS: 00010246
> > [    0.479983] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000009
> > [    0.480137] RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffe7b10bf80
> > [    0.480301] RBP: 00007ffe7b10bf80 R08: ffff95af4000fe90 R09: 0000000000000000
> > [    0.480431] R10: 0000000000000001 R11: 0000000000000010 R12: ffff930081198c40
> > [    0.480820] R13: 00007ffe7b10bf80 R14: ffff930081198c00 R15: ffff930081198000
> > [    0.481112] FS:  00007ff310710740(0000) GS:ffff9300fdc00000(0000)
> > knlGS:0000000000000000
> > [    0.481261] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [    0.481415] CR2: 00007ffe7b10bf80 CR3: 00000000011f0004 CR4: 0000000000770ef0
> > [    0.481552] PKRU: 55555554
> > [    0.481660] Call Trace:
> > [    0.481726]  <TASK>
> > [    0.481798]  ? get_xsave_addr_user+0x28/0x40
> > [    0.481923]  ? __warn.cold+0x8e/0xea
> > [    0.482122]  ? get_xsave_addr_user+0x28/0x40
> > [    0.482212]  ? report_bug+0xff/0x140
> > [    0.482316]  ? handle_bug+0x3b/0x70
> > [    0.482408]  ? exc_invalid_op+0x17/0x70
> > [    0.482540]  ? asm_exc_invalid_op+0x1a/0x20
> > [    0.482609]  ? get_xsave_addr_user+0x28/0x40
> > [    0.482732]  copy_fpstate_to_sigframe+0x1be/0x380
> > [    0.482801]  ? __put_user_8+0x11/0x20
> > [    0.482869]  get_sigframe+0xf1/0x280
> > [    0.482957]  x64_setup_rt_frame+0x67/0x2c0
> > [    0.483057]  arch_do_signal_or_restart+0x1b3/0x240
> > [    0.483140]  syscall_exit_to_user_mode+0xb0/0x130
> > [    0.483215]  do_syscall_64+0xab/0x1a0
> > [    0.483270]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> > [    0.483343] RIP: 0033:0x7ff3107b2046
> > [    0.483405] Code: 00 00 48 8b 15 b3 1d 17 00 64 89 02 48 c7 c2 ff
> > ff ff ff 48 8b 5d f8 c9 48 89 d0 c3 0f 1f 84 00 00 00 00 00 48 8b 45
> > 10 0f 05 <48> 63 d0 3d 00 f0 ff ff 77 10 48 8b 5d f8 48 89 d0 c9 c3 0f
> > 1f 80
> > [    0.483666] RSP: 002b:00007ffe7b10cab0 EFLAGS: 00000202 ORIG_RAX:
> > 000000000000003d
> > [    0.483774] RAX: 0000000000000035 RBX: 00007ff310710740 RCX: 00007ff3107b2046
> > [    0.483876] RDX: 0000000000000000 RSI: 00007ffe7b10cb0c RDI: ffffffffffffffff
> > [    0.483976] RBP: 00007ffe7b10cac0 R08: 0000000000000000 R09: 0000000000000000
> > [    0.484078] R10: 0000000000000000 R11: 0000000000000202 R12: 00007ffe7b10cb10
> > [    0.484178] R13: 00005561f9af12a0 R14: 00005561f9af2600 R15: 0000000000000001
> > [    0.484280]  </TASK>
> > [    0.484318] ---[ end trace 0000000000000000 ]---
> >
> > (kernel hangs here)
>

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-12  5:57   ` Akihiro Suda
@ 2025-03-12  6:18     ` Akihiro Suda
  2025-03-12  9:31       ` [PATCH] x86: disable PKU when running " Akihiro Suda
                         ` (2 more replies)
  0 siblings, 3 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-12  6:18 UTC (permalink / raw)
  To: Aruna Ramakrishna; +Cc: Linux Regressions, Linux x86, tglx@linutronix.de

Sorry, the cpuinfo diff was broken due to the terminal width difference

```
--- cpuinfo.qemu.cpu-host,accel-hvf     2025-03-12 15:12:53
+++ cpuinfo.apple-vz    2025-03-12 15:13:17
@@ -2,11 +2,10 @@
 vendor_id       : GenuineIntel
 cpu family      : 6
 model           : 126
-model name      : 06/7e
+model name      : Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
 stepping        : 5
-microcode       : 0x1
-cpu MHz         : 2303.790
-cache size      : 16384 KB
+cpu MHz         : 2303.850
+cache size      : 8192 KB
 physical id     : 0
 siblings        : 2
 core id         : 0
@@ -15,32 +14,31 @@
 initial apicid  : 0
 fpu             : yes
 fpu_exception   : yes
-cpuid level     : 13
+cpuid level     : 22
 wp              : yes
 flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
-pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp
lm constant_
-tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid
sse4_1 sse4_
-2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm
abm 3dnowpref
-etch pti fsgsbase bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed
adx smap avx5
-12ifma clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xgetbv1
arat avx512
-vbmi avx512_vpopcntdq rdpid
+pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl
+xtopology nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1
sse4_2 movb
+e popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm
3dnowprefetch pti fsgs
+base bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed adx smap
avx512ifma clflus
+hopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat
avx512vbmi u
+mip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni avx512_bitalg
avx512_vpopcntdq
 bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds
 swapgs itlb_multihit srbds mmio_stale_data retbleed gds bhi
-bogomips        : 4607.58
+bogomips        : 4607.70
 clflush size    : 64
 cache_alignment : 64
-address sizes   : 36 bits physical, 48 bits virtual
+address sizes   : 39 bits physical, 48 bits virtual
 power management:

 processor       : 1
 vendor_id       : GenuineIntel
 cpu family      : 6
 model           : 126
-model name      : 06/7e
+model name      : Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
 stepping        : 5
-microcode       : 0x1
-cpu MHz         : 2303.790
-cache size      : 16384 KB
+cpu MHz         : 2303.850
+cache size      : 8192 KB
 physical id     : 0
 siblings        : 2
 core id         : 1
@@ -49,20 +47,21 @@
 initial apicid  : 1
 fpu             : yes
 fpu_exception   : yes
-cpuid level     : 13
+cpuid level     : 22
 wp              : yes
 flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
-pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp
lm constant_
-tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid
sse4_1 sse4_
-2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm
abm 3dnowpref
-etch pti fsgsbase bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed
adx smap avx5
-12ifma clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xgetbv1
arat avx512
-vbmi avx512_vpopcntdq rdpid
+pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc rep_good nopl
+xtopology nonstop_tsc cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1
sse4_2 movb
+e popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm
3dnowprefetch pti inte
+l_ppin fsgsbase bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed adx
smap avx512
+ifma clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec
xgetbv1 arat a
+vx512vbmi umip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni
avx512_bitalg avx51
+2_vpopcntdq
 bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds
 swapgs itlb_multihit srbds mmio_stale_data retbleed gds bhi
-bogomips        : 4607.58
+bogomips        : 4607.70
 clflush size    : 64
 cache_alignment : 64
-address sizes   : 36 bits physical, 48 bits virtual
+address sizes   : 39 bits physical, 48 bits virtual
 power management:


```

Word diff for the flags:
```
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2[-ss-] ht syscall nx[-pdpe1gb
rdtscp-] lm [-constant_-]
[-tsc-]{+constant_tsc+} rep_good nopl
xtopology {+nonstop_tsc+} cpuid pni pclmulqdq ssse3 fma cx16 pcid
sse4_1 [-sse4_-]
[-2 x2apic movbe-]{+sse4_2 movb+}
{+e+} popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm [-3dnowpref-]
[-etch-]{+3dnowprefetch+} pti {+inte+}
{+l_ppin+} fsgsbase bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed
adx smap [-avx5-]
[-12ifma-]{+avx512+}
{+ifma+} clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt
{+xsavec+} xgetbv1 arat [-avx512-]
[-vbmi avx512_vpopcntdq rdpid-]{+a+}
{+vx512vbmi umip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni
avx512_bitalg avx51+}
{+2_vpopcntdq+}
```

Notably `ospke` seems missing in QEMU, even though `-cpu host` is specified.

2025年3月12日(水) 14:57 Akihiro Suda <suda.kyoto@gmail.com>:
>
> Hi, Aruna, thanks for your reply
>
> >> The issue doesn't seem to happen with QEMU + Hypervisor.framework (Apple's KVM).
> >
> > Do you have CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS enabled in this instance
> too, where you don’t see the issue?
>
> Yes. It's just the defconfig.
>
> FYI the qemu command line is:
> ```
> qemu-system-x86_64 \
>   -cpu max -accel hvf -smp 2 \
>   -m 2048 \
>   -nographic \
>   -kernel bzImage -initrd initrd  -append "console=ttyS0"
> ```
>
> > lscpu
>
> `cat /proc/cpuinfo` may work here?
>
> ```
> flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
> mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm
> constant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq
> ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c
> rdrand hypervisor lahf_lm abm 3dnowprefetch pti intel_ppin fsgsbase
> bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed adx smap avx512ifma
> clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1
> arat avx512vbmi umip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni
> avx512_bitalg avx512_vpopcntdq
>
> bugs            : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass
> l1tf mds swapgs itlb_multihit srbds mmio_stale_data retbleed gds bhi
> ```
>
> This seems different from `qemu-system-x86_64 -cpu host -accel hvf`,
> which works fine:
>
> ```
> --- cpuinfo.qemu.cpu-host,accel-hvf     2025-03-12 14:50:29
> +++ cpuinfo.apple-vz    2025-03-12 14:51:51
> @@ -2,11 +2,10 @@
>  vendor_id       : GenuineIntel
>  cpu family      : 6
>  model           : 126
> -model name      : 06/7e
> +model name      : Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
>  stepping        : 5
> -microcode       : 0x1
> -cpu MHz         : 2303.829
> -cache size      : 16384 KB
> +cpu MHz         : 2303.840
> +cache size      : 8192 KB
>  physical id     : 0
>  siblings        : 2
>  core id         : 0
> @@ -15,25 +14,24 @@
>  initial apicid  : 0
>  fpu             : yes
>  fpu_exception   : yes
> -cpuid level     : 13
> +cpuid level     : 22
>  wp              : yes
> -flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
> pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx
> pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpud
> +flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
> pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm
> constant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq
> ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c
> rdrand hypervisor lahf_lm abm 3dnowprefetch pti fsgsbase bmi1 avx2
> smep bmi2 erms avx512f avx512dq rdseed adx smap avx512ifma clflushopt
> avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat
> avx512vbmi umip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni
> avx512_bitalg avx512_vpopcntdq
>  bugs            : cpu_meltdown spectre_v1 spectre_v2
> spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data
> retbleed gds bhi
> -bogomips        : 4607.65
> +bogomips        : 4607.68
>  clflush size    : 64
>  cache_alignment : 64
> -address sizes   : 36 bits physical, 48 bits virtual
> +address sizes   : 39 bits physical, 48 bits virtual
>  power management:
>
>  processor       : 1
>  vendor_id       : GenuineIntel
>  cpu family      : 6
>  model           : 126
> -model name      : 06/7e
> +model name      : Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
>  stepping        : 5
> -microcode       : 0x1
> -cpu MHz         : 2303.829
> -cache size      : 16384 KB
> +cpu MHz         : 2303.840
> +cache size      : 8192 KB
>  physical id     : 0
>  siblings        : 2
>  core id         : 1
> @@ -42,13 +40,13 @@
>  initial apicid  : 1
>  fpu             : yes
>  fpu_exception   : yes
> -cpuid level     : 13
> +cpuid level     : 22
>  wp              : yes
> -flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
> pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx
> pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpud
> +flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr
> pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm
> constant_tsc rep_good nopl xtopology nonstop_tsc cpuid pni pclmulqdq
> ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c
> rdrand hypervisor lahf_lm abm 3dnowprefetch pti intel_ppin fsgsbase
> bmi1 avx2 smep bmi2 erms avx512f avx512dq rdseed adx smap avx512ifma
> clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1
> arat avx512vbmi umip pku ospke avx512_vbmi2 vpclmulqdq avx512_vnni
> avx512_bitalg avx512_vpopcntdq
>  bugs            : cpu_meltdown spectre_v1 spectre_v2
> spec_store_bypass l1tf mds swapgs itlb_multihit srbds mmio_stale_data
> retbleed gds bhi
> -bogomips        : 4607.65
> +bogomips        : 4607.68
>  clflush size    : 64
>  cache_alignment : 64
> -address sizes   : 36 bits physical, 48 bits virtual
> +address sizes   : 39 bits physical, 48 bits virtual
>  power management:
>
>
> ```
>
> Regards,
> Akihiro Suda
>
> 2025年3月12日(水) 3:25 Aruna Ramakrishna <aruna.ramakrishna@oracle.com>:
> >
> > Hi Akihiro,
> >
> > > On Mar 11, 2025, at 7:35 AM, Akihiro Suda <suda.kyoto@gmail.com> wrote:
> > >
> > > When the kernel is compiled with CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS,
> > > it no longer boots on Virtualization.framework [1] (Apple's equivalent of QEMU)
> > > on Intel Macs, since the following commit:
> > >
> > >    70044df250d0  x86/pkeys: Update PKRU to enable all pkeys before XSAVE
> > >
> > > Tested with macOS 13.5.1, running on MacBook Pro 2020 with
> > > Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.
> > >
> > > The issue doesn't seem to happen with QEMU + Hypervisor.framework (Apple's KVM).
> >
> > Do you have CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS enabled in this instance
> > too, where you don’t see the issue?
> >
> > Could I see lscpu output (just the Flags: section) on the machine with the issue? (after disabling
> > CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS of course.)
> >
> > Thanks,
> > Aruna
> >
> > >
> > > This issue was originally reported by Blake Garner in Lima [2]'s Slack channel.
> > >
> > > [1] https://developer.apple.com/documentation/virtualization/running-linux-in-a-virtual-machine
> > > [2] https://lima-vm.io/
> > >
> > > ---
> > > #regzbot link: https://github.com/lima-vm/lima/issues/3334
> > > #regzbot introduced: 70044df250d022572e26cd301bddf75eac1fe50e
> > > #regzbot title: x86/pkeys: Update PKRU to enable all pkeys before XSAVE
> > > ---
> > >
> > > A boot log with the regression commit, with defconfig:
> > >
> > > $ LinuxVirtualMachine bzImage-g70044df250d0 initrd
> > > (...)
> > > [    0.477064] Run /init as init process
> > > [    0.478585] ------------[ cut here ]------------
> > > [    0.478747] WARNING: CPU: 0 PID: 1 at
> > > arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
> > > [    0.478893] Modules linked in:
> > > [    0.478999] CPU: 0 UID: 0 PID: 1 Comm: init Not tainted
> > > 6.11.0-rc1-00007-g70044df250d0 #15
> > > [    0.479148] RIP: 0010:get_xsave_addr_user+0x28/0x40
> > > [    0.479454] Code: 90 90 66 0f 1f 00 48 63 ce ba 01 00 00 00 48 d3
> > > e2 48 23 15 12 36 7e 01 74 0f 8b 04 8d 00 55 22 a8 48 01 f8 c3 cc cc
> > > cc cc 90 <0f> 0b 90 31 c0 c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00
> > > 00 0f
> > > [    0.479699] RSP: 0018:ffff95af4000fd80 EFLAGS: 00010246
> > > [    0.479983] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000009
> > > [    0.480137] RDX: 0000000000000000 RSI: 0000000000000009 RDI: 00007ffe7b10bf80
> > > [    0.480301] RBP: 00007ffe7b10bf80 R08: ffff95af4000fe90 R09: 0000000000000000
> > > [    0.480431] R10: 0000000000000001 R11: 0000000000000010 R12: ffff930081198c40
> > > [    0.480820] R13: 00007ffe7b10bf80 R14: ffff930081198c00 R15: ffff930081198000
> > > [    0.481112] FS:  00007ff310710740(0000) GS:ffff9300fdc00000(0000)
> > > knlGS:0000000000000000
> > > [    0.481261] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > [    0.481415] CR2: 00007ffe7b10bf80 CR3: 00000000011f0004 CR4: 0000000000770ef0
> > > [    0.481552] PKRU: 55555554
> > > [    0.481660] Call Trace:
> > > [    0.481726]  <TASK>
> > > [    0.481798]  ? get_xsave_addr_user+0x28/0x40
> > > [    0.481923]  ? __warn.cold+0x8e/0xea
> > > [    0.482122]  ? get_xsave_addr_user+0x28/0x40
> > > [    0.482212]  ? report_bug+0xff/0x140
> > > [    0.482316]  ? handle_bug+0x3b/0x70
> > > [    0.482408]  ? exc_invalid_op+0x17/0x70
> > > [    0.482540]  ? asm_exc_invalid_op+0x1a/0x20
> > > [    0.482609]  ? get_xsave_addr_user+0x28/0x40
> > > [    0.482732]  copy_fpstate_to_sigframe+0x1be/0x380
> > > [    0.482801]  ? __put_user_8+0x11/0x20
> > > [    0.482869]  get_sigframe+0xf1/0x280
> > > [    0.482957]  x64_setup_rt_frame+0x67/0x2c0
> > > [    0.483057]  arch_do_signal_or_restart+0x1b3/0x240
> > > [    0.483140]  syscall_exit_to_user_mode+0xb0/0x130
> > > [    0.483215]  do_syscall_64+0xab/0x1a0
> > > [    0.483270]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
> > > [    0.483343] RIP: 0033:0x7ff3107b2046
> > > [    0.483405] Code: 00 00 48 8b 15 b3 1d 17 00 64 89 02 48 c7 c2 ff
> > > ff ff ff 48 8b 5d f8 c9 48 89 d0 c3 0f 1f 84 00 00 00 00 00 48 8b 45
> > > 10 0f 05 <48> 63 d0 3d 00 f0 ff ff 77 10 48 8b 5d f8 48 89 d0 c9 c3 0f
> > > 1f 80
> > > [    0.483666] RSP: 002b:00007ffe7b10cab0 EFLAGS: 00000202 ORIG_RAX:
> > > 000000000000003d
> > > [    0.483774] RAX: 0000000000000035 RBX: 00007ff310710740 RCX: 00007ff3107b2046
> > > [    0.483876] RDX: 0000000000000000 RSI: 00007ffe7b10cb0c RDI: ffffffffffffffff
> > > [    0.483976] RBP: 00007ffe7b10cac0 R08: 0000000000000000 R09: 0000000000000000
> > > [    0.484078] R10: 0000000000000000 R11: 0000000000000202 R12: 00007ffe7b10cb10
> > > [    0.484178] R13: 00005561f9af12a0 R14: 00005561f9af2600 R15: 0000000000000001
> > > [    0.484280]  </TASK>
> > > [    0.484318] ---[ end trace 0000000000000000 ]---
> > >
> > > (kernel hangs here)
> >

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH] x86: disable PKU when running on Apple Virtualization
  2025-03-12  6:18     ` Akihiro Suda
@ 2025-03-12  9:31       ` Akihiro Suda
  2025-03-12  9:32       ` Akihiro Suda
  2025-03-12 10:09       ` [PATCH v2] " Akihiro Suda
  2 siblings, 0 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-12  9:31 UTC (permalink / raw)
  To: x86; +Cc: regressions, aruna.ramakrishna, glx, Akihiro Suda

OSPKE seems broken on Apple Virtualization.

  WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
  (...)
  Call Trace:
   <TASK>
   ? get_xsave_addr_user+0x28/0x40
   ? __warn.cold+0x8e/0xea
   ? get_xsave_addr_user+0x28/0x40
   ? report_bug+0xff/0x140
   ? handle_bug+0x3b/0x70
   ? exc_invalid_op+0x17/0x70
   ? asm_exc_invalid_op+0x1a/0x20
   ? get_xsave_addr_user+0x28/0x40
   copy_fpstate_to_sigframe+0x1be/0x380
   ? __put_user_8+0x11/0x20
   get_sigframe+0xf1/0x280
   x64_setup_rt_frame+0x67/0x2c0
   arch_do_signal_or_restart+0x1b3/0x240
   syscall_exit_to_user_mode+0xb0/0x130
   do_syscall_64+0xab/0x1a0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

Tested on macOS 13.5.1 running on MacBook Pro 2020 with
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.

Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
Link: https://github.com/lima-vm/lima/issues/3334
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
---
 arch/x86/kernel/cpu/common.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 7cce91b19fb2..6a701ec2b42e 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -26,6 +26,7 @@
 #include <linux/pgtable.h>
 #include <linux/stackprotector.h>
 #include <linux/utsname.h>
+#include <linux/acpi.h>
 
 #include <asm/alternative.h>
 #include <asm/cmdline.h>
@@ -516,6 +517,21 @@ static bool pku_disabled;
 
 static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 {
+	/*
+	 * OSPKE seems broken on Apple Virtualization.
+	 * https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
+	 *
+	 * TODO: conditionally enable pku depending on the DMI BIOS version when Apple
+	 * fixes the issue.
+	 *
+	 * However, this would be still not enough because DMI is missing when vmlinuz
+	 * is directly loaded into VM.
+	 */
+	if (!memcmp(acpi_gbl_FADT.header.oem_id, "APPLE", 5)) {
+		pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
+		pku_disabled = true;
+	}
+
 	if (c == &boot_cpu_data) {
 		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
 			return;
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH] x86: disable PKU when running on Apple Virtualization
  2025-03-12  6:18     ` Akihiro Suda
  2025-03-12  9:31       ` [PATCH] x86: disable PKU when running " Akihiro Suda
@ 2025-03-12  9:32       ` Akihiro Suda
  2025-03-12 10:09       ` [PATCH v2] " Akihiro Suda
  2 siblings, 0 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-12  9:32 UTC (permalink / raw)
  To: x86; +Cc: regressions, aruna.ramakrishna, tglx, Akihiro Suda

OSPKE seems broken on Apple Virtualization.

  WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
  (...)
  Call Trace:
   <TASK>
   ? get_xsave_addr_user+0x28/0x40
   ? __warn.cold+0x8e/0xea
   ? get_xsave_addr_user+0x28/0x40
   ? report_bug+0xff/0x140
   ? handle_bug+0x3b/0x70
   ? exc_invalid_op+0x17/0x70
   ? asm_exc_invalid_op+0x1a/0x20
   ? get_xsave_addr_user+0x28/0x40
   copy_fpstate_to_sigframe+0x1be/0x380
   ? __put_user_8+0x11/0x20
   get_sigframe+0xf1/0x280
   x64_setup_rt_frame+0x67/0x2c0
   arch_do_signal_or_restart+0x1b3/0x240
   syscall_exit_to_user_mode+0xb0/0x130
   do_syscall_64+0xab/0x1a0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

Tested on macOS 13.5.1 running on MacBook Pro 2020 with
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.

Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
Link: https://github.com/lima-vm/lima/issues/3334
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
---
 arch/x86/kernel/cpu/common.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 7cce91b19fb2..6a701ec2b42e 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -26,6 +26,7 @@
 #include <linux/pgtable.h>
 #include <linux/stackprotector.h>
 #include <linux/utsname.h>
+#include <linux/acpi.h>
 
 #include <asm/alternative.h>
 #include <asm/cmdline.h>
@@ -516,6 +517,21 @@ static bool pku_disabled;
 
 static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 {
+	/*
+	 * OSPKE seems broken on Apple Virtualization.
+	 * https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
+	 *
+	 * TODO: conditionally enable pku depending on the DMI BIOS version when Apple
+	 * fixes the issue.
+	 *
+	 * However, this would be still not enough because DMI is missing when vmlinuz
+	 * is directly loaded into VM.
+	 */
+	if (!memcmp(acpi_gbl_FADT.header.oem_id, "APPLE", 5)) {
+		pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
+		pku_disabled = true;
+	}
+
 	if (c == &boot_cpu_data) {
 		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
 			return;
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* [PATCH v2] x86: disable PKU when running on Apple Virtualization
  2025-03-12  6:18     ` Akihiro Suda
  2025-03-12  9:31       ` [PATCH] x86: disable PKU when running " Akihiro Suda
  2025-03-12  9:32       ` Akihiro Suda
@ 2025-03-12 10:09       ` Akihiro Suda
  2025-03-12 10:21         ` Greg KH
                           ` (4 more replies)
  2 siblings, 5 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-12 10:09 UTC (permalink / raw)
  To: linux-kernel
  Cc: x86, suda.kyoto, regressions, aruna.ramakrishna, tglx,
	Akihiro Suda

OSPKE seems broken on Apple Virtualization.

  WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
  (...)
  Call Trace:
   <TASK>
   ? get_xsave_addr_user+0x28/0x40
   ? __warn.cold+0x8e/0xea
   ? get_xsave_addr_user+0x28/0x40
   ? report_bug+0xff/0x140
   ? handle_bug+0x3b/0x70
   ? exc_invalid_op+0x17/0x70
   ? asm_exc_invalid_op+0x1a/0x20
   ? get_xsave_addr_user+0x28/0x40
   copy_fpstate_to_sigframe+0x1be/0x380
   ? __put_user_8+0x11/0x20
   get_sigframe+0xf1/0x280
   x64_setup_rt_frame+0x67/0x2c0
   arch_do_signal_or_restart+0x1b3/0x240
   syscall_exit_to_user_mode+0xb0/0x130
   do_syscall_64+0xab/0x1a0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

Tested on macOS 13.5.1 running on MacBook Pro 2020 with
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.

Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
Link: https://github.com/lima-vm/lima/issues/3334
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
---
v2: check oem_table_id rather than oem_id for better robustness
---
 arch/x86/kernel/cpu/common.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 7cce91b19fb2..8d78d34cd434 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -26,6 +26,7 @@
 #include <linux/pgtable.h>
 #include <linux/stackprotector.h>
 #include <linux/utsname.h>
+#include <linux/acpi.h>
 
 #include <asm/alternative.h>
 #include <asm/cmdline.h>
@@ -516,6 +517,21 @@ static bool pku_disabled;
 
 static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 {
+	/*
+	 * OSPKE seems broken on Apple Virtualization.
+	 * https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
+	 *
+	 * TODO: conditionally enable pku depending on the DMI BIOS version when Apple
+	 * fixes the issue.
+	 *
+	 * However, this would be still not enough because DMI is missing when vmlinuz
+	 * is directly loaded into VM.
+	 */
+	if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
+		pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
+		pku_disabled = true;
+	}
+
 	if (c == &boot_cpu_data) {
 		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
 			return;
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH v2] x86: disable PKU when running on Apple Virtualization
  2025-03-12 10:09       ` [PATCH v2] " Akihiro Suda
@ 2025-03-12 10:21         ` Greg KH
  2025-03-13 17:02         ` Ingo Molnar
                           ` (3 subsequent siblings)
  4 siblings, 0 replies; 30+ messages in thread
From: Greg KH @ 2025-03-12 10:21 UTC (permalink / raw)
  To: Akihiro Suda
  Cc: linux-kernel, x86, suda.kyoto, regressions, aruna.ramakrishna,
	tglx, Akihiro Suda

On Wed, Mar 12, 2025 at 07:09:26PM +0900, Akihiro Suda wrote:
> OSPKE seems broken on Apple Virtualization.
> 
>   WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
>   (...)
>   Call Trace:
>    <TASK>
>    ? get_xsave_addr_user+0x28/0x40
>    ? __warn.cold+0x8e/0xea
>    ? get_xsave_addr_user+0x28/0x40
>    ? report_bug+0xff/0x140
>    ? handle_bug+0x3b/0x70
>    ? exc_invalid_op+0x17/0x70
>    ? asm_exc_invalid_op+0x1a/0x20
>    ? get_xsave_addr_user+0x28/0x40
>    copy_fpstate_to_sigframe+0x1be/0x380
>    ? __put_user_8+0x11/0x20
>    get_sigframe+0xf1/0x280
>    x64_setup_rt_frame+0x67/0x2c0
>    arch_do_signal_or_restart+0x1b3/0x240
>    syscall_exit_to_user_mode+0xb0/0x130
>    do_syscall_64+0xab/0x1a0
>    entry_SYSCALL_64_after_hwframe+0x77/0x7f
> 
> Tested on macOS 13.5.1 running on MacBook Pro 2020 with
> Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.
> 
> Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
> Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
> Link: https://github.com/lima-vm/lima/issues/3334
> Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
> ---
> v2: check oem_table_id rather than oem_id for better robustness
> ---
>  arch/x86/kernel/cpu/common.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index 7cce91b19fb2..8d78d34cd434 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -26,6 +26,7 @@
>  #include <linux/pgtable.h>
>  #include <linux/stackprotector.h>
>  #include <linux/utsname.h>
> +#include <linux/acpi.h>
>  
>  #include <asm/alternative.h>
>  #include <asm/cmdline.h>
> @@ -516,6 +517,21 @@ static bool pku_disabled;
>  
>  static __always_inline void setup_pku(struct cpuinfo_x86 *c)
>  {
> +	/*
> +	 * OSPKE seems broken on Apple Virtualization.
> +	 * https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
> +	 *
> +	 * TODO: conditionally enable pku depending on the DMI BIOS version when Apple
> +	 * fixes the issue.
> +	 *
> +	 * However, this would be still not enough because DMI is missing when vmlinuz
> +	 * is directly loaded into VM.
> +	 */
> +	if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
> +		pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
> +		pku_disabled = true;
> +	}
> +
>  	if (c == &boot_cpu_data) {
>  		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
>  			return;
> -- 
> 2.45.2
> 
> 

Hi,

This is the friendly patch-bot of Greg Kroah-Hartman.  You have sent him
a patch that has triggered this response.  He used to manually respond
to these common problems, but in order to save his sanity (he kept
writing the same thing over and over, yet to different people), I was
created.  Hopefully you will not take offence and will fix the problem
in your patch and resubmit it so that it can be accepted into the Linux
kernel tree.

You are receiving this message because of the following common error(s)
as indicated below:

- You have marked a patch with a "Fixes:" tag for a commit that is in an
  older released kernel, yet you do not have a cc: stable line in the
  signed-off-by area at all, which means that the patch will not be
  applied to any older kernel releases.  To properly fix this, please
  follow the documented rules in the
  Documentation/process/stable-kernel-rules.rst file for how to resolve
  this.

If you wish to discuss this problem further, or you have questions about
how to resolve this issue, please feel free to respond to this email and
Greg will reply once he has dug out from the pending patches received
from other developers.

thanks,

greg k-h's patch email bot

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2] x86: disable PKU when running on Apple Virtualization
  2025-03-12 10:09       ` [PATCH v2] " Akihiro Suda
  2025-03-12 10:21         ` Greg KH
@ 2025-03-13 17:02         ` Ingo Molnar
  2025-03-13 23:59           ` Akihiro Suda
  2025-03-13 17:11         ` [tip: x86/urgent] x86/pkeys: Disable " tip-bot2 for Akihiro Suda
                           ` (2 subsequent siblings)
  4 siblings, 1 reply; 30+ messages in thread
From: Ingo Molnar @ 2025-03-13 17:02 UTC (permalink / raw)
  To: Akihiro Suda
  Cc: linux-kernel, x86, suda.kyoto, regressions, aruna.ramakrishna,
	tglx, Akihiro Suda


* Akihiro Suda <suda.gitsendemail@gmail.com> wrote:

> OSPKE seems broken on Apple Virtualization.
> 
>   WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
>   (...)
>   Call Trace:
>    <TASK>
>    ? get_xsave_addr_user+0x28/0x40
>    ? __warn.cold+0x8e/0xea
>    ? get_xsave_addr_user+0x28/0x40
>    ? report_bug+0xff/0x140
>    ? handle_bug+0x3b/0x70
>    ? exc_invalid_op+0x17/0x70
>    ? asm_exc_invalid_op+0x1a/0x20
>    ? get_xsave_addr_user+0x28/0x40
>    copy_fpstate_to_sigframe+0x1be/0x380
>    ? __put_user_8+0x11/0x20
>    get_sigframe+0xf1/0x280
>    x64_setup_rt_frame+0x67/0x2c0
>    arch_do_signal_or_restart+0x1b3/0x240
>    syscall_exit_to_user_mode+0xb0/0x130
>    do_syscall_64+0xab/0x1a0
>    entry_SYSCALL_64_after_hwframe+0x77/0x7f
> 
> Tested on macOS 13.5.1 running on MacBook Pro 2020 with
> Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.
> 
> Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
> Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
> Link: https://github.com/lima-vm/lima/issues/3334
> Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
> ---
> v2: check oem_table_id rather than oem_id for better robustness

So this is rather weird, but I've applied the quirk as it upgrades 
broken guest side code into a boot time warning.

> +	/*
> +	 * OSPKE seems broken on Apple Virtualization.
> +	 * https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
> +	 *
> +	 * TODO: conditionally enable pku depending on the DMI BIOS version when Apple
> +	 * fixes the issue.
> +	 *
> +	 * However, this would be still not enough because DMI is missing when vmlinuz
> +	 * is directly loaded into VM.
> +	 */
> +	if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
> +		pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
> +		pku_disabled = true;
> +	}

Note that I updated the comments here (the git log gives enough 
information), plus enclosed this into #ifdef CONFIG_ACPI, as 
acpi_gbl_FADT is not available on !CONFIG_ACPI builds.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [tip: x86/urgent] x86/pkeys: Disable PKU when running on Apple Virtualization
  2025-03-12 10:09       ` [PATCH v2] " Akihiro Suda
  2025-03-12 10:21         ` Greg KH
  2025-03-13 17:02         ` Ingo Molnar
@ 2025-03-13 17:11         ` tip-bot2 for Akihiro Suda
  2025-03-14  6:26         ` [PATCH v2] x86: disable " kernel test robot
  2025-03-14  6:26         ` kernel test robot
  4 siblings, 0 replies; 30+ messages in thread
From: tip-bot2 for Akihiro Suda @ 2025-03-13 17:11 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Akihiro Suda, Ingo Molnar, Dave Hansen, Linus Torvalds, x86,
	linux-kernel

The following commit has been merged into the x86/urgent branch of tip:

Commit-ID:     0457ee8d3da0e497c42ca68b7c3c70e9b39cba98
Gitweb:        https://git.kernel.org/tip/0457ee8d3da0e497c42ca68b7c3c70e9b39cba98
Author:        Akihiro Suda <suda.gitsendemail@gmail.com>
AuthorDate:    Wed, 12 Mar 2025 19:09:26 +09:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Thu, 13 Mar 2025 17:59:46 +01:00

x86/pkeys: Disable PKU when running on Apple Virtualization

Protection keys seem broken on Apple Virtualization, they produce this warning:

  WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
  (...)
  Call Trace:
   <TASK>
   ? get_xsave_addr_user+0x28/0x40
   ? __warn.cold+0x8e/0xea
   ? get_xsave_addr_user+0x28/0x40
   ? report_bug+0xff/0x140
   ? handle_bug+0x3b/0x70
   ? exc_invalid_op+0x17/0x70
   ? asm_exc_invalid_op+0x1a/0x20
   ? get_xsave_addr_user+0x28/0x40
   copy_fpstate_to_sigframe+0x1be/0x380
   ? __put_user_8+0x11/0x20
   get_sigframe+0xf1/0x280
   x64_setup_rt_frame+0x67/0x2c0
   arch_do_signal_or_restart+0x1b3/0x240
   syscall_exit_to_user_mode+0xb0/0x130
   do_syscall_64+0xab/0x1a0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

Work it around by applying a quirk: look up 'Apple Vz' in the
ACPI FADT table in setup_pku() and disabling PKU.

Tested on macOS 13.5.1 running on MacBook Pro 2020 with
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.

[ mingo: Fixed !ACPI build bug, updated the comments and the changelog. ]

Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://github.com/lima-vm/lima/issues/3334
Link: https://lore.kernel.org/r/20250312100926.34954-1-akihiro.suda.cz@hco.ntt.co.jp
---
 arch/x86/kernel/cpu/common.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 7cce91b..c1bab70 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -26,6 +26,7 @@
 #include <linux/pgtable.h>
 #include <linux/stackprotector.h>
 #include <linux/utsname.h>
+#include <linux/acpi.h>
 
 #include <asm/alternative.h>
 #include <asm/cmdline.h>
@@ -510,12 +511,23 @@ static __init int x86_nofsgsbase_setup(char *arg)
 __setup("nofsgsbase", x86_nofsgsbase_setup);
 
 /*
- * Protection Keys are not available in 32-bit mode.
+ * Protection Keys are not available in 32-bit mode and in
+ * certain virtual guest environments.
  */
 static bool pku_disabled;
 
 static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 {
+#ifdef CONFIG_ACPI
+	/*
+	 * OSPKE seems broken on Apple Virtualization:
+	 */
+	if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
+		pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
+		pku_disabled = true;
+	}
+#endif
+
 	if (c == &boot_cpu_data) {
 		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
 			return;

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-11 14:35 [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization Akihiro Suda
  2025-03-11 18:25 ` Aruna Ramakrishna
@ 2025-03-13 17:58 ` Dave Hansen
  2025-03-13 18:01   ` Ingo Molnar
  2025-03-14  6:22   ` Akihiro Suda
  1 sibling, 2 replies; 30+ messages in thread
From: Dave Hansen @ 2025-03-13 17:58 UTC (permalink / raw)
  To: Akihiro Suda, Linux Regressions, Linux x86, aruna.ramakrishna,
	tglx

On 3/11/25 07:35, Akihiro Suda wrote:
> (...)
> [    0.477064] Run /init as init process
> [    0.478585] ------------[ cut here ]------------
> [    0.478747] WARNING: CPU: 0 PID: 1 at
> arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
> [    0.478893] Modules linked in:
> [    0.478999] CPU: 0 UID: 0 PID: 1 Comm: init Not tainted
> 6.11.0-rc1-00007-g70044df250d0 #15
> [    0.479148] RIP: 0010:get_xsave_addr_user+0x28/0x40

The warning here seems to be because the kernel thinks protections keys
is enabled (X86_FEATURE_OSPKE) but also thinks XSAVE management of
protection keys is _dis_abled. That's a valid hardware configuration,
but it's a configuration the kernel never expects to see.

New kernels care about this more because we effectively have new code
that does:

	if (cpu_feature_enabled(X86_FEATURE_OSPKE))
		get_xsave_addr_user(XFEATURE_PKRU, ...)

Is there a chance that you have a _full_ dmesg from one of these
systems? I'm looking for the "x86/fpu: xstate_offset..." lines. It would
also be interesting to see a CPUID dump on a booted system from before
the patch that started causing issues and maybe even on one with one of
the workarounds applied. You can get that with:

	cpuid -1 --raw

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-13 17:58 ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user " Dave Hansen
@ 2025-03-13 18:01   ` Ingo Molnar
  2025-03-14  6:22   ` Akihiro Suda
  1 sibling, 0 replies; 30+ messages in thread
From: Ingo Molnar @ 2025-03-13 18:01 UTC (permalink / raw)
  To: Dave Hansen
  Cc: Akihiro Suda, Linux Regressions, Linux x86, aruna.ramakrishna,
	tglx


* Dave Hansen <dave.hansen@intel.com> wrote:

> On 3/11/25 07:35, Akihiro Suda wrote:
> > (...)
> > [    0.477064] Run /init as init process
> > [    0.478585] ------------[ cut here ]------------
> > [    0.478747] WARNING: CPU: 0 PID: 1 at
> > arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
> > [    0.478893] Modules linked in:
> > [    0.478999] CPU: 0 UID: 0 PID: 1 Comm: init Not tainted
> > 6.11.0-rc1-00007-g70044df250d0 #15
> > [    0.479148] RIP: 0010:get_xsave_addr_user+0x28/0x40
> 
> The warning here seems to be because the kernel thinks protections keys
> is enabled (X86_FEATURE_OSPKE) but also thinks XSAVE management of
> protection keys is _dis_abled. That's a valid hardware configuration,
> but it's a configuration the kernel never expects to see.
> 
> New kernels care about this more because we effectively have new code
> that does:
> 
> 	if (cpu_feature_enabled(X86_FEATURE_OSPKE))
> 		get_xsave_addr_user(XFEATURE_PKRU, ...)
> 
> Is there a chance that you have a _full_ dmesg from one of these
> systems? I'm looking for the "x86/fpu: xstate_offset..." lines. It would
> also be interesting to see a CPUID dump on a booted system from before
> the patch that started causing issues and maybe even on one with one of
> the workarounds applied. You can get that with:
> 
> 	cpuid -1 --raw

I'll hold off on the fresh x86/urgent commit I applied earlier today 
until this bug is better understood.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2] x86: disable PKU when running on Apple Virtualization
  2025-03-13 17:02         ` Ingo Molnar
@ 2025-03-13 23:59           ` Akihiro Suda
  0 siblings, 0 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-13 23:59 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Akihiro Suda, linux-kernel, x86, regressions, aruna.ramakrishna,
	tglx, Akihiro Suda

Thank you Ingo, and sorry for adding #ifdef CONFIG_ACPI

Regards,
Akihiro Suda

2025年3月14日(金) 2:02 Ingo Molnar <mingo@kernel.org>:
>
>
> * Akihiro Suda <suda.gitsendemail@gmail.com> wrote:
>
> > OSPKE seems broken on Apple Virtualization.
> >
> >   WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
> >   (...)
> >   Call Trace:
> >    <TASK>
> >    ? get_xsave_addr_user+0x28/0x40
> >    ? __warn.cold+0x8e/0xea
> >    ? get_xsave_addr_user+0x28/0x40
> >    ? report_bug+0xff/0x140
> >    ? handle_bug+0x3b/0x70
> >    ? exc_invalid_op+0x17/0x70
> >    ? asm_exc_invalid_op+0x1a/0x20
> >    ? get_xsave_addr_user+0x28/0x40
> >    copy_fpstate_to_sigframe+0x1be/0x380
> >    ? __put_user_8+0x11/0x20
> >    get_sigframe+0xf1/0x280
> >    x64_setup_rt_frame+0x67/0x2c0
> >    arch_do_signal_or_restart+0x1b3/0x240
> >    syscall_exit_to_user_mode+0xb0/0x130
> >    do_syscall_64+0xab/0x1a0
> >    entry_SYSCALL_64_after_hwframe+0x77/0x7f
> >
> > Tested on macOS 13.5.1 running on MacBook Pro 2020 with
> > Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.
> >
> > Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
> > Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
> > Link: https://github.com/lima-vm/lima/issues/3334
> > Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
> > ---
> > v2: check oem_table_id rather than oem_id for better robustness
>
> So this is rather weird, but I've applied the quirk as it upgrades
> broken guest side code into a boot time warning.
>
> > +     /*
> > +      * OSPKE seems broken on Apple Virtualization.
> > +      * https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
> > +      *
> > +      * TODO: conditionally enable pku depending on the DMI BIOS version when Apple
> > +      * fixes the issue.
> > +      *
> > +      * However, this would be still not enough because DMI is missing when vmlinuz
> > +      * is directly loaded into VM.
> > +      */
> > +     if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
> > +             pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
> > +             pku_disabled = true;
> > +     }
>
> Note that I updated the comments here (the git log gives enough
> information), plus enclosed this into #ifdef CONFIG_ACPI, as
> acpi_gbl_FADT is not available on !CONFIG_ACPI builds.
>
> Thanks,
>
>         Ingo

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-13 17:58 ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user " Dave Hansen
  2025-03-13 18:01   ` Ingo Molnar
@ 2025-03-14  6:22   ` Akihiro Suda
  2025-03-14  8:48     ` [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing Akihiro Suda
  2025-03-14 15:07     ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization Dave Hansen
  1 sibling, 2 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-14  6:22 UTC (permalink / raw)
  To: Dave Hansen; +Cc: Linux Regressions, Linux x86, aruna.ramakrishna, tglx

[-- Attachment #1: Type: text/plain, Size: 3860 bytes --]

Thank you for taking a look.

> The warning here seems to be because the kernel thinks protections keys
> is enabled (X86_FEATURE_OSPKE) but also thinks XSAVE management of
> protection keys is _dis_abled. That's a valid hardware configuration,
> but it's a configuration the kernel never expects to see.

Right.
The VM seems missing XSAVE feature 0x200: 'Protection Keys User
registers', while it has ospke in cpuinfo.
This configuration seems still weird, as both features seem missing on
the macOS host.
(See `physical-macos-host.txt`)

> dmesg
> cpuid -1 --raw

Attached the logs (until systemd starts up):
- `kernel-6.11.txt` Ubuntu 24.10
- `kernel-6.12-nopku.txt` Ubuntu 25.04 (pre-release), with `nopku` in
the kernel cmdline

dmesg:
```
[    0.000000] Linux version 6.11.0-14-generic (...)
(...)
[    0.013114] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating
point registers'
[    0.013366] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.014365] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.015158] x86/fpu: Supporting XSAVE feature 0x020: 'AVX-512 opmask'
[    0.015365] x86/fpu: Supporting XSAVE feature 0x040: 'AVX-512 Hi256'
[    0.016368] x86/fpu: Supporting XSAVE feature 0x080: 'AVX-512 ZMM_Hi256'
[    0.017325] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.017367] x86/fpu: xstate_offset[5]:  832, xstate_sizes[5]:   64
[    0.018373] x86/fpu: xstate_offset[6]:  896, xstate_sizes[6]:  512
[    0.019373] x86/fpu: xstate_offset[7]: 1408, xstate_sizes[7]: 1024
[    0.020152] x86/fpu: Enabled xstate features 0xe7, context size is
2432 bytes, using 'compacted' format.
(...)
```

cpuid:
```
(...)
   XSAVE features (0xd/0):
      XCR0 valid bit field mask               = 0x00000000000000e7
         x87 state                            = true
         SSE state                            = true
         AVX state                            = true
         MPX BNDREGS                          = false
         MPX BNDCSR                           = false
         AVX-512 opmask                       = true
         AVX-512 ZMM_Hi256                    = true
         AVX-512 Hi16_ZMM                     = true
         PKRU state                           = false
         XTILECFG state                       = false
         XTILEDATA state                      = false
(...)
```

Regards,
Akihiro Suda


2025年3月14日(金) 2:59 Dave Hansen <dave.hansen@intel.com>:
>
> On 3/11/25 07:35, Akihiro Suda wrote:
> > (...)
> > [    0.477064] Run /init as init process
> > [    0.478585] ------------[ cut here ]------------
> > [    0.478747] WARNING: CPU: 0 PID: 1 at
> > arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
> > [    0.478893] Modules linked in:
> > [    0.478999] CPU: 0 UID: 0 PID: 1 Comm: init Not tainted
> > 6.11.0-rc1-00007-g70044df250d0 #15
> > [    0.479148] RIP: 0010:get_xsave_addr_user+0x28/0x40
>
> The warning here seems to be because the kernel thinks protections keys
> is enabled (X86_FEATURE_OSPKE) but also thinks XSAVE management of
> protection keys is _dis_abled. That's a valid hardware configuration,
> but it's a configuration the kernel never expects to see.
>
> New kernels care about this more because we effectively have new code
> that does:
>
>         if (cpu_feature_enabled(X86_FEATURE_OSPKE))
>                 get_xsave_addr_user(XFEATURE_PKRU, ...)
>
> Is there a chance that you have a _full_ dmesg from one of these
> systems? I'm looking for the "x86/fpu: xstate_offset..." lines. It would
> also be interesting to see a CPUID dump on a booted system from before
> the patch that started causing issues and maybe even on one with one of
> the workarounds applied. You can get that with:
>
>         cpuid -1 --raw

[-- Attachment #2: physical-macos-host.txt --]
[-- Type: text/plain, Size: 2785 bytes --]

$ sysctl -a | grep machdep.cpu
machdep.cpu.tsc_ccc.numerator: 120
machdep.cpu.tsc_ccc.denominator: 2
machdep.cpu.mwait.linesize_min: 64
machdep.cpu.mwait.linesize_max: 64
machdep.cpu.mwait.extensions: 3
machdep.cpu.mwait.sub_Cstates: 286396448
machdep.cpu.thermal.sensor: 1
machdep.cpu.thermal.dynamic_acceleration: 1
machdep.cpu.thermal.invariant_APIC_timer: 1
machdep.cpu.thermal.thresholds: 2
machdep.cpu.thermal.ACNT_MCNT: 1
machdep.cpu.thermal.core_power_limits: 1
machdep.cpu.thermal.fine_grain_clock_mod: 1
machdep.cpu.thermal.package_thermal_intr: 1
machdep.cpu.thermal.hardware_feedback: 0
machdep.cpu.thermal.energy_policy: 1
machdep.cpu.xsave.extended_state: 743 2688 2696 0
machdep.cpu.xsave.extended_state1: 15 2432 8448 0
machdep.cpu.arch_perf.version: 5
machdep.cpu.arch_perf.number: 8
machdep.cpu.arch_perf.width: 48
machdep.cpu.arch_perf.events_number: 8
machdep.cpu.arch_perf.events: 0
machdep.cpu.arch_perf.fixed_number: 4
machdep.cpu.arch_perf.fixed_width: 48
machdep.cpu.cache.linesize: 64
machdep.cpu.cache.L2_associativity: 8
machdep.cpu.cache.size: 256
machdep.cpu.address_bits.physical: 39
machdep.cpu.address_bits.virtual: 48
machdep.cpu.max_basic: 27
machdep.cpu.max_ext: 2147483656
machdep.cpu.vendor: GenuineIntel
machdep.cpu.brand_string: Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz
machdep.cpu.family: 6
machdep.cpu.model: 126
machdep.cpu.extmodel: 7
machdep.cpu.extfamily: 0
machdep.cpu.stepping: 5
machdep.cpu.feature_bits: 9221959987971750911
machdep.cpu.leaf7_feature_bits: 4072613871 1077960526
machdep.cpu.leaf7_feature_bits_edx: 3154118160
machdep.cpu.extfeature_bits: 1241984796928
machdep.cpu.signature: 460517
machdep.cpu.brand: 0
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
machdep.cpu.leaf7_features: RDWRFSGS TSC_THREAD_OFFSET SGX BMI1 AVX2 FDPEO SMEP BMI2 ERMS INVPCID FPU_CSDS AVX512F AVX512DQ RDSEED ADX SMAP AVX512IFMA CLFSOPT IPT AVX512CD SHA AVX512BW AVX512VL AVX512VBMI UMIP PKU GFNI VAES VPCLMULQDQ AVX512VNNI AVX512BITALG AVX512VPOPCNTDQ RDPID SGXLC FSREPMOV MDCLEAR IBRS STIBP L1DF ACAPMSR SSBD
machdep.cpu.extfeatures: SYSCALL XD 1GBPAGE EM64T LAHF LZCNT PREFETCHW RDTSCP TSCI
machdep.cpu.logical_per_package: 16
machdep.cpu.cores_per_package: 8
machdep.cpu.microcode_version: 198
machdep.cpu.processor_flag: 7
machdep.cpu.core_count: 4
machdep.cpu.thread_count: 8

$ cat check_xcr0.c
#include <stdio.h>
#include <immintrin.h>

int main(void) {
  printf("XCR0 = 0x%llx\n", _xgetbv(0));
  return 0;
}

$ cc -march=native -o check_xcr0 check_xcr0.c

$ ./check_xcr0 
XCR0 = 0x7

[-- Attachment #3: kernel-6.12-nopku.txt --]
[-- Type: text/plain, Size: 74132 bytes --]

Ubuntu 25.04 (pre-release), with "nopku" injected into the cmdline
---
images:
- location: "https://cloud-images.ubuntu.com/plucky/20250310/plucky-server-cloudimg-amd64.img"
  arch: "x86_64"
  kernel:
    location: https://cloud-images.ubuntu.com/plucky/20250310/unpacked/plucky-server-cloudimg-amd64-vmlinuz-generic
    cmdline: root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyAMA0 nopku
  initrd:
    location: https://cloud-images.ubuntu.com/plucky/20250310/unpacked/plucky-server-cloudimg-amd64-initrd-generic
---
# dmesg
[    0.000000] Linux version 6.12.0-16-generic (buildd@lcy02-amd64-064) (x86_64-linux-gnu-gcc-14 (Ubuntu 14.2.0-17ubuntu1) 14.2.0, GNU ld (GNU Binutils for Ubuntu) 2.44) #16-Ubuntu SMP PREEMPT_DYNAMIC Fri Feb 14 15:11:11 UTC 2025 (Ubuntu 6.12.0-16.16-generic 6.12.11)
[    0.000000] Command line: root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyAMA0 nopku
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Hygon HygonGenuine
[    0.000000]   Centaur CentaurHauls
[    0.000000]   zhaoxin   Shanghai  
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009efff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bfffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000013fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] APIC: Static calls initialized
[    0.000000] DMI not present or invalid.
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] last_pfn = 0x140000 max_arch_pfn = 0x400000000
[    0.000000] MTRRs disabled by BIOS
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT  
[    0.000000] last_pfn = 0xc0000 max_arch_pfn = 0x400000000
[    0.000000] RAMDISK: [mem 0x050a5000-0x071b9fff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000000E0000 000024 (v02 APPLE )
[    0.000000] ACPI: XSDT 0x00000000000E005C 00004C (v01 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: FACP 0x00000000000E00A8 000114 (v06 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: DSDT 0x00000000000E01BC 0001CC (v02 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: FACS 0x00000000000E0388 000040
[    0.000000] ACPI: APIC 0x00000000000E03C8 000062 (v05 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: HPET 0x00000000000E042A 000038 (v01 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: MCFG 0x00000000000E0462 00003C (v01 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: Reserving FACP table memory at [mem 0xe00a8-0xe01bb]
[    0.000000] ACPI: Reserving DSDT table memory at [mem 0xe01bc-0xe0387]
[    0.000000] ACPI: Reserving FACS table memory at [mem 0xe0388-0xe03c7]
[    0.000000] ACPI: Reserving APIC table memory at [mem 0xe03c8-0xe0429]
[    0.000000] ACPI: Reserving HPET table memory at [mem 0xe042a-0xe0461]
[    0.000000] ACPI: Reserving MCFG table memory at [mem 0xe0462-0xe049d]
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000013fffffff]
[    0.000000] NODE_DATA(0) allocated [mem 0x13ffd3680-0x13fffdfff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000013fffffff]
[    0.000000]   Device   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009efff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x00000000bfffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000013fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000013fffffff]
[    0.000000] On node 0, zone DMA: 1 pages in unavailable ranges
[    0.000000] On node 0, zone DMA: 97 pages in unavailable ranges
[    0.000000] tboot: non-0 tboot_addr but it is not of type E820_TYPE_RESERVED
[    0.000000] ACPI: PM-Timer IO Port: 0x608
[    0.000000] IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x80864301 base: 0xfed00000
[    0.000000] CPU topo: Max. logical packages:   1
[    0.000000] CPU topo: Max. logical dies:       1
[    0.000000] CPU topo: Max. dies per package:   1
[    0.000000] CPU topo: Max. threads per core:   1
[    0.000000] CPU topo: Num. cores per package:     4
[    0.000000] CPU topo: Num. threads per package:   4
[    0.000000] CPU topo: Allowing 4 present CPUs plus 0 hotplug CPUs
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x000fffff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0xc0000000-0xffffffff]
[    0.000000] [mem 0xc0000000-0xffffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[    0.000000] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1
[    0.000000] percpu: Embedded 88 pages/cpu s237568 r8192 d114688 u524288
[    0.000000] pcpu-alloc: s237568 r8192 d114688 u524288 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 
[    0.000000] Kernel command line: root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyAMA0 nopku
[    0.000000] x86: 'nopku' specified, disabling Memory Protection Keys
[    0.000000] random: crng init done
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Fallback order for Node 0: 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1048478
[    0.000000] Policy zone: Normal
[    0.000000] mem auto-init: stack:all(zero), heap alloc:on, heap free:off
[    0.000000] software IO TLB: area num 4.
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Kernel/User page tables isolation: enabled
[    0.000000] ftrace: allocating 59938 entries in 235 pages
[    0.000000] ftrace: allocated 235 pages with 6 groups
[    0.000000] Dynamic Preempt: voluntary
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=4.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] 	Rude variant of Tasks RCU enabled.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.000000] RCU Tasks Rude: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1 rcu_task_cpu_ids=4.
[    0.000000] NR_IRQS: 524544, nr_irqs: 456, preallocated irqs: 16
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] Console: colour dummy device 80x25
[    0.000000] printk: legacy console [tty1] enabled
[    0.000000] ACPI: Core revision 20240827
[    0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484873504 ns
[    0.000000] APIC: Switch to symmetric I/O mode setup
[    0.000000] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.006000] tsc: PIT calibration matches HPET. 1 loops
[    0.006000] tsc: Detected 2303.898 MHz processor
[    0.000002] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x21359763e4a, max_idle_ns: 440795202126 ns
[    0.000009] Calibrating delay loop (skipped), value calculated using timer frequency.. 4607.79 BogoMIPS (lpj=2303898)
[    0.000531] x86/cpu: User Mode Instruction Prevention (UMIP) activated
[    0.000867] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[    0.000871] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
[    0.000877] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[    0.000881] Spectre V2 : Mitigation: Retpolines
[    0.000883] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[    0.000885] Spectre V2 : Spectre v2 / SpectreRSB : Filling RSB on VMEXIT
[    0.000887] RETBleed: WARNING: Spectre v2 mitigation leaves CPU vulnerable to RETBleed attacks, data leaks possible!
[    0.000889] RETBleed: Vulnerable
[    0.000891] Speculative Store Bypass: Vulnerable
[    0.000897] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[    0.000899] MMIO Stale Data: Vulnerable: Clear CPU buffers attempted, no microcode
[    0.000901] SRBDS: Unknown: Dependent on hypervisor status
[    0.000903] GDS: Unknown: Dependent on hypervisor status
[    0.000980] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.000984] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.000986] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.000988] x86/fpu: Supporting XSAVE feature 0x020: 'AVX-512 opmask'
[    0.000990] x86/fpu: Supporting XSAVE feature 0x040: 'AVX-512 Hi256'
[    0.000992] x86/fpu: Supporting XSAVE feature 0x080: 'AVX-512 ZMM_Hi256'
[    0.000994] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.000997] x86/fpu: xstate_offset[5]:  832, xstate_sizes[5]:   64
[    0.000999] x86/fpu: xstate_offset[6]:  896, xstate_sizes[6]:  512
[    0.001001] x86/fpu: xstate_offset[7]: 1408, xstate_sizes[7]: 1024
[    0.001003] x86/fpu: Enabled xstate features 0xe7, context size is 2432 bytes, using 'compacted' format.
[    0.018428] Freeing SMP alternatives memory: 48K
[    0.018439] pid_max: default: 32768 minimum: 301
[    0.018513] LSM: initializing lsm=lockdown,capability,landlock,yama,apparmor,ima,evm
[    0.018550] landlock: Up and running.
[    0.018553] Yama: becoming mindful.
[    0.018734] AppArmor: AppArmor initialized
[    0.018878] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.018970] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.100373] smpboot: CPU0: Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz (family: 0x6, model: 0x7e, stepping: 0x5)
[    0.101222] Performance Events: unsupported p6 CPU model 126 no PMU driver, software events only.
[    0.101251] signal: max sigframe size: 3632
[    0.101359] rcu: Hierarchical SRCU implementation.
[    0.101362] rcu: 	Max phase no-delay instances is 400.
[    0.101567] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.102007] NMI watchdog: Perf NMI watchdog permanently disabled
[    0.102035] smp: Bringing up secondary CPUs ...
[    0.102558] smpboot: x86: Booting SMP configuration:
[    0.102561] .... node  #0, CPUs:      #1 #2 #3
[    0.114262] smp: Brought up 1 node, 4 CPUs
[    0.114299] smpboot: Total of 4 processors activated (18431.18 BogoMIPS)
[    0.114604] Memory: 3958816K/4193912K available (22528K kernel code, 4552K rwdata, 15360K rodata, 5044K init, 4540K bss, 227420K reserved, 0K cma-reserved)
[    0.115219] devtmpfs: initialized
[    0.115219] x86/mm: Memory block size: 128MB
[    0.116259] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.116289] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.116372] pinctrl core: initialized pinctrl subsystem
[    0.116741] PM: RTC time: 05:20:57, date: 2025-03-14
[    0.120959] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.121688] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.122252] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.122321] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.122349] audit: initializing netlink subsys (disabled)
[    0.122395] audit: type=2000 audit(1741929657.128:1): state=initialized audit_enabled=0 res=1
[    0.123219] thermal_sys: Registered thermal governor 'fair_share'
[    0.123221] thermal_sys: Registered thermal governor 'bang_bang'
[    0.123225] thermal_sys: Registered thermal governor 'step_wise'
[    0.123226] thermal_sys: Registered thermal governor 'user_space'
[    0.123228] thermal_sys: Registered thermal governor 'power_allocator'
[    0.123235] EISA bus registered
[    0.123346] cpuidle: using governor ladder
[    0.123346] cpuidle: using governor menu
[    0.123346] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.123346] PCI: ECAM [mem 0xe0000000-0xefffffff] (base 0xe0000000) for domain 0000 [bus 00-ff]
[    0.124721] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    0.126137] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.126141] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    0.127291] fbcon: Taking over console
[    0.127342] ACPI: Added _OSI(Module Device)
[    0.127345] ACPI: Added _OSI(Processor Device)
[    0.127347] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.127348] ACPI: Added _OSI(Processor Aggregator Device)
[    0.127428] ACPI: 1 ACPI AML tables successfully acquired and loaded
[    0.128162] ACPI: Interpreter enabled
[    0.128162] ACPI: PM: (supports S0 S5)
[    0.128162] ACPI: Using IOAPIC for interrupt routing
[    0.128162] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.128162] PCI: Using E820 reservations for host bridge windows
[    0.129097] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.129104] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]
[    0.129111] acpi PNP0A08:00: _OSC: OS requested [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR DPC]
[    0.129114] acpi PNP0A08:00: _OSC: platform willing to grant [PCIeHotplug SHPCHotplug PME AER PCIeCapability LTR DPC]
[    0.129116] acpi PNP0A08:00: _OSC: platform retains control of PCIe features (AE_NOT_FOUND)
[    0.129243] PCI host bridge to bus 0000:00
[    0.129254] pci_bus 0000:00: root bus resource [mem 0xc0000000-0xdfffffff window]
[    0.129258] pci_bus 0000:00: root bus resource [mem 0x140000000-0x93fffffff window]
[    0.129260] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.129366] pci 0000:00:00.0: [106b:1a05] type 00 class 0x060000 conventional PCI endpoint
[    0.130007] pci 0000:00:01.0: [1af4:1041] type 00 class 0x020000 conventional PCI endpoint
[    0.130007] pci 0000:00:01.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.130007] pci 0000:00:01.0: BAR 2 [mem 0x00000000-0x0000003f]
[    0.134209] pci 0000:00:05.0: [1af4:1043] type 00 class 0x078000 conventional PCI endpoint
[    0.134300] pci 0000:00:05.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.134380] pci 0000:00:05.0: BAR 2 [mem 0x00000000-0x0000007f]
[    0.135007] pci 0000:00:06.0: [1af4:1042] type 00 class 0x018000 conventional PCI endpoint
[    0.135007] pci 0000:00:06.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.135068] pci 0000:00:06.0: BAR 2 [mem 0x00000000-0x0000003f]
[    0.135855] pci 0000:00:07.0: [1af4:1042] type 00 class 0x018000 conventional PCI endpoint
[    0.135963] pci 0000:00:07.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.136007] pci 0000:00:07.0: BAR 2 [mem 0x00000000-0x0000003f]
[    0.136558] pci 0000:00:08.0: [1af4:105a] type 00 class 0x018000 conventional PCI endpoint
[    0.136645] pci 0000:00:08.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.136781] pci 0000:00:08.0: BAR 2 [mem 0x00000000-0x0000003f]
[    0.137359] pci 0000:00:09.0: [1af4:1053] type 00 class 0x078000 conventional PCI endpoint
[    0.137471] pci 0000:00:09.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.137618] pci 0000:00:09.0: BAR 2 [mem 0x00000000-0x0000007f]
[    0.138634] pci 0000:00:0a.0: [1af4:1059] type 00 class 0x040100 conventional PCI endpoint
[    0.138724] pci 0000:00:0a.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.138811] pci 0000:00:0a.0: BAR 2 [mem 0x00000000-0x0000007f]
[    0.139409] pci 0000:00:0b.0: [1af4:1059] type 00 class 0x040100 conventional PCI endpoint
[    0.139497] pci 0000:00:0b.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.139577] pci 0000:00:0b.0: BAR 2 [mem 0x00000000-0x0000007f]
[    0.140127] pci 0000:00:0c.0: [1af4:1044] type 00 class 0x100000 conventional PCI endpoint
[    0.140215] pci 0000:00:0c.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.140294] pci 0000:00:0c.0: BAR 2 [mem 0x00000000-0x0000003f]
[    0.141007] pci 0000:00:0d.0: [1af4:1045] type 00 class 0x058000 conventional PCI endpoint
[    0.141007] pci 0000:00:0d.0: BAR 0 [mem 0x00000000-0x00003fff]
[    0.141007] pci 0000:00:0d.0: BAR 2 [mem 0x00000000-0x0000003f]
[    0.141630] pci 0000:00:0e.0: [106b:1a06] type 00 class 0x0c0330 conventional PCI endpoint
[    0.141718] pci 0000:00:0e.0: BAR 0 [mem 0x00000000-0x00000fff]
[    0.141772] pci 0000:00:0e.0: BAR 1 [mem 0x00000000-0x000003ff]
[    0.159416] pci 0000:00:1f.0: [8086:2916] type 00 class 0x060100 conventional PCI endpoint
[    0.159864] pci 0000:00:1f.0: bridge window [io  0x0600-0x067f]: can't claim; no compatible bridge window
[    0.160045] iommu: Default domain type: Translated
[    0.160050] iommu: DMA domain TLB invalidation policy: lazy mode
[    0.160343] SCSI subsystem initialized
[    0.160377] libata version 3.00 loaded.
[    0.160377] ACPI: bus type USB registered
[    0.160377] usbcore: registered new interface driver usbfs
[    0.160377] usbcore: registered new interface driver hub
[    0.160377] usbcore: registered new device driver usb
[    0.160377] pps_core: LinuxPPS API ver. 1 registered
[    0.160377] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.160377] PTP clock support registered
[    0.161176] EDAC MC: Ver: 3.0.0
[    0.162398] NetLabel: Initializing
[    0.162401] NetLabel:  domain hash size = 128
[    0.162403] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.162416] NetLabel:  unlabeled traffic allowed by default
[    0.162469] mctp: management component transport protocol core
[    0.162469] NET: Registered PF_MCTP protocol family
[    0.162469] PCI: Using ACPI for IRQ routing
[    0.490053] PCI: pci_cache_line_size set to 64 bytes
[    0.490267] e820: reserve RAM buffer [mem 0x0009f000-0x0009ffff]
[    0.490337] vgaarb: loaded
[    0.490337] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
[    0.490337] hpet0: 4 comparators, 32-bit 14.318180 MHz counter
[    0.492149] clocksource: Switched to clocksource tsc-early
[    0.492802] VFS: Disk quotas dquot_6.6.0
[    0.492802] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.492993] AppArmor: AppArmor Filesystem Enabled
[    0.493022] pnp: PnP ACPI init
[    0.493085] system 00:00: [mem 0xe0000000-0xefffffff] has been reserved
[    0.493116] pnp: PnP ACPI: found 2 devices
[    0.509650] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    0.509756] NET: Registered PF_INET protocol family
[    0.510682] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.530432] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.530457] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.530475] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.530536] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
[    0.530591] TCP: Hash tables configured (established 32768 bind 32768)
[    0.530645] MPTCP token hash table entries: 4096 (order: 4, 98304 bytes, linear)
[    0.530662] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.530671] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.530673] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.530673] NET: Registered PF_XDP protocol family
[    0.530673] pci 0000:00:1f.0: BAR 13: [io  size 0x0080] has bogus alignment
[    0.530673] pci 0000:00:01.0: BAR 0 [mem 0xc0000000-0xc0003fff]: assigned
[    0.530673] pci 0000:00:05.0: BAR 0 [mem 0xc0004000-0xc0007fff]: assigned
[    0.530673] pci 0000:00:06.0: BAR 0 [mem 0xc0008000-0xc000bfff]: assigned
[    0.530673] pci 0000:00:07.0: BAR 0 [mem 0xc000c000-0xc000ffff]: assigned
[    0.530673] pci 0000:00:08.0: BAR 0 [mem 0xc0010000-0xc0013fff]: assigned
[    0.530948] pci 0000:00:09.0: BAR 0 [mem 0xc0014000-0xc0017fff]: assigned
[    0.530972] pci 0000:00:0a.0: BAR 0 [mem 0xc0018000-0xc001bfff]: assigned
[    0.530997] pci 0000:00:0b.0: BAR 0 [mem 0xc001c000-0xc001ffff]: assigned
[    0.531017] pci 0000:00:0c.0: BAR 0 [mem 0xc0020000-0xc0023fff]: assigned
[    0.531036] pci 0000:00:0d.0: BAR 0 [mem 0xc0024000-0xc0027fff]: assigned
[    0.531056] pci 0000:00:0e.0: BAR 0 [mem 0xc0028000-0xc0028fff]: assigned
[    0.531098] pci 0000:00:0e.0: BAR 1 [mem 0xc0029000-0xc00293ff]: assigned
[    0.531117] pci 0000:00:05.0: BAR 2 [mem 0xc0029400-0xc002947f]: assigned
[    0.531136] pci 0000:00:09.0: BAR 2 [mem 0xc0029480-0xc00294ff]: assigned
[    0.531156] pci 0000:00:0a.0: BAR 2 [mem 0xc0029500-0xc002957f]: assigned
[    0.531175] pci 0000:00:0b.0: BAR 2 [mem 0xc0029580-0xc00295ff]: assigned
[    0.531201] pci 0000:00:01.0: BAR 2 [mem 0xc0029600-0xc002963f]: assigned
[    0.531220] pci 0000:00:06.0: BAR 2 [mem 0xc0029640-0xc002967f]: assigned
[    0.531240] pci 0000:00:07.0: BAR 2 [mem 0xc0029680-0xc00296bf]: assigned
[    0.531259] pci 0000:00:08.0: BAR 2 [mem 0xc00296c0-0xc00296ff]: assigned
[    0.531278] pci 0000:00:0c.0: BAR 2 [mem 0xc0029700-0xc002973f]: assigned
[    0.531298] pci 0000:00:0d.0: BAR 2 [mem 0xc0029740-0xc002977f]: assigned
[    0.531319] pci_bus 0000:00: resource 4 [mem 0xc0000000-0xdfffffff window]
[    0.531323] pci_bus 0000:00: resource 5 [mem 0x140000000-0x93fffffff window]
[    0.531509] pci 0000:00:0e.0: enabling device (0000 -> 0002)
[    0.531554] pci 0000:00:0e.0: can't derive routing for PCI INT A
[    0.531557] pci 0000:00:0e.0: PCI INT A: no GSI
[    0.531788] PCI: CLS 0 bytes, default 64
[    0.531860] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.531864] software IO TLB: mapped [mem 0x00000000bc000000-0x00000000c0000000] (64MB)
[    0.532160] Trying to unpack rootfs image as initramfs...
[    0.553679] Initialise system trusted keyrings
[    0.553694] Key type blacklist registered
[    0.554016] workingset: timestamp_bits=36 max_order=20 bucket_order=0
[    0.554043] zbud: loaded
[    0.554402] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.554868] fuse: init (API version 7.41)
[    0.555665] integrity: Platform Keyring initialized
[    0.555672] integrity: Machine keyring initialized
[    0.563974] Key type asymmetric registered
[    0.563979] Asymmetric key parser 'x509' registered
[    0.564014] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.564261] io scheduler mq-deadline registered
[    0.566826] ledtrig-cpu: registered to indicate activity on CPUs
[    0.566889] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[    0.567022] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[    0.567095] ACPI: button: Power Button [PWRF]
[    0.568812] virtio-pci 0000:00:01.0: enabling device (0000 -> 0002)
[    0.568840] virtio-pci 0000:00:01.0: can't derive routing for PCI INT A
[    0.568844] virtio-pci 0000:00:01.0: PCI INT A: no GSI
[    0.571000] virtio-pci 0000:00:05.0: enabling device (0000 -> 0002)
[    0.571022] virtio-pci 0000:00:05.0: can't derive routing for PCI INT A
[    0.571026] virtio-pci 0000:00:05.0: PCI INT A: no GSI
[    0.573599] virtio-pci 0000:00:06.0: enabling device (0000 -> 0002)
[    0.573619] virtio-pci 0000:00:06.0: can't derive routing for PCI INT A
[    0.573623] virtio-pci 0000:00:06.0: PCI INT A: no GSI
[    0.576194] virtio-pci 0000:00:07.0: enabling device (0000 -> 0002)
[    0.576214] virtio-pci 0000:00:07.0: can't derive routing for PCI INT A
[    0.576217] virtio-pci 0000:00:07.0: PCI INT A: no GSI
[    0.578492] virtio-pci 0000:00:08.0: enabling device (0000 -> 0002)
[    0.578512] virtio-pci 0000:00:08.0: can't derive routing for PCI INT A
[    0.578515] virtio-pci 0000:00:08.0: PCI INT A: no GSI
[    0.580950] virtio-pci 0000:00:09.0: enabling device (0000 -> 0002)
[    0.580977] virtio-pci 0000:00:09.0: can't derive routing for PCI INT A
[    0.580980] virtio-pci 0000:00:09.0: PCI INT A: no GSI
[    0.583442] virtio-pci 0000:00:0a.0: enabling device (0000 -> 0002)
[    0.583463] virtio-pci 0000:00:0a.0: can't derive routing for PCI INT A
[    0.583467] virtio-pci 0000:00:0a.0: PCI INT A: no GSI
[    0.586039] virtio-pci 0000:00:0b.0: enabling device (0000 -> 0002)
[    0.586060] virtio-pci 0000:00:0b.0: can't derive routing for PCI INT A
[    0.586063] virtio-pci 0000:00:0b.0: PCI INT A: no GSI
[    0.588700] virtio-pci 0000:00:0c.0: enabling device (0000 -> 0002)
[    0.588720] virtio-pci 0000:00:0c.0: can't derive routing for PCI INT A
[    0.588724] virtio-pci 0000:00:0c.0: PCI INT A: no GSI
[    0.591210] virtio-pci 0000:00:0d.0: enabling device (0000 -> 0002)
[    0.591230] virtio-pci 0000:00:0d.0: can't derive routing for PCI INT A
[    0.591234] virtio-pci 0000:00:0d.0: PCI INT A: no GSI
[    0.595944] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    0.607355] Linux agpgart interface v0.103
[    0.612049] loop: module loaded
[    0.612271] virtio_blk virtio2: 1/0/0 default/read/poll queues
[    0.613666] virtio_blk virtio2: [vda] 209715200 512-byte logical blocks (107 GB/100 GiB)
[    0.616212]  vda: vda1 vda13 vda14 vda15
[    0.617052] virtio_blk virtio3: 1/0/0 default/read/poll queues
[    0.618190] virtio_blk virtio3: [vdb] 545344 512-byte logical blocks (279 MB/266 MiB)
[    0.619739] ACPI: bus type drm_connector registered
[    0.619892] tun: Universal TUN/TAP device driver, 1.6
[    0.622234] PPP generic driver version 2.4.2
[    0.622515] xhci_hcd 0000:00:0e.0: can't derive routing for PCI INT A
[    0.622519] xhci_hcd 0000:00:0e.0: PCI INT A: no GSI
[    0.622586] xhci_hcd 0000:00:0e.0: xHCI Host Controller
[    0.622593] xhci_hcd 0000:00:0e.0: new USB bus registered, assigned bus number 1
[    0.623025] xhci_hcd 0000:00:0e.0: hcc params 0x02600001 hci version 0x110 quirks 0x0000000000000010
[    0.624242] xhci_hcd 0000:00:0e.0: xHCI Host Controller
[    0.624247] xhci_hcd 0000:00:0e.0: new USB bus registered, assigned bus number 2
[    0.624251] xhci_hcd 0000:00:0e.0: Host supports USB 3.1 Enhanced SuperSpeed
[    0.624335] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.12
[    0.624339] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.624342] usb usb1: Product: xHCI Host Controller
[    0.624344] usb usb1: Manufacturer: Linux 6.12.0-16-generic xhci-hcd
[    0.624346] usb usb1: SerialNumber: 0000:00:0e.0
[    0.624589] hub 1-0:1.0: USB hub found
[    0.624696] hub 1-0:1.0: 8 ports detected
[    0.625196] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    0.625214] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.12
[    0.625217] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.625219] usb usb2: Product: xHCI Host Controller
[    0.625221] usb usb2: Manufacturer: Linux 6.12.0-16-generic xhci-hcd
[    0.625222] usb usb2: SerialNumber: 0000:00:0e.0
[    0.625433] hub 2-0:1.0: USB hub found
[    0.625502] hub 2-0:1.0: 8 ports detected
[    0.626195] i8042: PNP: No PS/2 controller found.
[    0.626460] mousedev: PS/2 mouse device common for all mice
[    0.626689] rtc_cmos 00:01: RTC can wake from S4
[    0.627686] rtc_cmos 00:01: registered as rtc0
[    0.627825] rtc_cmos 00:01: setting system clock to 2025-03-14T05:20:58 UTC (1741929658)
[    0.627902] rtc_cmos 00:01: alarms up to one day, y3k, 114 bytes nvram, hpet irqs
[    0.627912] i2c_dev: i2c /dev entries driver
[    0.627937] device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.
[    0.627960] device-mapper: uevent: version 1.0.3
[    0.628102] device-mapper: ioctl: 4.48.0-ioctl (2023-03-01) initialised: dm-devel@lists.linux.dev
[    0.628133] platform eisa.0: Probing EISA bus 0
[    0.628332] platform eisa.0: EISA: Detected 0 cards
[    0.628337] intel_pstate: CPU model not supported
[    0.628406] drop_monitor: Initializing network drop monitor service
[    0.628540] NET: Registered PF_INET6 protocol family
[    0.791627] Freeing initrd memory: 33876K
[    0.803260] Segment Routing with IPv6
[    0.803281] In-situ OAM (IOAM) with IPv6
[    0.803338] NET: Registered PF_PACKET protocol family
[    0.803672] Key type dns_resolver registered
[    0.804842] IPI shorthand broadcast: enabled
[    0.806957] sched_clock: Marking stable (812152820, -5992084)->(933749948, -127589212)
[    0.807587] registered taskstats version 1
[    0.808919] Loading compiled-in X.509 certificates
[    0.809779] Loaded X.509 cert 'Build time autogenerated kernel key: 9d1a7c7ef258b10187d72d1f2b0105f3bd19cdfa'
[    0.810277] Loaded X.509 cert 'Canonical Ltd. Live Patch Signing: 14df34d1a87cf37625abec039ef2bf521249b969'
[    0.810707] Loaded X.509 cert 'Canonical Ltd. Kernel Module Signing: 88f752e560a1e0737e31163a466ad7b70a850c19'
[    0.810711] blacklist: Loading compiled-in revocation X.509 certificates
[    0.810727] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing: 61482aa2830d0ab2ad5af10b7250da9033ddcef0'
[    0.810740] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2017): 242ade75ac4a15e50d50c84b0d45ff3eae707a03'
[    0.810752] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (ESM 2018): 365188c1d374d6b07c3c8f240f8ef722433d6a8b'
[    0.810764] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2019): c0746fd6c5da3ae827864651ad66ae47fe24b3e8'
[    0.810775] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v1): a8d54bbb3825cfb94fa13c9f8a594a195c107b8d'
[    0.810833] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v2): 4cf046892d6fd3c9a5b03f98d845f90851dc6a8c'
[    0.810848] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v3): 100437bb6de6e469b581e61cd66bce3ef4ed53af'
[    0.810860] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (Ubuntu Core 2019): c1d57b8f6b743f23ee41f4f7ee292f06eecadfb9'
[    0.817128] Demotion targets for Node 0: null
[    0.817607] Key type .fscrypt registered
[    0.817611] Key type fscrypt-provisioning registered
[    0.828578] cryptd: max_cpu_qlen set to 1000
[    0.835051] AES CTR mode by8 optimization enabled
[    0.855669] Key type encrypted registered
[    0.855679] AppArmor: AppArmor sha256 policy hashing enabled
[    0.855689] ima: No TPM chip found, activating TPM-bypass!
[    0.855693] Loading compiled-in module X.509 certificates
[    0.856145] Loaded X.509 cert 'Build time autogenerated kernel key: 9d1a7c7ef258b10187d72d1f2b0105f3bd19cdfa'
[    0.856150] ima: Allocated hash algorithm: sha256
[    0.856159] ima: No architecture policies found
[    0.856199] evm: Initialising EVM extended attributes:
[    0.856202] evm: security.selinux
[    0.856204] evm: security.SMACK64
[    0.856205] evm: security.SMACK64EXEC
[    0.856206] evm: security.SMACK64TRANSMUTE
[    0.856208] evm: security.SMACK64MMAP
[    0.856209] evm: security.apparmor
[    0.856210] evm: security.ima
[    0.856211] evm: security.capability
[    0.856213] evm: HMAC attrs: 0x1
[    0.856807] PM:   Magic number: 1:831:314
[    0.857344] BIOS EDD facility v0.16 2004-Jun-25, 16 devices found
[    0.860724] RAS: Correctable Errors collector initialized.
[    0.871744] clk: Disabling unused clocks
[    0.871784] PM: genpd: Disabling unused power domains
[    0.877872] Freeing unused decrypted memory: 2028K
[    0.878558] Freeing unused kernel image (initmem) memory: 5044K
[    0.878735] Write protecting the kernel read-only data: 38912k
[    0.879506] Freeing unused kernel image (rodata/data gap) memory: 1024K
[    0.924059] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    0.924069] x86/mm: Checking user space page tables
[    0.924083] usb 1-1: new full-speed USB device number 2 using xhci_hcd
[    0.966667] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    0.966799] Run /init as init process
[    0.966810]   with arguments:
[    0.966811]     /init
[    0.966812]   with environment:
[    0.966813]     HOME=/
[    0.966813]     TERM=linux
[    1.081387] virtio_net virtio0 enp0s1: renamed from eth0
[    1.119881] usb 1-1: New USB device found, idVendor=05ac, idProduct=8105, bcdDevice= 0.00
[    1.119890] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[    1.119893] usb 1-1: Product: Virtual USB Keyboard
[    1.119895] usb 1-1: Manufacturer: Apple Inc.
[    1.244685] usb 1-2: new full-speed USB device number 3 using xhci_hcd
[    1.378224] usb 1-2: New USB device found, idVendor=05ac, idProduct=8106, bcdDevice= 0.00
[    1.378246] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[    1.378254] usb 1-2: Product: Virtual USB Digitizer
[    1.378260] usb 1-2: Manufacturer: Apple Inc.
[    1.400011] hid: raw HID events driver (C) Jiri Kosina
[    1.407081] usbcore: registered new interface driver usbhid
[    1.407089] usbhid: USB HID core driver
[    1.410894] input: Apple Inc. Virtual USB Keyboard as /devices/pci0000:00/0000:00:0e.0/usb1/1-1/1-1:1.0/0003:05AC:8105.0001/input/input1
[    1.464475] hid-generic 0003:05AC:8105.0001: input,hidraw0: USB HID v1.10 Keyboard [Apple Inc. Virtual USB Keyboard] on usb-0000:00:0e.0-1/input0
[    1.466114] input: Apple Inc. Virtual USB Digitizer as /devices/pci0000:00/0000:00:0e.0/usb1/1-2/1-2:1.0/0003:05AC:8106.0002/input/input2
[    1.469267] hid-generic 0003:05AC:8106.0002: input,hidraw1: USB HID v1.10 Mouse [Apple Inc. Virtual USB Digitizer] on usb-0000:00:0e.0-2/input0
[    2.596312] raid6: avx512x4 gen() 48035 MB/s
[    2.613248] raid6: avx512x2 gen() 56582 MB/s
[    2.630299] raid6: avx512x1 gen() 49352 MB/s
[    2.647127] raid6: avx2x4   gen() 30117 MB/s
[    2.664142] raid6: avx2x2   gen() 28217 MB/s
[    2.681298] raid6: avx2x1   gen() 28677 MB/s
[    2.681313] raid6: using algorithm avx512x2 gen() 56582 MB/s
[    2.698228] raid6: .... xor() 32590 MB/s, rmw enabled
[    2.698238] raid6: using avx512x2 recovery algorithm
[    2.700305] xor: automatically using best checksumming function   avx       
[    2.701524] async_tx: api initialized (async)
[    2.897344] Btrfs loaded, zoned=yes, fsverity=yes
[    2.955967] EXT4-fs (vda1): orphan cleanup on readonly fs
[    2.956124] EXT4-fs (vda1): mounted filesystem 114fb70d-eb56-451a-adc7-e8590c37e5d1 ro with ordered data mode. Quota mode: none.
[    3.078202] systemd[1]: Inserted module 'autofs4'
[    3.087174] NET: Registered PF_VSOCK protocol family
[    3.098168] virtiofs virtio4: virtio_fs_setup_dax: No cache capability
[    3.154200] systemd[1]: systemd 257.3-1ubuntu3 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +IPE +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK +BTF -XKBCOMMON -UTMP +SYSVINIT +LIBARCHIVE)
[    3.154215] systemd[1]: Detected virtualization apple.
(...)

# cpuid -1
CPU:
   vendor_id = "GenuineIntel"
   version information (1/eax):
      processor type  = primary processor (0)
      family          = 0x6 (6)
      model           = 0xe (14)
      stepping id     = 0x5 (5)
      extended family = 0x0 (0)
      extended model  = 0x7 (7)
      (family synth)  = 0x6 (6)
      (model synth)   = 0x7e (126)
   miscellaneous (1/ebx):
      process local APIC physical ID = 0x2 (2)
      maximum IDs for CPUs in pkg    = 0x4 (4)
      CLFLUSH line size              = 0x8 (8)
      brand index                    = 0x0 (0)
   brand id = 0x00 (0): unknown
   feature information (1/edx):
      x87 FPU on chip                        = true
      VME: virtual-8086 mode enhancement     = true
      DE: debugging extensions               = true
      PSE: page size extensions              = true
      TSC: time stamp counter                = true
      RDMSR and WRMSR support                = true
      PAE: physical address extensions       = true
      MCE: machine check exception           = true
      CMPXCHG8B inst.                        = true
      APIC on chip                           = true
      SYSENTER and SYSEXIT                   = true
      MTRR: memory type range registers      = true
      PTE global bit                         = true
      MCA: machine check architecture        = true
      CMOV: conditional move/compare instr   = true
      PAT: page attribute table              = true
      PSE-36: page size extension            = true
      PSN: processor serial number           = false
      CLFLUSH instruction                    = true
      DS: debug store                        = false
      ACPI: thermal monitor and clock ctrl   = false
      MMX Technology                         = true
      FXSAVE/FXRSTOR                         = true
      SSE extensions                         = true
      SSE2 extensions                        = true
      SS: self snoop                         = false
      hyper-threading / multi-core supported = true
      TM: therm. monitor                     = false
      IA64                                   = false
      PBE: pending break event               = false
   feature information (1/ecx):
      PNI/SSE3: Prescott New Instructions     = true
      PCLMULDQ instruction                    = true
      DTES64: 64-bit debug store              = false
      MONITOR/MWAIT                           = false
      CPL-qualified debug store               = false
      VMX: virtual machine extensions         = false
      SMX: safer mode extensions              = false
      Enhanced Intel SpeedStep Technology     = false
      TM2: thermal monitor 2                  = false
      SSSE3 extensions                        = true
      context ID: adaptive or shared L1 data  = false
      SDBG: IA32_DEBUG_INTERFACE              = false
      FMA instruction                         = true
      CMPXCHG16B instruction                  = true
      xTPR disable                            = false
      PDCM: perfmon and debug                 = false
      PCID: process context identifiers       = true
      DCA: direct cache access                = false
      SSE4.1 extensions                       = true
      SSE4.2 extensions                       = true
      x2APIC: extended xAPIC support          = false
      MOVBE instruction                       = true
      POPCNT instruction                      = true
      time stamp counter deadline             = false
      AES instruction                         = true
      XSAVE/XSTOR states                      = true
      OS-enabled XSAVE/XSTOR                  = true
      AVX: advanced vector extensions         = true
      F16C half-precision convert instruction = true
      RDRAND instruction                      = true
      hypervisor guest status                 = true
   cache and TLB information (2):
      0xff: cache data is in CPUID leaf 4
      0xfe: TLB data is in CPUID leaf 0x18
      0xf0: 64 byte prefetching
   processor serial number = 0007-06E5-0000-0000-0000-0000
   deterministic cache parameters (4):
      --- cache 0 ---
      cache type                         = data cache (1)
      cache level                        = 0x1 (1)
      self-initializing cache level      = true
      fully associative cache            = false
      maximum IDs for CPUs sharing cache = 0x0 (0)
      maximum IDs for cores in pkg       = 0x3 (3)
      system coherency line size         = 0x40 (64)
      physical line partitions           = 0x1 (1)
      ways of associativity              = 0xc (12)
      number of sets                     = 0x40 (64)
      WBINVD/INVD acts on lower caches   = false
      inclusive to lower caches          = false
      complex cache indexing             = false
      number of sets (s)                 = 64
      (size synth)                       = 49152 (48 KB)
      --- cache 1 ---
      cache type                         = instruction cache (2)
      cache level                        = 0x1 (1)
      self-initializing cache level      = true
      fully associative cache            = false
      maximum IDs for CPUs sharing cache = 0x0 (0)
      maximum IDs for cores in pkg       = 0x3 (3)
      system coherency line size         = 0x40 (64)
      physical line partitions           = 0x1 (1)
      ways of associativity              = 0x8 (8)
      number of sets                     = 0x40 (64)
      WBINVD/INVD acts on lower caches   = false
      inclusive to lower caches          = false
      complex cache indexing             = false
      number of sets (s)                 = 64
      (size synth)                       = 32768 (32 KB)
      --- cache 2 ---
      cache type                         = unified cache (3)
      cache level                        = 0x2 (2)
      self-initializing cache level      = true
      fully associative cache            = false
      maximum IDs for CPUs sharing cache = 0x0 (0)
      maximum IDs for cores in pkg       = 0x3 (3)
      system coherency line size         = 0x40 (64)
      physical line partitions           = 0x1 (1)
      ways of associativity              = 0x8 (8)
      number of sets                     = 0x400 (1024)
      WBINVD/INVD acts on lower caches   = false
      inclusive to lower caches          = false
      complex cache indexing             = false
      number of sets (s)                 = 1024
      (size synth)                       = 524288 (512 KB)
      --- cache 3 ---
      cache type                         = unified cache (3)
      cache level                        = 0x3 (3)
      self-initializing cache level      = true
      fully associative cache            = false
      maximum IDs for CPUs sharing cache = 0x3 (3)
      maximum IDs for cores in pkg       = 0x3 (3)
      system coherency line size         = 0x40 (64)
      physical line partitions           = 0x1 (1)
      ways of associativity              = 0x10 (16)
      number of sets                     = 0x2000 (8192)
      WBINVD/INVD acts on lower caches   = false
      inclusive to lower caches          = true
      complex cache indexing             = true
      number of sets (s)                 = 8192
      (size synth)                       = 8388608 (8 MB)
      --- cache 4 ---
      cache type                         = no more caches (0)
   MONITOR/MWAIT (5):
      smallest monitor-line size (bytes)       = 0x40 (64)
      largest monitor-line size (bytes)        = 0x40 (64)
      enum of Monitor-MWAIT exts supported     = true
      supports intrs as break-event for MWAIT  = true
      monitorless MWAIT supported              = false
      number of C0 sub C-states using MWAIT    = 0x0 (0)
      number of C1 sub C-states using MWAIT    = 0x2 (2)
      number of C2 sub C-states using MWAIT    = 0x0 (0)
      number of C3 sub C-states using MWAIT    = 0x1 (1)
      number of C4 sub C-states using MWAIT    = 0x2 (2)
      number of C5 sub C-states using MWAIT    = 0x1 (1)
      number of C6 sub C-states using MWAIT    = 0x1 (1)
      number of C7 sub C-states using MWAIT    = 0x1 (1)
   Thermal and Power Management Features (6):
      digital thermometer                     = false
      Intel Turbo Boost Technology            = false
      ARAT always running APIC timer          = true
      PLN power limit notification            = false
      ECMD extended clock modulation duty     = false
      PTM package thermal management          = false
      HWP base registers                      = false
      HWP notification                        = false
      HWP activity window                     = false
      HWP energy performance preference       = false
      HWP package level request               = false
      HDC base registers                      = false
      Intel Turbo Boost Max Technology 3.0    = false
      HWP capabilities                        = false
      HWP PECI override                       = false
      flexible HWP                            = false
      IA32_HWP_REQUEST MSR fast access mode   = false
      HW_FEEDBACK MSRs supported              = false
      ignoring idle logical processor HWP req = false
      IA32_HWP_CTL MSR supported              = false
      Thread Director                         = false
      IA32_HW_FEEDBACK_THREAD_CONFIG bit 25   = false
      digital thermometer thresholds          = 0x0 (0)
      hardware coordination feedback          = false
      ACNT2 available                         = false
      performance-energy bias capability      = false
      number of enh hardware feedback classes = 0x0 (0)
      performance capability reporting        = false
      energy efficiency capability reporting  = false
      size of feedback struct (4KB pages)     = 0x1 (1)
      index of CPU's row in feedback struct   = 0x0 (0)
   extended feature flags (7):
      FSGSBASE instructions                    = true
      IA32_TSC_ADJUST MSR supported            = false
      SGX: Software Guard Extensions supported = false
      BMI1 instructions                        = true
      HLE hardware lock elision                = false
      AVX2: advanced vector extensions 2       = true
      FDP_EXCPTN_ONLY                          = false
      SMEP supervisor mode exec protection     = true
      BMI2 instructions                        = true
      enhanced REP MOVSB/STOSB                 = true
      INVPCID instruction                      = false
      RTM: restricted transactional memory     = false
      RDT-CMT/PQoS cache monitoring            = false
      deprecated FPU CS/DS                     = false
      MPX: intel memory protection extensions  = false
      RDT-CAT/PQE cache allocation             = false
      AVX512F: AVX-512 foundation instructions = true
      AVX512DQ: double & quadword instructions = true
      RDSEED instruction                       = true
      ADX instructions                         = true
      SMAP: supervisor mode access prevention  = true
      AVX512IFMA: integer fused multiply add   = true
      PCOMMIT instruction                      = false
      CLFLUSHOPT instruction                   = true
      CLWB instruction                         = false
      Intel processor trace                    = false
      AVX512PF: prefetch instructions          = false
      AVX512ER: exponent & reciprocal instrs   = false
      AVX512CD: conflict detection instrs      = true
      SHA instructions                         = true
      AVX512BW: byte & word instructions       = true
      AVX512VL: vector length                  = true
      PREFETCHWT1                              = false
      AVX512VBMI: vector byte manipulation     = true
      UMIP: user-mode instruction prevention   = true
      PKU protection keys for user-mode        = true
      OSPKE CR4.PKE and RDPKRU/WRPKRU          = false
      WAITPKG instructions                     = false
      AVX512_VBMI2: byte VPCOMPRESS, VPEXPAND  = true
      CET_SS: CET shadow stack                 = false
      GFNI: Galois Field New Instructions      = false
      VAES instructions                        = false
      VPCLMULQDQ instruction                   = true
      AVX512_VNNI: neural network instructions = true
      AVX512_BITALG: bit count/shiffle         = true
      TME: Total Memory Encryption             = false
      AVX512: VPOPCNTDQ instruction            = true
      LA57: 57-bit addrs & 5-level paging      = false
      BNDLDX/BNDSTX MAWAU value in 64-bit mode = 0x0 (0)
      RDPID: read processor ID supported       = false
      KL: key locker                           = false
      bus lock detection                       = false
      CLDEMOTE supports cache line demote      = false
      MOVDIRI instruction                      = false
      MOVDIR64B instruction                    = false
      ENQCMD instruction                       = false
      SGX_LC: SGX launch config supported      = false
      PKS: supervisor protection keys          = false
      SGX-KEYS: SGX attestation services       = false
      AVX512_4VNNIW: neural network instrs     = false
      AVX512_4FMAPS: multiply acc single prec  = false
      fast short REP MOV                       = false
      UINTR: user interrupts                   = false
      AVX512_VP2INTERSECT: intersect mask regs = false
      IA32_MCU_OPT_CTRL SRBDS mitigation MSR   = false
      VERW MD_CLEAR microcode support          = false
      RTM transaction always aborts            = false
      IA32_TSX_FORCE_ABORT MSR                 = false
      SERIALIZE instruction                    = false
      hybrid part                              = false
      TSXLDTRK: TSX suspend load addr tracking = false
      PCONFIG instruction                      = false
      LBR: architectural last branch records   = false
      CET_IBT: CET indirect branch tracking    = false
      AMX-BF16: tile bfloat16 support          = false
      AVX512_FP16: fp16 support                = false
      AMX-TILE: tile architecture support      = false
      AMX-INT8: tile 8-bit integer support     = false
      IBRS/IBPB: indirect branch restrictions  = false
      STIBP: 1 thr indirect branch predictor   = false
      L1D_FLUSH: IA32_FLUSH_CMD MSR            = false
      IA32_ARCH_CAPABILITIES MSR               = false
      IA32_CORE_CAPABILITIES MSR               = false
      SSBD: speculative store bypass disable   = false
   Direct Cache Access Parameters (9):
      PLATFORM_DCA_CAP MSR bits = 0
   Architecture Performance Monitoring Features (0xa):
      version ID                               = 0x0 (0)
      number of counters per logical processor = 0x0 (0)
      bit width of counter                     = 0x0 (0)
      length of EBX bit vector                 = 0x0 (0)
      core cycle event                         = not available
      instruction retired event                = not available
      reference cycles event                   = not available
      last-level cache ref event               = not available
      last-level cache miss event              = not available
      branch inst retired event                = not available
      branch mispred retired event             = not available
      topdown slots event                      = not available
      topdown backend bound                    = not available
      topdown bad speculation                  = not available
      topdown frontend bound                   = not available
      topdown retiring                         = not available
      LBR inserts                              = not available
      fixed counter  0 supported               = false
      fixed counter  1 supported               = false
      fixed counter  2 supported               = false
      fixed counter  3 supported               = false
      fixed counter  4 supported               = false
      fixed counter  5 supported               = false
      fixed counter  6 supported               = false
      fixed counter  7 supported               = false
      fixed counter  8 supported               = false
      fixed counter  9 supported               = false
      fixed counter 10 supported               = false
      fixed counter 11 supported               = false
      fixed counter 12 supported               = false
      fixed counter 13 supported               = false
      fixed counter 14 supported               = false
      fixed counter 15 supported               = false
      fixed counter 16 supported               = false
      fixed counter 17 supported               = false
      fixed counter 18 supported               = false
      fixed counter 19 supported               = false
      fixed counter 20 supported               = false
      fixed counter 21 supported               = false
      fixed counter 22 supported               = false
      fixed counter 23 supported               = false
      fixed counter 24 supported               = false
      fixed counter 25 supported               = false
      fixed counter 26 supported               = false
      fixed counter 27 supported               = false
      fixed counter 28 supported               = false
      fixed counter 29 supported               = false
      fixed counter 30 supported               = false
      fixed counter 31 supported               = false
      number of contiguous fixed counters      = 0x0 (0)
      bit width of fixed counters              = 0x0 (0)
      anythread deprecation                    = false
   x2APIC features / processor topology (0xb):
      extended APIC ID                      = 2
      --- level 0 ---
      level number                          = 0x0 (0)
      level type                            = thread (1)
      bit width of level & previous levels  = 0x0 (0)
      number of logical processors at level = 0x1 (1)
      --- level 1 ---
      level number                          = 0x1 (1)
      level type                            = core (2)
      bit width of level & previous levels  = 0x2 (2)
      number of logical processors at level = 0x4 (4)
      --- level 2 ---
      level number                          = 0x2 (2)
      level type                            = invalid (0)
      bit width of level & previous levels  = 0x0 (0)
      number of logical processors at level = 0x0 (0)
   XSAVE features (0xd/0):
      XCR0 valid bit field mask               = 0x00000000000000e7
         x87 state                            = true
         SSE state                            = true
         AVX state                            = true
         MPX BNDREGS                          = false
         MPX BNDCSR                           = false
         AVX-512 opmask                       = true
         AVX-512 ZMM_Hi256                    = true
         AVX-512 Hi16_ZMM                     = true
         PKRU state                           = false
         XTILECFG state                       = false
         XTILEDATA state                      = false
      bytes required by fields in XCR0        = 0x00000a80 (2688)
      bytes required by XSAVE/XRSTOR area     = 0x00000a80 (2688)
      XSAVEOPT instruction                    = true
      XSAVEC instruction                      = true
      XGETBV instruction                      = true
      XSAVES/XRSTORS instructions             = false
      XFD: extended feature disable supported = false
      SAVE area size in bytes                 = 0x00000980 (2432)
      IA32_XSS valid bit field mask           = 0x0000000000000000
         PT state                             = false
         PASID state                          = false
         CET_U user state                     = false
         CET_S supervisor state               = false
         HDC state                            = false
         UINTR state                          = false
         LBR state                            = false
         HWP state                            = false
   AVX/YMM features (0xd/2):
      AVX/YMM save state byte size             = 0x00000100 (256)
      AVX/YMM save state byte offset           = 0x00000240 (576)
      supported in IA32_XSS or XCR0            = XCR0 (user state)
      64-byte alignment in compacted XSAVE     = false
      XFD faulting supported                   = false
   AVX-512 opmask features (0xd/5):
      AVX-512 opmask save state byte size      = 0x00000040 (64)
      AVX-512 opmask save state byte offset    = 0x00000440 (1088)
      supported in IA32_XSS or XCR0            = XCR0 (user state)
      64-byte alignment in compacted XSAVE     = false
      XFD faulting supported                   = false
   AVX-512 ZMM_Hi256 features (0xd/6):
      AVX-512 ZMM_Hi256 save state byte size   = 0x00000200 (512)
      AVX-512 ZMM_Hi256 save state byte offset = 0x00000480 (1152)
      supported in IA32_XSS or XCR0            = XCR0 (user state)
      64-byte alignment in compacted XSAVE     = false
      XFD faulting supported                   = false
   AVX-512 Hi16_ZMM features (0xd/7):
      AVX-512 Hi16_ZMM save state byte size    = 0x00000400 (1024)
      AVX-512 Hi16_ZMM save state byte offset  = 0x00000680 (1664)
      supported in IA32_XSS or XCR0            = XCR0 (user state)
      64-byte alignment in compacted XSAVE     = false
      XFD faulting supported                   = false
   Quality of Service Monitoring Resource Type (0xf/0):
      Maximum range of RMID = 0
      supports L3 cache monitoring = false
   Resource Director Technology Allocation (0x10/0):
      L3 cache allocation technology supported = false
      L2 cache allocation technology supported = false
      memory bandwidth allocation supported    = false
      cache bandwidth allocation supported     = false
   0x00000011 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   Software Guard Extensions (SGX) capability (0x12/0):
      SGX1 supported                           = false
      SGX2 supported                           = false
      SGX ENCLV E*VIRTCHILD, ESETCONTEXT       = false
      SGX ENCLS ETRACKC, ERDINFO, ELDBC, ELDUC = false
      SGX ENCLU EVERIFYREPORT2                 = false
      SGX ENCLS EUPDATESVN                     = false
      SGX ENCLU EDECCSSA                       = false
      MISCSELECT.EXINFO supported: #PF & #GP   = false
      MISCSELECT.CPINFO supported: #CP         = false
      MaxEnclaveSize_Not64 (log2)              = 0x0 (0)
      MaxEnclaveSize_64 (log2)                 = 0x0 (0)
   SGX attributes: ECREATE SECS.ATTRIBUTES (0x12/1):
      valid bit mask = 0x00000000000000000000000000000000
      enclave initialized by EINIT           = false
      enclave debugger read/write permission = false
      enclave 64-bit mode                    = false
      provisioning key available             = false
      EINIT token key available              = false
      CET attributes enabled                 = false
      KSS key separation & sharing enabled   = false
      AEX attribute enabled                  = false
      XFRM: XSAVE feature request mask       = 0x0000000000000000
         XCR0 supported: x87 state           = false
         XCR0 supported: SSE state           = false
         XCR0 supported: AVX state           = false
         XCR0 supported: MPX BNDREGS         = false
         XCR0 supported: MPX BNDCSR          = false
         XCR0 supported: AVX-512 opmask      = false
         XCR0 supported: AVX-512 ZMM_Hi256   = false
         XCR0 supported: AVX-512 Hi16_ZMM    = false
         IA32_XSS supported: PT state        = false
         XCR0 supported: PKRU state          = false
         XCR0 supported: CET_U state         = false
         XCR0 supported: CET_S state         = false
         IA32_XSS supported: HDC state       = false
         IA32_XSS supported: UINTR state     = false
         LBR supported                       = false
         IA32_XSS supported: HWP state       = false
         XTILECFG supported                  = false
         XTILEDATA supported                 = false
   SGX Enclave Page Cache (EPC) enumeration (0x12/0x2):
      type = invalid
   0x00000013 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   Intel Processor Trace (0x14):
      IA32_RTIT_CR3_MATCH is accessible      = false
      configurable PSB & cycle-accurate      = false
      IP & TraceStop filtering; PT preserve  = false
      MTC timing packet; suppress COFI-based = false
      PTWRITE support                        = false
      power event trace support              = false
      PSB/PMI preservation support           = false
      IA32_RTIT_CTL EventEn enable supported = false
      IA32_RTIT_CTL DisTNT disable supported = false
      PTTT processor trace trigger tracing   = false
      ToPA output scheme support             = false
      ToPA can hold many output entries      = false
      single-range output scheme support     = false
      output to trace transport              = false
      IP payloads have LIP values & CS       = false
   Time Stamp Counter/Core Crystal Clock Information (0x15):
      TSC/clock ratio = 0/0
      nominal core crystal clock = 0 Hz
   Processor Frequency Information (0x16):
      Core Base Frequency (MHz) = 0x0 (0)
      Core Maximum Frequency (MHz) = 0x0 (0)
      Bus (Reference) Frequency (MHz) = 0x0 (0)
   hypervisor_id (0x40000000) = "Apple VZ\0\0\0\0"
   0x40000001 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000002 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000003 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000004 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000005 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000006 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000007 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000008 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000009 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000a 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000b 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000c 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000d 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000e 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000f 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   hypervisor generic timing information (0x40000010):
      TSC frequency (Hz) = 2304000
      bus frequency (Hz) = 1000000
   hypervisor_id (0x40000100) = "\0\0\0\0\0\0\0\0\0\0\0\0"
   extended feature flags (0x80000001/edx):
      SYSCALL and SYSRET instructions        = true
      execution disable                      = true
      1-GB large page support                = false
      RDTSCP                                 = false
      64-bit extensions technology available = true
   Intel feature flags (0x80000001/ecx):
      LAHF/SAHF supported in 64-bit mode     = true
      LZCNT advanced bit manipulation        = true
      3DNow! PREFETCH/PREFETCHW instructions = true
   brand = "Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz"
   L1 TLB/cache information: 2M/4M pages & L1 TLB (0x80000005/eax):
      instruction # entries     = 0x0 (0)
      instruction associativity = 0x0 (0)
      data # entries            = 0x0 (0)
      data associativity        = 0x0 (0)
   L1 TLB/cache information: 4K pages & L1 TLB (0x80000005/ebx):
      instruction # entries     = 0x0 (0)
      instruction associativity = 0x0 (0)
      data # entries            = 0x0 (0)
      data associativity        = 0x0 (0)
   L1 data cache information (0x80000005/ecx):
      line size (bytes) = 0x0 (0)
      lines per tag     = 0x0 (0)
      associativity     = 0x0 (0)
      size (KB)         = 0x0 (0)
   L1 instruction cache information (0x80000005/edx):
      line size (bytes) = 0x0 (0)
      lines per tag     = 0x0 (0)
      associativity     = 0x0 (0)
      size (KB)         = 0x0 (0)
   L2 TLB/cache information: 2M/4M pages & L2 TLB (0x80000006/eax):
      instruction # entries     = 0x0 (0)
      instruction associativity = L2 off (0)
      data # entries            = 0x0 (0)
      data associativity        = L2 off (0)
   L2 TLB/cache information: 4K pages & L2 TLB (0x80000006/ebx):
      instruction # entries     = 0x0 (0)
      instruction associativity = L2 off (0)
      data # entries            = 0x0 (0)
      data associativity        = L2 off (0)
   L2 unified cache information (0x80000006/ecx):
      line size (bytes) = 0x40 (64)
      lines per tag     = 0x0 (0)
      associativity     = 8 to 15-way (6)
      size (KB)         = 0x100 (256)
   L3 cache information (0x80000006/edx):
      line size (bytes)     = 0x0 (0)
      lines per tag         = 0x0 (0)
      associativity         = L2 off (0)
      size (in 512KB units) = 0x0 (0)
   RAS Capability (0x80000007/ebx):
      MCA overflow recovery support = false
      SUCCOR support                = false
      HWA: hardware assert support  = false
      scalable MCA support          = false
   Advanced Power Management Features (0x80000007/ecx):
      CmpUnitPwrSampleTimeRatio = 0x0 (0)
   Advanced Power Management Features (0x80000007/edx):
      TS: temperature sensing diode           = false
      FID: frequency ID control               = false
      VID: voltage ID control                 = false
      TTP: thermal trip                       = false
      TM: thermal monitor                     = false
      STC: software thermal control           = false
      100 MHz multiplier control              = false
      hardware P-State control                = false
      TscInvariant                            = true
      CPB: core performance boost             = false
      read-only effective frequency interface = false
      processor feedback interface            = false
      APM power reporting                     = false
      connected standby                       = false
      RAPL: running average power limit       = false
      fast CPPC                               = false
   Physical Address and Linear Address Size (0x80000008/eax):
      maximum physical address bits         = 0x27 (39)
      maximum linear (virtual) address bits = 0x30 (48)
      maximum guest physical address bits   = 0x0 (0)
   Extended Feature Extensions ID (0x80000008/ebx):
      CLZERO instruction                       = false
      instructions retired count support       = false
      always save/restore error pointers       = false
      INVLPGB instruction                      = false
      RDPRU instruction                        = false
      memory bandwidth enforcement             = false
      MCOMMIT instruction                      = false
      WBNOINVD instruction                     = false
      IBPB: indirect branch prediction barrier = false
      interruptible WBINVD, WBNOINVD           = false
      IBRS: indirect branch restr speculation  = false
      STIBP: 1 thr indirect branch predictor   = false
      CPU prefers: IBRS always on              = false
      CPU prefers: STIBP always on             = false
      IBRS preferred over software solution    = false
      IBRS provides same mode protection       = false
      EFER[LMSLE] not supported                = false
      INVLPGB supports TLB flush guest nested  = false
      ppin processor id number supported       = false
      SSBD: speculative store bypass disable   = false
      virtualized SSBD                         = false
      SSBD fixed in hardware                   = false
      CPPC: collaborative processor perf ctrl  = false
      PSFD: predictive store forward disable   = false
      not vulnerable to branch type confusion  = false
      IBPB_RET: ret addr predictor cleared     = false
      branch sampling feature support          = false
      (vuln to branch type confusion synth)    = true
   Size Identifiers (0x80000008/ecx):
      number of CPU cores                 = 0x1 (1)
      ApicIdCoreIdSize                    = 0x0 (0)
      performance time-stamp counter size = 40 bits (0)
   Feature Extended Size (0x80000008/edx):
      max page count for INVLPGB instruction = 0x0 (0)
      RDPRU instruction max input support    = 0x0 (0)
   (instruction supported synth):
      MWAIT = false
   (multi-processing synth) = multi-core (c=4)
   (multi-processing method) = Intel leaf 0xb
   (APIC widths synth): CORE_width=2 SMT_width=0
   (APIC synth): PKG_ID=0 CORE_ID=2 SMT_ID=0
   (uarch synth) = Intel Sunny Cove {Sunny Cove}, 10nm+
   (synth) = Intel Core i*-10000 (Ice Lake-U/Y D1) [Sunny Cove] {Sunny Cove}, 10nm+

# cpuid -1 --raw
CPU:
   0x00000000 0x00: eax=0x00000016 ebx=0x756e6547 ecx=0x6c65746e edx=0x49656e69
   0x00000001 0x00: eax=0x000706e5 ebx=0x00040800 ecx=0xfeda3203 edx=0x178bfbff
   0x00000002 0x00: eax=0x00feff01 ebx=0x000000f0 ecx=0x00000000 edx=0x00000000
   0x00000003 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000004 0x00: eax=0x0c000121 ebx=0x02c0003f ecx=0x0000003f edx=0x00000000
   0x00000004 0x01: eax=0x0c000122 ebx=0x01c0003f ecx=0x0000003f edx=0x00000000
   0x00000004 0x02: eax=0x0c000143 ebx=0x01c0003f ecx=0x000003ff edx=0x00000000
   0x00000004 0x03: eax=0x0c00c163 ebx=0x03c0003f ecx=0x00001fff edx=0x00000006
   0x00000004 0x04: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000005 0x00: eax=0x00000040 ebx=0x00000040 ecx=0x00000003 edx=0x11121020
   0x00000006 0x00: eax=0x00000004 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000007 0x00: eax=0x00000000 ebx=0xf0bf03a9 ecx=0x00005c4e edx=0x00000000
   0x00000008 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000009 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x0000000a 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x0000000b 0x00: eax=0x00000000 ebx=0x00000001 ecx=0x00000100 edx=0x00000000
   0x0000000b 0x01: eax=0x00000002 ebx=0x00000004 ecx=0x00000201 edx=0x00000000
   0x0000000b 0x02: eax=0x00000000 ebx=0x00000000 ecx=0x00000002 edx=0x00000000
   0x0000000c 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x00: eax=0x000000e7 ebx=0x00000a80 ecx=0x00000a80 edx=0x00000000
   0x0000000d 0x01: eax=0x00000007 ebx=0x00000980 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x02: eax=0x00000100 ebx=0x00000240 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x05: eax=0x00000040 ebx=0x00000440 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x06: eax=0x00000200 ebx=0x00000480 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x07: eax=0x00000400 ebx=0x00000680 ecx=0x00000000 edx=0x00000000
   0x0000000e 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x0000000f 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000010 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000011 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000012 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000012 0x01: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000012 0x02: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000013 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000014 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000015 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000016 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x20000000 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000000 0x00: eax=0x40000010 ebx=0x6c707041 ecx=0x5a562065 edx=0x00000000
   0x40000001 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000002 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000003 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000004 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000005 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000006 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000007 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000008 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000009 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000a 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000b 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000c 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000d 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000e 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000f 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000010 0x00: eax=0x00232800 ebx=0x000f4240 ecx=0x00000000 edx=0x00000000
   0x40000100 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x80000000 0x00: eax=0x80000008 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x80000001 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000121 edx=0x20100800
   0x80000002 0x00: eax=0x65746e49 ebx=0x2952286c ecx=0x726f4320 edx=0x4d542865
   0x80000003 0x00: eax=0x37692029 ebx=0x3630312d ecx=0x37474e38 edx=0x55504320
   0x80000004 0x00: eax=0x32204020 ebx=0x4730332e ecx=0x00007a48 edx=0x00000000
   0x80000005 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x80000006 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x01006040 edx=0x00000000
   0x80000007 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000100
   0x80000008 0x00: eax=0x00003027 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x80860000 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0xc0000000 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000

[-- Attachment #4: kernel-6.11.txt --]
[-- Type: text/plain, Size: 74480 bytes --]

Ubuntu 24.10, with no customization
---
images:
- location: "https://cloud-images.ubuntu.com/releases/24.10/release-20250129/ubuntu-24.10-server-cloudimg-amd64.img"
  arch: "x86_64"
---
# dmesg
[    0.000000] Linux version 6.11.0-14-generic (buildd@lcy02-amd64-032) (x86_64-linux-gnu-gcc-14 (Ubuntu 14.2.0-4ubuntu2) 14.2.0, GNU ld (GNU Binutils for Ubuntu) 2.43.1) #15-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 10 23:48:25 UTC 2025 (Ubuntu 6.11.0-14.15-generic 6.11.0)
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-6.11.0-14-generic root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Hygon HygonGenuine
[    0.000000]   Centaur CentaurHauls
[    0.000000]   zhaoxin   Shanghai  
[    0.000000] BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bd7f6fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bd7f7000-0x00000000bd972fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bd973000-0x00000000bfb72fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000bfb73000-0x00000000bfbeefff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000bfbef000-0x00000000bfbf6fff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000bfbf7000-0x00000000bfbfefff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000bfbff000-0x00000000bfffffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000fefe0000-0x00000000feffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000013fffffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] APIC: Static calls initialized
[    0.000000] efi: EFI v2.7 by EDK II
[    0.000000] efi: ACPI=0xbfbf6000 ACPI 2.0=0xbfbf6014 SMBIOS=0xbfbeb000 SMBIOS 3.0=0xbd971000 MOKvar=0xbfbc4000 INITRD=0xbd6bfb98 
[    0.000000] efi: Not removing mem41: MMIO range=[0xfefe0000-0xfeffffff] (128KB) from e820 map
[    0.000000] SMBIOS 3.3.0 present.
[    0.000000] DMI: Apple Inc. Apple Virtualization Generic Platform, BIOS 2069.80.3.0.0 12/13/2024
[    0.000000] DMI: Memory slots populated: 1/1
[    0.000000] secureboot: Secure boot disabled
[    0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] last_pfn = 0x140000 max_arch_pfn = 0x400000000
[    0.000000] MTRRs disabled by BIOS
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT  
[    0.000000] last_pfn = 0xc0000 max_arch_pfn = 0x400000000
[    0.000000] secureboot: Secure boot disabled
[    0.000000] RAMDISK: [mem 0xb75ec000-0xb90eafff]
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000000BFBF6014 000024 (v02 APPLE )
[    0.000000] ACPI: XSDT 0x00000000BFBF50E8 000044 (v01 APPLE  Apple Vz 00000001      01000013)
[    0.000000] ACPI: FACP 0x00000000BFBF4000 000114 (v06 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: DSDT 0x00000000BFBF0000 0001CC (v02 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: FACS 0x00000000BFBFE000 000040
[    0.000000] ACPI: APIC 0x00000000BFBF3000 000062 (v05 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: HPET 0x00000000BFBF2000 000038 (v01 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: MCFG 0x00000000BFBF1000 00003C (v01 APPLE  Apple Vz 00000001 AAPL 20180427)
[    0.000000] ACPI: Reserving FACP table memory at [mem 0xbfbf4000-0xbfbf4113]
[    0.000000] ACPI: Reserving DSDT table memory at [mem 0xbfbf0000-0xbfbf01cb]
[    0.000000] ACPI: Reserving FACS table memory at [mem 0xbfbfe000-0xbfbfe03f]
[    0.000000] ACPI: Reserving APIC table memory at [mem 0xbfbf3000-0xbfbf3061]
[    0.000000] ACPI: Reserving HPET table memory at [mem 0xbfbf2000-0xbfbf2037]
[    0.000000] ACPI: Reserving MCFG table memory at [mem 0xbfbf1000-0xbfbf103b]
[    0.000000] ACPI: DMI detected to setup _OSI("Darwin"): Apple hardware
[    0.000000] system APIC only can use physical flat
[    0.000000] APIC: Switched APIC routing to: physical flat
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000013fffffff]
[    0.000000] NODE_DATA(0) allocated [mem 0x13ffd2000-0x13fffcfff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000013fffffff]
[    0.000000]   Device   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009ffff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x00000000bd7f6fff]
[    0.000000]   node   0: [mem 0x00000000bd973000-0x00000000bfb72fff]
[    0.000000]   node   0: [mem 0x00000000bfbff000-0x00000000bfffffff]
[    0.000000]   node   0: [mem 0x0000000100000000-0x000000013fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x000000013fffffff]
[    0.000000] On node 0, zone DMA: 1 pages in unavailable ranges
[    0.000000] On node 0, zone DMA: 96 pages in unavailable ranges
[    0.000000] On node 0, zone DMA32: 380 pages in unavailable ranges
[    0.000000] On node 0, zone DMA32: 140 pages in unavailable ranges
[    0.000000] ACPI: PM-Timer IO Port: 0x608
[    0.000000] system APIC only can use physical flat
[    0.000000] IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x80864301 base: 0xfed00000
[    0.000000] CPU topo: Max. logical packages:   1
[    0.000000] CPU topo: Max. logical dies:       1
[    0.000000] CPU topo: Max. dies per package:   1
[    0.000000] CPU topo: Max. threads per core:   1
[    0.000000] CPU topo: Num. cores per package:     4
[    0.000000] CPU topo: Num. threads per package:   4
[    0.000000] CPU topo: Allowing 4 present CPUs plus 0 hotplug CPUs
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000fffff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0xbd7f7000-0xbd972fff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0xbfb73000-0xbfbeefff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0xbfbef000-0xbfbf6fff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0xbfbf7000-0xbfbfefff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0xc0000000-0xfefdffff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0xfefe0000-0xfeffffff]
[    0.000000] PM: hibernation: Registered nosave memory: [mem 0xff000000-0xffffffff]
[    0.000000] [mem 0xc0000000-0xfefdffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns
[    0.000000] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1
[    0.000000] percpu: Embedded 88 pages/cpu s237568 r8192 d114688 u524288
[    0.000000] pcpu-alloc: s237568 r8192 d114688 u524288 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 0 1 2 3 
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-6.11.0-14-generic root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0
[    0.000000] Unknown kernel command line parameters "BOOT_IMAGE=/vmlinuz-6.11.0-14-generic", will be passed to user space.
[    0.000000] random: crng init done
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] Fallback order for Node 0: 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1047959
[    0.000000] Policy zone: Normal
[    0.000000] mem auto-init: stack:all(zero), heap alloc:on, heap free:off
[    0.000000] software IO TLB: area num 4.
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Kernel/User page tables isolation: enabled
[    0.000000] ftrace: allocating 59298 entries in 232 pages
[    0.000000] ftrace: allocated 232 pages with 4 groups
[    0.000000] Dynamic Preempt: voluntary
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=4.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] 	Rude variant of Tasks RCU enabled.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
[    0.000000] RCU Tasks Rude: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
[    0.000000] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
[    0.000000] NR_IRQS: 524544, nr_irqs: 456, preallocated irqs: 16
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] Console: colour dummy device 80x25
[    0.000000] printk: legacy console [tty1] enabled
[    0.000000] printk: legacy console [ttyS0] enabled
[    0.000000] ACPI: Core revision 20240322
[    0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484873504 ns
[    0.000000] APIC: Switch to symmetric I/O mode setup
[    0.000000] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.006000] tsc: PIT calibration matches HPET. 1 loops
[    0.006000] tsc: Detected 2304.015 MHz processor
[    0.000004] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x2136060f0f1, max_idle_ns: 440795238891 ns
[    0.001364] Calibrating delay loop (skipped), value calculated using timer frequency.. 4608.03 BogoMIPS (lpj=2304015)
[    0.002831] x86/cpu: User Mode Instruction Prevention (UMIP) activated
[    0.003528] Last level iTLB entries: 4KB 0, 2MB 0, 4MB 0
[    0.004374] Last level dTLB entries: 4KB 0, 2MB 0, 4MB 0, 1GB 0
[    0.005378] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[    0.006370] Spectre V2 : Mitigation: Retpolines
[    0.007084] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[    0.007367] Spectre V2 : Spectre v2 / SpectreRSB : Filling RSB on VMEXIT
[    0.008366] RETBleed: WARNING: Spectre v2 mitigation leaves CPU vulnerable to RETBleed attacks, data leaks possible!
[    0.009366] RETBleed: Vulnerable
[    0.009783] Speculative Store Bypass: Vulnerable
[    0.010371] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[    0.011190] MMIO Stale Data: Vulnerable: Clear CPU buffers attempted, no microcode
[    0.011366] SRBDS: Unknown: Dependent on hypervisor status
[    0.012365] GDS: Unknown: Dependent on hypervisor status
[    0.013114] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[    0.013366] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[    0.014365] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[    0.015158] x86/fpu: Supporting XSAVE feature 0x020: 'AVX-512 opmask'
[    0.015365] x86/fpu: Supporting XSAVE feature 0x040: 'AVX-512 Hi256'
[    0.016368] x86/fpu: Supporting XSAVE feature 0x080: 'AVX-512 ZMM_Hi256'
[    0.017325] x86/fpu: xstate_offset[2]:  576, xstate_sizes[2]:  256
[    0.017367] x86/fpu: xstate_offset[5]:  832, xstate_sizes[5]:   64
[    0.018373] x86/fpu: xstate_offset[6]:  896, xstate_sizes[6]:  512
[    0.019373] x86/fpu: xstate_offset[7]: 1408, xstate_sizes[7]: 1024
[    0.020152] x86/fpu: Enabled xstate features 0xe7, context size is 2432 bytes, using 'compacted' format.
[    0.039744] Freeing SMP alternatives memory: 48K
[    0.040362] pid_max: default: 32768 minimum: 301
[    0.042368] LSM: initializing lsm=lockdown,capability,landlock,yama,apparmor,ima,evm
[    0.043431] landlock: Up and running.
[    0.044066] Yama: becoming mindful.
[    0.044593] AppArmor: AppArmor initialized
[    0.045551] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.046470] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.130722] smpboot: CPU0: Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz (family: 0x6, model: 0x7e, stepping: 0x5)
[    0.132939] Performance Events: unsupported p6 CPU model 126 no PMU driver, software events only.
[    0.133434] signal: max sigframe size: 3632
[    0.134084] rcu: Hierarchical SRCU implementation.
[    0.134365] rcu: 	Max phase no-delay instances is 400.
[    0.135556] Timer migration: 1 hierarchy levels; 8 children per group; 1 crossnode level
[    0.136854] NMI watchdog: Perf NMI watchdog permanently disabled
[    0.137606] smp: Bringing up secondary CPUs ...
[    0.138566] smpboot: x86: Booting SMP configuration:
[    0.139230] .... node  #0, CPUs:      #1 #2 #3
[    0.148729] smp: Brought up 1 node, 4 CPUs
[    0.149366] smpboot: Total of 4 processors activated (18432.12 BogoMIPS)
[    0.150627] Memory: 3962948K/4191836K available (22528K kernel code, 4521K rwdata, 14936K rodata, 4956K init, 4664K bss, 221208K reserved, 0K cma-reserved)
[    0.152601] devtmpfs: initialized
[    0.152928] x86/mm: Memory block size: 128MB
[    0.154436] ACPI: PM: Registering ACPI NVS region [mem 0xbfbf7000-0xbfbfefff] (32768 bytes)
[    0.155561] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    0.156459] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.157484] pinctrl core: initialized pinctrl subsystem
[    0.158362] PM: RTC time: 05:27:03, date: 2025-03-14
[    0.162356] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.163527] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.164989] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.166860] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.167398] audit: initializing netlink subsys (disabled)
[    0.168376] audit: type=2000 audit(1741930023.175:1): state=initialized audit_enabled=0 res=1
[    0.168690] thermal_sys: Registered thermal governor 'fair_share'
[    0.169362] thermal_sys: Registered thermal governor 'bang_bang'
[    0.169366] thermal_sys: Registered thermal governor 'step_wise'
[    0.170365] thermal_sys: Registered thermal governor 'user_space'
[    0.171112] thermal_sys: Registered thermal governor 'power_allocator'
[    0.171371] EISA bus registered
[    0.172795] cpuidle: using governor ladder
[    0.173464] cpuidle: using governor menu
[    0.173926] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5
[    0.174649] PCI: ECAM [mem 0xe0000000-0xefffffff] (base 0xe0000000) for domain 0000 [bus 00-ff]
[    0.176919] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible.
[    0.179916] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.180369] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    0.182694] fbcon: Taking over console
[    0.183398] ACPI: Disabled all _OSI OS vendors
[    0.183958] ACPI: Added _OSI(Module Device)
[    0.184362] ACPI: Added _OSI(Processor Device)
[    0.184365] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.185365] ACPI: Added _OSI(Processor Aggregator Device)
[    0.186043] ACPI: Added _OSI(Darwin)
[    0.186378] ACPI: 1 ACPI AML tables successfully acquired and loaded
[    0.187589] ACPI: Interpreter enabled
[    0.188374] ACPI: PM: (supports S0 S5)
[    0.188851] ACPI: Using IOAPIC for interrupt routing
[    0.189393] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.190367] PCI: Ignoring E820 reservations for host bridge windows
[    0.191727] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    0.192369] acpi PNP0A08:00: _OSC: OS assumes control of [PCIeHotplug SHPCHotplug AER PCIeCapability LTR DPC]
[    0.193469] PCI host bridge to bus 0000:00
[    0.194368] pci_bus 0000:00: root bus resource [mem 0xc0000000-0xdfffffff window]
[    0.195327] pci_bus 0000:00: root bus resource [mem 0x140000000-0x93fffffff window]
[    0.195367] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.196472] pci 0000:00:00.0: [106b:1a05] type 00 class 0x060000 conventional PCI endpoint
[    0.198062] pci 0000:00:01.0: [1af4:1041] type 00 class 0x020000 conventional PCI endpoint
[    0.198508] pci 0000:00:01.0: BAR 0 [mem 0x140028000-0x14002bfff 64bit]
[    0.199426] pci 0000:00:01.0: BAR 2 [mem 0xc000c000-0xc000c03f]
[    0.204362] pci 0000:00:05.0: [1af4:1043] type 00 class 0x078000 conventional PCI endpoint
[    0.204536] pci 0000:00:05.0: BAR 0 [mem 0x140024000-0x140027fff 64bit]
[    0.205439] pci 0000:00:05.0: BAR 2 [mem 0xc0005000-0xc000507f]
[    0.207476] pci 0000:00:06.0: [1af4:1042] type 00 class 0x018000 conventional PCI endpoint
[    0.208406] pci 0000:00:06.0: BAR 0 [mem 0x140020000-0x140023fff 64bit]
[    0.209288] pci 0000:00:06.0: BAR 2 [mem 0xc000b000-0xc000b03f]
[    0.210671] pci 0000:00:07.0: [1af4:1042] type 00 class 0x018000 conventional PCI endpoint
[    0.211523] pci 0000:00:07.0: BAR 0 [mem 0x14001c000-0x14001ffff 64bit]
[    0.212485] pci 0000:00:07.0: BAR 2 [mem 0xc000a000-0xc000a03f]
[    0.214615] pci 0000:00:08.0: [1af4:105a] type 00 class 0x018000 conventional PCI endpoint
[    0.215549] pci 0000:00:08.0: BAR 0 [mem 0x140018000-0x14001bfff 64bit]
[    0.216440] pci 0000:00:08.0: BAR 2 [mem 0xc0009000-0xc000903f]
[    0.218571] pci 0000:00:09.0: [1af4:105a] type 00 class 0x018000 conventional PCI endpoint
[    0.219532] pci 0000:00:09.0: BAR 0 [mem 0x140014000-0x140017fff 64bit]
[    0.220476] pci 0000:00:09.0: BAR 2 [mem 0xc0008000-0xc000803f]
[    0.222221] pci 0000:00:0a.0: [1af4:1053] type 00 class 0x078000 conventional PCI endpoint
[    0.223368] pci 0000:00:0a.0: BAR 0 [mem 0x140010000-0x140013fff 64bit]
[    0.224308] pci 0000:00:0a.0: BAR 2 [mem 0xc0004000-0xc000407f]
[    0.225661] pci 0000:00:0b.0: [1af4:1059] type 00 class 0x040100 conventional PCI endpoint
[    0.226513] pci 0000:00:0b.0: BAR 0 [mem 0x14000c000-0x14000ffff 64bit]
[    0.227428] pci 0000:00:0b.0: BAR 2 [mem 0xc0003000-0xc000307f]
[    0.228921] pci 0000:00:0c.0: [1af4:1059] type 00 class 0x040100 conventional PCI endpoint
[    0.229504] pci 0000:00:0c.0: BAR 0 [mem 0x140008000-0x14000bfff 64bit]
[    0.230473] pci 0000:00:0c.0: BAR 2 [mem 0xc0002000-0xc000207f]
[    0.232214] pci 0000:00:0d.0: [1af4:1044] type 00 class 0x100000 conventional PCI endpoint
[    0.232509] pci 0000:00:0d.0: BAR 0 [mem 0x140004000-0x140007fff 64bit]
[    0.233438] pci 0000:00:0d.0: BAR 2 [mem 0xc0007000-0xc000703f]
[    0.235179] pci 0000:00:0e.0: [1af4:1045] type 00 class 0x058000 conventional PCI endpoint
[    0.235504] pci 0000:00:0e.0: BAR 0 [mem 0x140000000-0x140003fff 64bit]
[    0.236427] pci 0000:00:0e.0: BAR 2 [mem 0xc0006000-0xc000603f]
[    0.238176] pci 0000:00:0f.0: [106b:1a06] type 00 class 0x0c0330 conventional PCI endpoint
[    0.238508] pci 0000:00:0f.0: BAR 0 [mem 0xc0001000-0xc0001fff]
[    0.239426] pci 0000:00:0f.0: BAR 1 [mem 0xc0000000-0xc00003ff]
[    0.257689] pci 0000:00:1f.0: [8086:2916] type 00 class 0x060100 conventional PCI endpoint
[    0.258840] pci 0000:00:1f.0: bridge window [io  0x0600-0x067f]: can't claim; no compatible bridge window
[    0.260496] iommu: Default domain type: Translated
[    0.261005] iommu: DMA domain TLB invalidation policy: lazy mode
[    0.261587] SCSI subsystem initialized
[    0.262410] libata version 3.00 loaded.
[    0.262421] ACPI: bus type USB registered
[    0.262965] usbcore: registered new interface driver usbfs
[    0.263370] usbcore: registered new interface driver hub
[    0.264046] usbcore: registered new device driver usb
[    0.264389] pps_core: LinuxPPS API ver. 1 registered
[    0.265010] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.265373] PTP clock support registered
[    0.266506] EDAC MC: Ver: 3.0.0
[    0.267664] efivars: Registered efivars operations
[    0.268710] NetLabel: Initializing
[    0.269148] NetLabel:  domain hash size = 128
[    0.269366] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.270393] NetLabel:  unlabeled traffic allowed by default
[    0.271146] mctp: management component transport protocol core
[    0.271366] NET: Registered PF_MCTP protocol family
[    0.272368] PCI: Using ACPI for IRQ routing
[    0.605362] PCI: pci_cache_line_size set to 64 bytes
[    0.605421] e820: reserve RAM buffer [mem 0xbd7f7000-0xbfffffff]
[    0.605425] e820: reserve RAM buffer [mem 0xbfb73000-0xbfffffff]
[    0.605549] vgaarb: loaded
[    0.606447] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
[    0.607098] hpet0: 4 comparators, 32-bit 14.318180 MHz counter
[    0.608543] clocksource: Switched to clocksource tsc-early
[    0.610424] VFS: Disk quotas dquot_6.6.0
[    0.611066] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.612296] AppArmor: AppArmor Filesystem Enabled
[    0.612928] pnp: PnP ACPI init
[    0.613227] system 00:00: [mem 0xe0000000-0xefffffff] has been reserved
[    0.614301] pnp: PnP ACPI: found 2 devices
[    0.630401] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[    0.631778] NET: Registered PF_INET protocol family
[    0.633207] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.653539] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.654701] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.655821] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.657196] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
[    0.658215] TCP: Hash tables configured (established 32768 bind 32768)
[    0.659136] MPTCP token hash table entries: 4096 (order: 4, 98304 bytes, linear)
[    0.660044] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.660971] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.661998] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.662708] NET: Registered PF_XDP protocol family
[    0.663383] pci 0000:00:1f.0: BAR 13: [io  size 0x0080] has bogus alignment
[    0.664401] pci_bus 0000:00: resource 4 [mem 0xc0000000-0xdfffffff window]
[    0.665258] pci_bus 0000:00: resource 5 [mem 0x140000000-0x93fffffff window]
[    0.666319] pci 0000:00:0f.0: can't derive routing for PCI INT A
[    0.667161] pci 0000:00:0f.0: PCI INT A: not connected
[    0.668016] PCI: CLS 0 bytes, default 64
[    0.668582] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    0.668853] Trying to unpack rootfs image as initramfs...
[    0.669443] software IO TLB: mapped [mem 0x00000000b35ec000-0x00000000b75ec000] (64MB)
[    0.670231] Initialise system trusted keyrings
[    0.672167] Key type blacklist registered
[    0.673270] workingset: timestamp_bits=36 max_order=20 bucket_order=0
[    0.674147] zbud: loaded
[    0.674992] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.676437] fuse: init (API version 7.40)
[    0.677956] integrity: Platform Keyring initialized
[    0.678605] integrity: Machine keyring initialized
[    0.687381] Key type asymmetric registered
[    0.687901] Asymmetric key parser 'x509' registered
[    0.688607] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    0.690211] io scheduler mq-deadline registered
[    0.692335] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
[    0.693378] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[    0.694392] ACPI: button: Power Button [PWRF]
[    0.696508] virtio-pci 0000:00:01.0: can't derive routing for PCI INT A
[    0.697424] virtio-pci 0000:00:01.0: PCI INT A: not connected
[    0.701961] virtio-pci 0000:00:05.0: can't derive routing for PCI INT A
[    0.702795] virtio-pci 0000:00:05.0: PCI INT A: not connected
[    0.707094] virtio-pci 0000:00:06.0: can't derive routing for PCI INT A
[    0.707928] virtio-pci 0000:00:06.0: PCI INT A: not connected
[    0.712068] virtio-pci 0000:00:07.0: can't derive routing for PCI INT A
[    0.712930] virtio-pci 0000:00:07.0: PCI INT A: not connected
[    0.717052] virtio-pci 0000:00:08.0: can't derive routing for PCI INT A
[    0.717908] virtio-pci 0000:00:08.0: PCI INT A: not connected
[    0.722000] virtio-pci 0000:00:09.0: can't derive routing for PCI INT A
[    0.723114] virtio-pci 0000:00:09.0: PCI INT A: not connected
[    0.728042] virtio-pci 0000:00:0a.0: can't derive routing for PCI INT A
[    0.728888] virtio-pci 0000:00:0a.0: PCI INT A: not connected
[    0.733070] virtio-pci 0000:00:0b.0: can't derive routing for PCI INT A
[    0.733922] virtio-pci 0000:00:0b.0: PCI INT A: not connected
[    0.739389] virtio-pci 0000:00:0c.0: can't derive routing for PCI INT A
[    0.740223] virtio-pci 0000:00:0c.0: PCI INT A: not connected
[    0.744266] virtio-pci 0000:00:0d.0: can't derive routing for PCI INT A
[    0.745113] virtio-pci 0000:00:0d.0: PCI INT A: not connected
[    0.749307] virtio-pci 0000:00:0e.0: can't derive routing for PCI INT A
[    0.750134] virtio-pci 0000:00:0e.0: PCI INT A: not connected
[    0.757123] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    0.770889] Linux agpgart interface v0.103
[    0.776834] loop: module loaded
[    0.777474] virtio_blk virtio2: 1/0/0 default/read/poll queues
[    0.779320] virtio_blk virtio2: [vda] 209715200 512-byte logical blocks (107 GB/100 GiB)
[    0.782288] GPT:Primary header thinks Alt. header is not at the end of the disk.
[    0.783219] GPT:7340031 != 209715199
[    0.783701] GPT:Alternate GPT header not at the end of the disk.
[    0.784464] GPT:7340031 != 209715199
[    0.785000] GPT: Use GNU Parted to correct GPT errors.
[    0.785739]  vda: vda1 vda13 vda14 vda15
[    0.787217] virtio_blk virtio3: 1/0/0 default/read/poll queues
[    0.789176] virtio_blk virtio3: [vdb] 545344 512-byte logical blocks (279 MB/266 MiB)
[    0.791806] ACPI: bus type drm_connector registered
[    0.792645] tun: Universal TUN/TAP device driver, 1.6
[    0.795633] PPP generic driver version 2.4.2
[    0.797109] i8042: PNP: No PS/2 controller found.
[    0.798134] mousedev: PS/2 mouse device common for all mice
[    0.799180] rtc_cmos 00:01: RTC can wake from S4
[    0.800748] rtc_cmos 00:01: registered as rtc0
[    0.801468] rtc_cmos 00:01: setting system clock to 2025-03-14T05:27:04 UTC (1741930024)
[    0.802651] rtc_cmos 00:01: alarms up to one day, y3k, 114 bytes nvram
[    0.803687] i2c_dev: i2c /dev entries driver
[    0.804299] device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log.
[    0.806025] device-mapper: uevent: version 1.0.3
[    0.806821] device-mapper: ioctl: 4.48.0-ioctl (2023-03-01) initialised: dm-devel@lists.linux.dev
[    0.808071] platform eisa.0: Probing EISA bus 0
[    0.808783] platform eisa.0: EISA: Detected 0 cards
[    0.809418] intel_pstate: CPU model not supported
[    0.810671] ledtrig-cpu: registered to indicate activity on CPUs
[    0.811568] drop_monitor: Initializing network drop monitor service
[    0.812542] NET: Registered PF_INET6 protocol family
[    0.827574] Freeing initrd memory: 27644K
[    0.839026] Segment Routing with IPv6
[    0.839519] In-situ OAM (IOAM) with IPv6
[    0.840099] NET: Registered PF_PACKET protocol family
[    0.841131] Key type dns_resolver registered
[    0.842982] IPI shorthand broadcast: enabled
[    0.845524] sched_clock: Marking stable (851347217, -6637871)->(996351949, -151642603)
[    0.847300] registered taskstats version 1
[    0.848895] Loading compiled-in X.509 certificates
[    0.850420] Loaded X.509 cert 'Build time autogenerated kernel key: 355ddc7b06bfa5cfbf65a55e3f570d2e22d083f5'
[    0.852202] Loaded X.509 cert 'Canonical Ltd. Live Patch Signing: 14df34d1a87cf37625abec039ef2bf521249b969'
[    0.854110] Loaded X.509 cert 'Canonical Ltd. Kernel Module Signing: 88f752e560a1e0737e31163a466ad7b70a850c19'
[    0.855600] blacklist: Loading compiled-in revocation X.509 certificates
[    0.856635] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing: 61482aa2830d0ab2ad5af10b7250da9033ddcef0'
[    0.857965] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2017): 242ade75ac4a15e50d50c84b0d45ff3eae707a03'
[    0.859330] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (ESM 2018): 365188c1d374d6b07c3c8f240f8ef722433d6a8b'
[    0.860746] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2019): c0746fd6c5da3ae827864651ad66ae47fe24b3e8'
[    0.862101] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v1): a8d54bbb3825cfb94fa13c9f8a594a195c107b8d'
[    0.863478] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v2): 4cf046892d6fd3c9a5b03f98d845f90851dc6a8c'
[    0.864870] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v3): 100437bb6de6e469b581e61cd66bce3ef4ed53af'
[    0.866253] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (Ubuntu Core 2019): c1d57b8f6b743f23ee41f4f7ee292f06eecadfb9'
[    0.874076] Demotion targets for Node 0: null
[    0.874985] Key type .fscrypt registered
[    0.875570] Key type fscrypt-provisioning registered
[    0.886909] cryptd: max_cpu_qlen set to 1000
[    0.894008] AES CTR mode by8 optimization enabled
[    0.911779] Key type encrypted registered
[    0.912356] AppArmor: AppArmor sha256 policy hashing enabled
[    0.913482] ima: No TPM chip found, activating TPM-bypass!
[    0.914181] Loading compiled-in module X.509 certificates
[    0.915379] Loaded X.509 cert 'Build time autogenerated kernel key: 355ddc7b06bfa5cfbf65a55e3f570d2e22d083f5'
[    0.916714] ima: Allocated hash algorithm: sha256
[    0.917337] ima: No architecture policies found
[    0.918003] evm: Initialising EVM extended attributes:
[    0.918726] evm: security.selinux
[    0.919151] evm: security.SMACK64
[    0.919572] evm: security.SMACK64EXEC
[    0.920113] evm: security.SMACK64TRANSMUTE
[    0.920628] evm: security.SMACK64MMAP
[    0.921130] evm: security.apparmor
[    0.921601] evm: security.ima
[    0.921986] evm: security.capability
[    0.922571] evm: HMAC attrs: 0x1
[    0.923764] PM:   Magic number: 1:487:466
[    0.928022] RAS: Correctable Errors collector initialized.
[    0.939275] clk: Disabling unused clocks
[    0.939782] PM: genpd: Disabling unused power domains
[    0.947633] Freeing unused decrypted memory: 2028K
[    0.949006] Freeing unused kernel image (initmem) memory: 4956K
[    0.949944] Write protecting the kernel read-only data: 38912k
[    0.951594] Freeing unused kernel image (rodata/data gap) memory: 1448K
[    0.995634] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    0.996440] x86/mm: Checking user space page tables
[    1.040433] x86/mm: Checked W+X mappings: passed, no W+X pages found.
[    1.041318] Run /init as init process
[    1.041820]   with arguments:
[    1.041821]     /init
[    1.041823]   with environment:
[    1.041824]     HOME=/
[    1.041824]     TERM=linux
[    1.041825]     BOOT_IMAGE=/vmlinuz-6.11.0-14-generic
[    1.142140] virtio_net virtio0 enp0s1: renamed from eth0
[    1.153165] xhci_hcd 0000:00:0f.0: can't derive routing for PCI INT A
[    1.154081] xhci_hcd 0000:00:0f.0: PCI INT A: no GSI
[    1.154832] xhci_hcd 0000:00:0f.0: xHCI Host Controller
[    1.155603] xhci_hcd 0000:00:0f.0: new USB bus registered, assigned bus number 1
[    1.157586] xhci_hcd 0000:00:0f.0: hcc params 0x02600001 hci version 0x110 quirks 0x0000000000000010
[    1.161719] xhci_hcd 0000:00:0f.0: xHCI Host Controller
[    1.162427] xhci_hcd 0000:00:0f.0: new USB bus registered, assigned bus number 2
[    1.165528] xhci_hcd 0000:00:0f.0: Host supports USB 3.1 Enhanced SuperSpeed
[    1.167200] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.11
[    1.168426] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.169585] usb usb1: Product: xHCI Host Controller
[    1.170246] usb usb1: Manufacturer: Linux 6.11.0-14-generic xhci-hcd
[    1.171272] usb usb1: SerialNumber: 0000:00:0f.0
[    1.173545] hub 1-0:1.0: USB hub found
[    1.175396] hub 1-0:1.0: 8 ports detected
[    1.176669] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    1.177836] usb usb2: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 6.11
[    1.178910] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.179853] usb usb2: Product: xHCI Host Controller
[    1.180470] usb usb2: Manufacturer: Linux 6.11.0-14-generic xhci-hcd
[    1.181318] usb usb2: SerialNumber: 0000:00:0f.0
[    1.182537] hub 2-0:1.0: USB hub found
[    1.183168] hub 2-0:1.0: 8 ports detected
[    1.412801] usb 1-1: new full-speed USB device number 2 using xhci_hcd
[    1.551758] usb 1-1: New USB device found, idVendor=05ac, idProduct=8105, bcdDevice= 0.00
[    1.556223] usb 1-1: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[    1.559233] usb 1-1: Product: Virtual USB Keyboard
[    1.561108] usb 1-1: Manufacturer: Apple Inc.
[    1.581042] hid: raw HID events driver (C) Jiri Kosina
[    1.586264] usbcore: registered new interface driver usbhid
[    1.587291] usbhid: USB HID core driver
[    1.591749] input: Apple Inc. Virtual USB Keyboard as /devices/pci0000:00/0000:00:0f.0/usb1/1-1/1-1:1.0/0003:05AC:8105.0001/input/input1
[    1.648243] hid-generic 0003:05AC:8105.0001: input,hidraw0: USB HID v1.10 Keyboard [Apple Inc. Virtual USB Keyboard] on usb-0000:00:0f.0-1/input0
[    1.681527] usb 1-2: new full-speed USB device number 3 using xhci_hcd
[    1.689581] tsc: Refined TSC clocksource calibration: 2304.000 MHz
[    1.690531] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2135f7c97c8, max_idle_ns: 440795273205 ns
[    1.692087] clocksource: Switched to clocksource tsc
[    1.814253] usb 1-2: New USB device found, idVendor=05ac, idProduct=8106, bcdDevice= 0.00
[    1.817478] usb 1-2: New USB device strings: Mfr=2, Product=3, SerialNumber=0
[    1.819921] usb 1-2: Product: Virtual USB Digitizer
[    1.821446] usb 1-2: Manufacturer: Apple Inc.
[    1.828056] input: Apple Inc. Virtual USB Digitizer as /devices/pci0000:00/0000:00:0f.0/usb1/1-2/1-2:1.0/0003:05AC:8106.0002/input/input2
[    1.832760] hid-generic 0003:05AC:8106.0002: input,hidraw1: USB HID v1.10 Mouse [Apple Inc. Virtual USB Digitizer] on usb-0000:00:0f.0-2/input0
[    2.329581] raid6: avx512x4 gen() 48541 MB/s
[    2.346669] raid6: avx512x2 gen() 52316 MB/s
[    2.363572] raid6: avx512x1 gen() 49056 MB/s
[    2.380595] raid6: avx2x4   gen() 38197 MB/s
[    2.397466] raid6: avx2x2   gen() 30292 MB/s
[    2.414625] raid6: avx2x1   gen() 30288 MB/s
[    2.415185] raid6: using algorithm avx512x2 gen() 52316 MB/s
[    2.432488] raid6: .... xor() 33875 MB/s, rmw enabled
[    2.433143] raid6: using avx512x2 recovery algorithm
[    2.435879] xor: automatically using best checksumming function   avx       
[    2.438210] async_tx: api initialized (async)
[    2.645368] Btrfs loaded, zoned=yes, fsverity=yes
[    2.705876] EXT4-fs (vda1): orphan cleanup on readonly fs
[    2.706728] EXT4-fs (vda1): mounted filesystem 687fc359-a4aa-4dc2-8ec2-31b6b601851d ro with ordered data mode. Quota mode: none.
[    2.836077] systemd[1]: Inserted module 'autofs4'
[    2.846120] NET: Registered PF_VSOCK protocol family
[    2.857329] virtiofs virtio4: virtio_fs_setup_dax: No cache capability
[    2.864527] virtiofs virtio5: virtio_fs_setup_dax: No cache capability
[    2.874076] systemd[1]: systemd 256.5-2ubuntu3.1 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT -GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBCRYPTSETUP_PLUGINS +LIBFDISK +PCRE2 +PWQUALITY +P11KIT +QRENCODE +TPM2 +BZIP2 +LZ4 +XZ +ZLIB +ZSTD +BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT +LIBARCHIVE)
[    2.878379] systemd[1]: Detected virtualization apple.
(...)

# cpuid -1
CPU:
   vendor_id = "GenuineIntel"
   version information (1/eax):
      processor type  = primary processor (0)
      family          = 0x6 (6)
      model           = 0xe (14)
      stepping id     = 0x5 (5)
      extended family = 0x0 (0)
      extended model  = 0x7 (7)
      (family synth)  = 0x6 (6)
      (model synth)   = 0x7e (126)
   miscellaneous (1/ebx):
      process local APIC physical ID = 0x0 (0)
      maximum IDs for CPUs in pkg    = 0x4 (4)
      CLFLUSH line size              = 0x8 (8)
      brand index                    = 0x0 (0)
   brand id = 0x00 (0): unknown
   feature information (1/edx):
      x87 FPU on chip                        = true
      VME: virtual-8086 mode enhancement     = true
      DE: debugging extensions               = true
      PSE: page size extensions              = true
      TSC: time stamp counter                = true
      RDMSR and WRMSR support                = true
      PAE: physical address extensions       = true
      MCE: machine check exception           = true
      CMPXCHG8B inst.                        = true
      APIC on chip                           = true
      SYSENTER and SYSEXIT                   = true
      MTRR: memory type range registers      = true
      PTE global bit                         = true
      MCA: machine check architecture        = true
      CMOV: conditional move/compare instr   = true
      PAT: page attribute table              = true
      PSE-36: page size extension            = true
      PSN: processor serial number           = false
      CLFLUSH instruction                    = true
      DS: debug store                        = false
      ACPI: thermal monitor and clock ctrl   = false
      MMX Technology                         = true
      FXSAVE/FXRSTOR                         = true
      SSE extensions                         = true
      SSE2 extensions                        = true
      SS: self snoop                         = false
      hyper-threading / multi-core supported = true
      TM: therm. monitor                     = false
      IA64                                   = false
      PBE: pending break event               = false
   feature information (1/ecx):
      PNI/SSE3: Prescott New Instructions     = true
      PCLMULDQ instruction                    = true
      DTES64: 64-bit debug store              = false
      MONITOR/MWAIT                           = false
      CPL-qualified debug store               = false
      VMX: virtual machine extensions         = false
      SMX: safer mode extensions              = false
      Enhanced Intel SpeedStep Technology     = false
      TM2: thermal monitor 2                  = false
      SSSE3 extensions                        = true
      context ID: adaptive or shared L1 data  = false
      SDBG: IA32_DEBUG_INTERFACE              = false
      FMA instruction                         = true
      CMPXCHG16B instruction                  = true
      xTPR disable                            = false
      PDCM: perfmon and debug                 = false
      PCID: process context identifiers       = true
      DCA: direct cache access                = false
      SSE4.1 extensions                       = true
      SSE4.2 extensions                       = true
      x2APIC: extended xAPIC support          = false
      MOVBE instruction                       = true
      POPCNT instruction                      = true
      time stamp counter deadline             = false
      AES instruction                         = true
      XSAVE/XSTOR states                      = true
      OS-enabled XSAVE/XSTOR                  = true
      AVX: advanced vector extensions         = true
      F16C half-precision convert instruction = true
      RDRAND instruction                      = true
      hypervisor guest status                 = true
   cache and TLB information (2):
      0xff: cache data is in CPUID leaf 4
      0xfe: TLB data is in CPUID leaf 0x18
      0xf0: 64 byte prefetching
   processor serial number = 0007-06E5-0000-0000-0000-0000
   deterministic cache parameters (4):
      --- cache 0 ---
      cache type                         = data cache (1)
      cache level                        = 0x1 (1)
      self-initializing cache level      = true
      fully associative cache            = false
      maximum IDs for CPUs sharing cache = 0x0 (0)
      maximum IDs for cores in pkg       = 0x3 (3)
      system coherency line size         = 0x40 (64)
      physical line partitions           = 0x1 (1)
      ways of associativity              = 0xc (12)
      number of sets                     = 0x40 (64)
      WBINVD/INVD acts on lower caches   = false
      inclusive to lower caches          = false
      complex cache indexing             = false
      number of sets (s)                 = 64
      (size synth)                       = 49152 (48 KB)
      --- cache 1 ---
      cache type                         = instruction cache (2)
      cache level                        = 0x1 (1)
      self-initializing cache level      = true
      fully associative cache            = false
      maximum IDs for CPUs sharing cache = 0x0 (0)
      maximum IDs for cores in pkg       = 0x3 (3)
      system coherency line size         = 0x40 (64)
      physical line partitions           = 0x1 (1)
      ways of associativity              = 0x8 (8)
      number of sets                     = 0x40 (64)
      WBINVD/INVD acts on lower caches   = false
      inclusive to lower caches          = false
      complex cache indexing             = false
      number of sets (s)                 = 64
      (size synth)                       = 32768 (32 KB)
      --- cache 2 ---
      cache type                         = unified cache (3)
      cache level                        = 0x2 (2)
      self-initializing cache level      = true
      fully associative cache            = false
      maximum IDs for CPUs sharing cache = 0x0 (0)
      maximum IDs for cores in pkg       = 0x3 (3)
      system coherency line size         = 0x40 (64)
      physical line partitions           = 0x1 (1)
      ways of associativity              = 0x8 (8)
      number of sets                     = 0x400 (1024)
      WBINVD/INVD acts on lower caches   = false
      inclusive to lower caches          = false
      complex cache indexing             = false
      number of sets (s)                 = 1024
      (size synth)                       = 524288 (512 KB)
      --- cache 3 ---
      cache type                         = unified cache (3)
      cache level                        = 0x3 (3)
      self-initializing cache level      = true
      fully associative cache            = false
      maximum IDs for CPUs sharing cache = 0x3 (3)
      maximum IDs for cores in pkg       = 0x3 (3)
      system coherency line size         = 0x40 (64)
      physical line partitions           = 0x1 (1)
      ways of associativity              = 0x10 (16)
      number of sets                     = 0x2000 (8192)
      WBINVD/INVD acts on lower caches   = false
      inclusive to lower caches          = true
      complex cache indexing             = true
      number of sets (s)                 = 8192
      (size synth)                       = 8388608 (8 MB)
      --- cache 4 ---
      cache type                         = no more caches (0)
   MONITOR/MWAIT (5):
      smallest monitor-line size (bytes)       = 0x40 (64)
      largest monitor-line size (bytes)        = 0x40 (64)
      enum of Monitor-MWAIT exts supported     = true
      supports intrs as break-event for MWAIT  = true
      monitorless MWAIT supported              = false
      number of C0 sub C-states using MWAIT    = 0x0 (0)
      number of C1 sub C-states using MWAIT    = 0x2 (2)
      number of C2 sub C-states using MWAIT    = 0x0 (0)
      number of C3 sub C-states using MWAIT    = 0x1 (1)
      number of C4 sub C-states using MWAIT    = 0x2 (2)
      number of C5 sub C-states using MWAIT    = 0x1 (1)
      number of C6 sub C-states using MWAIT    = 0x1 (1)
      number of C7 sub C-states using MWAIT    = 0x1 (1)
   Thermal and Power Management Features (6):
      digital thermometer                     = false
      Intel Turbo Boost Technology            = false
      ARAT always running APIC timer          = true
      PLN power limit notification            = false
      ECMD extended clock modulation duty     = false
      PTM package thermal management          = false
      HWP base registers                      = false
      HWP notification                        = false
      HWP activity window                     = false
      HWP energy performance preference       = false
      HWP package level request               = false
      HDC base registers                      = false
      Intel Turbo Boost Max Technology 3.0    = false
      HWP capabilities                        = false
      HWP PECI override                       = false
      flexible HWP                            = false
      IA32_HWP_REQUEST MSR fast access mode   = false
      HW_FEEDBACK MSRs supported              = false
      ignoring idle logical processor HWP req = false
      Thread Director                         = false
      IA32_HW_FEEDBACK_THREAD_CONFIG bit 25   = false
      digital thermometer thresholds          = 0x0 (0)
      hardware coordination feedback          = false
      ACNT2 available                         = false
      performance-energy bias capability      = false
      number of enh hardware feedback classes = 0x0 (0)
      performance capability reporting        = false
      energy efficiency capability reporting  = false
      size of feedback struct (4KB pages)     = 0x1 (1)
      index of CPU's row in feedback struct   = 0x0 (0)
   extended feature flags (7):
      FSGSBASE instructions                    = true
      IA32_TSC_ADJUST MSR supported            = false
      SGX: Software Guard Extensions supported = false
      BMI1 instructions                        = true
      HLE hardware lock elision                = false
      AVX2: advanced vector extensions 2       = true
      FDP_EXCPTN_ONLY                          = false
      SMEP supervisor mode exec protection     = true
      BMI2 instructions                        = true
      enhanced REP MOVSB/STOSB                 = true
      INVPCID instruction                      = false
      RTM: restricted transactional memory     = false
      RDT-CMT/PQoS cache monitoring            = false
      deprecated FPU CS/DS                     = false
      MPX: intel memory protection extensions  = false
      RDT-CAT/PQE cache allocation             = false
      AVX512F: AVX-512 foundation instructions = true
      AVX512DQ: double & quadword instructions = true
      RDSEED instruction                       = true
      ADX instructions                         = true
      SMAP: supervisor mode access prevention  = true
      AVX512IFMA: integer fused multiply add   = true
      PCOMMIT instruction                      = false
      CLFLUSHOPT instruction                   = true
      CLWB instruction                         = false
      Intel processor trace                    = false
      AVX512PF: prefetch instructions          = false
      AVX512ER: exponent & reciprocal instrs   = false
      AVX512CD: conflict detection instrs      = true
      SHA instructions                         = true
      AVX512BW: byte & word instructions       = true
      AVX512VL: vector length                  = true
      PREFETCHWT1                              = false
      AVX512VBMI: vector byte manipulation     = true
      UMIP: user-mode instruction prevention   = true
      PKU protection keys for user-mode        = true
      OSPKE CR4.PKE and RDPKRU/WRPKRU          = false
      WAITPKG instructions                     = false
      AVX512_VBMI2: byte VPCOMPRESS, VPEXPAND  = true
      CET_SS: CET shadow stack                 = false
      GFNI: Galois Field New Instructions      = false
      VAES instructions                        = false
      VPCLMULQDQ instruction                   = true
      AVX512_VNNI: neural network instructions = true
      AVX512_BITALG: bit count/shiffle         = true
      TME: Total Memory Encryption             = false
      AVX512: VPOPCNTDQ instruction            = true
      LA57: 57-bit addrs & 5-level paging      = false
      BNDLDX/BNDSTX MAWAU value in 64-bit mode = 0x0 (0)
      RDPID: read processor ID supported       = false
      KL: key locker                           = false
      bus lock detection                       = false
      CLDEMOTE supports cache line demote      = false
      MOVDIRI instruction                      = false
      MOVDIR64B instruction                    = false
      ENQCMD instruction                       = false
      SGX_LC: SGX launch config supported      = false
      PKS: supervisor protection keys          = false
      SGX-KEYS: SGX attestation services       = false
      AVX512_4VNNIW: neural network instrs     = false
      AVX512_4FMAPS: multiply acc single prec  = false
      fast short REP MOV                       = false
      UINTR: user interrupts                   = false
      AVX512_VP2INTERSECT: intersect mask regs = false
      IA32_MCU_OPT_CTRL SRBDS mitigation MSR   = false
      VERW MD_CLEAR microcode support          = false
      RTM transaction always aborts            = false
      IA32_TSX_FORCE_ABORT MSR                 = false
      SERIALIZE instruction                    = false
      hybrid part                              = false
      TSXLDTRK: TSX suspend load addr tracking = false
      PCONFIG instruction                      = false
      LBR: architectural last branch records   = false
      CET_IBT: CET indirect branch tracking    = false
      AMX-BF16: tile bfloat16 support          = false
      AVX512_FP16: fp16 support                = false
      AMX-TILE: tile architecture support      = false
      AMX-INT8: tile 8-bit integer support     = false
      IBRS/IBPB: indirect branch restrictions  = false
      STIBP: 1 thr indirect branch predictor   = false
      L1D_FLUSH: IA32_FLUSH_CMD MSR            = false
      IA32_ARCH_CAPABILITIES MSR               = false
      IA32_CORE_CAPABILITIES MSR               = false
      SSBD: speculative store bypass disable   = false
   Direct Cache Access Parameters (9):
      PLATFORM_DCA_CAP MSR bits = 0
   Architecture Performance Monitoring Features (0xa):
      version ID                               = 0x0 (0)
      number of counters per logical processor = 0x0 (0)
      bit width of counter                     = 0x0 (0)
      length of EBX bit vector                 = 0x0 (0)
      core cycle event                         = not available
      instruction retired event                = not available
      reference cycles event                   = not available
      last-level cache ref event               = not available
      last-level cache miss event              = not available
      branch inst retired event                = not available
      branch mispred retired event             = not available
      topdown slots event                      = not available
      topdown backend bound                    = not available
      topdown bad speculation                  = not available
      topdown frontend bound                   = not available
      topdown retiring                         = not available
      LBR inserts                              = not available
      fixed counter  0 supported               = false
      fixed counter  1 supported               = false
      fixed counter  2 supported               = false
      fixed counter  3 supported               = false
      fixed counter  4 supported               = false
      fixed counter  5 supported               = false
      fixed counter  6 supported               = false
      fixed counter  7 supported               = false
      fixed counter  8 supported               = false
      fixed counter  9 supported               = false
      fixed counter 10 supported               = false
      fixed counter 11 supported               = false
      fixed counter 12 supported               = false
      fixed counter 13 supported               = false
      fixed counter 14 supported               = false
      fixed counter 15 supported               = false
      fixed counter 16 supported               = false
      fixed counter 17 supported               = false
      fixed counter 18 supported               = false
      fixed counter 19 supported               = false
      fixed counter 20 supported               = false
      fixed counter 21 supported               = false
      fixed counter 22 supported               = false
      fixed counter 23 supported               = false
      fixed counter 24 supported               = false
      fixed counter 25 supported               = false
      fixed counter 26 supported               = false
      fixed counter 27 supported               = false
      fixed counter 28 supported               = false
      fixed counter 29 supported               = false
      fixed counter 30 supported               = false
      fixed counter 31 supported               = false
      number of contiguous fixed counters      = 0x0 (0)
      bit width of fixed counters              = 0x0 (0)
      anythread deprecation                    = false
   x2APIC features / processor topology (0xb):
      extended APIC ID                      = 0
      --- level 0 ---
      level number                          = 0x0 (0)
      level type                            = thread (1)
      bit width of level & previous levels  = 0x0 (0)
      number of logical processors at level = 0x1 (1)
      --- level 1 ---
      level number                          = 0x1 (1)
      level type                            = core (2)
      bit width of level & previous levels  = 0x2 (2)
      number of logical processors at level = 0x4 (4)
      --- level 2 ---
      level number                          = 0x2 (2)
      level type                            = invalid (0)
      bit width of level & previous levels  = 0x0 (0)
      number of logical processors at level = 0x0 (0)
   XSAVE features (0xd/0):
      XCR0 valid bit field mask               = 0x00000000000000e7
         x87 state                            = true
         SSE state                            = true
         AVX state                            = true
         MPX BNDREGS                          = false
         MPX BNDCSR                           = false
         AVX-512 opmask                       = true
         AVX-512 ZMM_Hi256                    = true
         AVX-512 Hi16_ZMM                     = true
         PKRU state                           = false
         XTILECFG state                       = false
         XTILEDATA state                      = false
      bytes required by fields in XCR0        = 0x00000a80 (2688)
      bytes required by XSAVE/XRSTOR area     = 0x00000a80 (2688)
      XSAVEOPT instruction                    = true
      XSAVEC instruction                      = true
      XGETBV instruction                      = true
      XSAVES/XRSTORS instructions             = false
      XFD: extended feature disable supported = false
      SAVE area size in bytes                 = 0x00000980 (2432)
      IA32_XSS valid bit field mask           = 0x0000000000000000
         PT state                             = false
         PASID state                          = false
         CET_U user state                     = false
         CET_S supervisor state               = false
         HDC state                            = false
         UINTR state                          = false
         LBR state                            = false
         HWP state                            = false
   AVX/YMM features (0xd/2):
      AVX/YMM save state byte size             = 0x00000100 (256)
      AVX/YMM save state byte offset           = 0x00000240 (576)
      supported in IA32_XSS or XCR0            = XCR0 (user state)
      64-byte alignment in compacted XSAVE     = false
      XFD faulting supported                   = false
   AVX-512 opmask features (0xd/5):
      AVX-512 opmask save state byte size      = 0x00000040 (64)
      AVX-512 opmask save state byte offset    = 0x00000440 (1088)
      supported in IA32_XSS or XCR0            = XCR0 (user state)
      64-byte alignment in compacted XSAVE     = false
      XFD faulting supported                   = false
   AVX-512 ZMM_Hi256 features (0xd/6):
      AVX-512 ZMM_Hi256 save state byte size   = 0x00000200 (512)
      AVX-512 ZMM_Hi256 save state byte offset = 0x00000480 (1152)
      supported in IA32_XSS or XCR0            = XCR0 (user state)
      64-byte alignment in compacted XSAVE     = false
      XFD faulting supported                   = false
   AVX-512 Hi16_ZMM features (0xd/7):
      AVX-512 Hi16_ZMM save state byte size    = 0x00000400 (1024)
      AVX-512 Hi16_ZMM save state byte offset  = 0x00000680 (1664)
      supported in IA32_XSS or XCR0            = XCR0 (user state)
      64-byte alignment in compacted XSAVE     = false
      XFD faulting supported                   = false
   Quality of Service Monitoring Resource Type (0xf/0):
      Maximum range of RMID = 0
      supports L3 cache monitoring = false
   Resource Director Technology Allocation (0x10/0):
      L3 cache allocation technology supported = false
      L2 cache allocation technology supported = false
      memory bandwidth allocation supported    = false
      cache bandwidth allocation supported     = false
   0x00000011 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   Software Guard Extensions (SGX) capability (0x12/0):
      SGX1 supported                           = false
      SGX2 supported                           = false
      SGX ENCLV E*VIRTCHILD, ESETCONTEXT       = false
      SGX ENCLS ETRACKC, ERDINFO, ELDBC, ELDUC = false
      SGX ENCLU EVERIFYREPORT2                 = false
      SGX ENCLS EUPDATESVN                     = false
      SGX ENCLU EDECCSSA                       = false
      MISCSELECT.EXINFO supported: #PF & #GP   = false
      MISCSELECT.CPINFO supported: #CP         = false
      MaxEnclaveSize_Not64 (log2)              = 0x0 (0)
      MaxEnclaveSize_64 (log2)                 = 0x0 (0)
   SGX attributes: ECREATE SECS.ATTRIBUTES (0x12/1):
      valid bit mask = 0x00000000000000000000000000000000
      enclave initialized by EINIT           = false
      enclave debugger read/write permission = false
      enclave 64-bit mode                    = false
      provisioning key available             = false
      EINIT token key available              = false
      CET attributes enabled                 = false
      KSS key separation & sharing enabled   = false
      AEX attribute enabled                  = false
      XFRM: XSAVE feature request mask       = 0x0000000000000000
         XCR0 supported: x87 state           = false
         XCR0 supported: SSE state           = false
         XCR0 supported: AVX state           = false
         XCR0 supported: MPX BNDREGS         = false
         XCR0 supported: MPX BNDCSR          = false
         XCR0 supported: AVX-512 opmask      = false
         XCR0 supported: AVX-512 ZMM_Hi256   = false
         XCR0 supported: AVX-512 Hi16_ZMM    = false
         IA32_XSS supported: PT state        = false
         XCR0 supported: PKRU state          = false
         XCR0 supported: CET_U state         = false
         XCR0 supported: CET_S state         = false
         IA32_XSS supported: HDC state       = false
         IA32_XSS supported: UINTR state     = false
         LBR supported                       = false
         IA32_XSS supported: HWP state       = false
         XTILECFG supported                  = false
         XTILEDATA supported                 = false
   SGX Enclave Page Cache (EPC) enumeration (0x12/0x2):
      type = invalid
   0x00000013 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   Intel Processor Trace (0x14):
      IA32_RTIT_CR3_MATCH is accessible      = false
      configurable PSB & cycle-accurate      = false
      IP & TraceStop filtering; PT preserve  = false
      MTC timing packet; suppress COFI-based = false
      PTWRITE support                        = false
      power event trace support              = false
      PSB/PMI preservation support           = false
      IA32_RTIT_CTL EventEn enable supported = false
      IA32_RTIT_CTL DisTNT disable supported = false
      PTTT processor trace trigger tracing   = false
      ToPA output scheme support             = false
      ToPA can hold many output entries      = false
      single-range output scheme support     = false
      output to trace transport              = false
      IP payloads have LIP values & CS       = false
   Time Stamp Counter/Core Crystal Clock Information (0x15):
      TSC/clock ratio = 0/0
      nominal core crystal clock = 0 Hz
   Processor Frequency Information (0x16):
      Core Base Frequency (MHz) = 0x0 (0)
      Core Maximum Frequency (MHz) = 0x0 (0)
      Bus (Reference) Frequency (MHz) = 0x0 (0)
   hypervisor_id (0x40000000) = "Apple VZ\0\0\0\0"
   0x40000001 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000002 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000003 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000004 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000005 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000006 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000007 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000008 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000009 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000a 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000b 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000c 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000d 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000e 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000f 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   hypervisor generic timing information (0x40000010):
      TSC frequency (Hz) = 2304000
      bus frequency (Hz) = 1000000
   hypervisor_id (0x40000100) = "\0\0\0\0\0\0\0\0\0\0\0\0"
   extended feature flags (0x80000001/edx):
      SYSCALL and SYSRET instructions        = true
      execution disable                      = true
      1-GB large page support                = false
      RDTSCP                                 = false
      64-bit extensions technology available = true
   Intel feature flags (0x80000001/ecx):
      LAHF/SAHF supported in 64-bit mode     = true
      LZCNT advanced bit manipulation        = true
      3DNow! PREFETCH/PREFETCHW instructions = true
   brand = "Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz"
   L1 TLB/cache information: 2M/4M pages & L1 TLB (0x80000005/eax):
      instruction # entries     = 0x0 (0)
      instruction associativity = 0x0 (0)
      data # entries            = 0x0 (0)
      data associativity        = 0x0 (0)
   L1 TLB/cache information: 4K pages & L1 TLB (0x80000005/ebx):
      instruction # entries     = 0x0 (0)
      instruction associativity = 0x0 (0)
      data # entries            = 0x0 (0)
      data associativity        = 0x0 (0)
   L1 data cache information (0x80000005/ecx):
      line size (bytes) = 0x0 (0)
      lines per tag     = 0x0 (0)
      associativity     = 0x0 (0)
      size (KB)         = 0x0 (0)
   L1 instruction cache information (0x80000005/edx):
      line size (bytes) = 0x0 (0)
      lines per tag     = 0x0 (0)
      associativity     = 0x0 (0)
      size (KB)         = 0x0 (0)
   L2 TLB/cache information: 2M/4M pages & L2 TLB (0x80000006/eax):
      instruction # entries     = 0x0 (0)
      instruction associativity = L2 off (0)
      data # entries            = 0x0 (0)
      data associativity        = L2 off (0)
   L2 TLB/cache information: 4K pages & L2 TLB (0x80000006/ebx):
      instruction # entries     = 0x0 (0)
      instruction associativity = L2 off (0)
      data # entries            = 0x0 (0)
      data associativity        = L2 off (0)
   L2 unified cache information (0x80000006/ecx):
      line size (bytes) = 0x40 (64)
      lines per tag     = 0x0 (0)
      associativity     = 8 to 15-way (6)
      size (KB)         = 0x100 (256)
   L3 cache information (0x80000006/edx):
      line size (bytes)     = 0x0 (0)
      lines per tag         = 0x0 (0)
      associativity         = L2 off (0)
      size (in 512KB units) = 0x0 (0)
   RAS Capability (0x80000007/ebx):
      MCA overflow recovery support = false
      SUCCOR support                = false
      HWA: hardware assert support  = false
      scalable MCA support          = false
   Advanced Power Management Features (0x80000007/ecx):
      CmpUnitPwrSampleTimeRatio = 0x0 (0)
   Advanced Power Management Features (0x80000007/edx):
      TS: temperature sensing diode           = false
      FID: frequency ID control               = false
      VID: voltage ID control                 = false
      TTP: thermal trip                       = false
      TM: thermal monitor                     = false
      STC: software thermal control           = false
      100 MHz multiplier control              = false
      hardware P-State control                = false
      TscInvariant                            = true
      CPB: core performance boost             = false
      read-only effective frequency interface = false
      processor feedback interface            = false
      APM power reporting                     = false
      connected standby                       = false
      RAPL: running average power limit       = false
   Physical Address and Linear Address Size (0x80000008/eax):
      maximum physical address bits         = 0x27 (39)
      maximum linear (virtual) address bits = 0x30 (48)
      maximum guest physical address bits   = 0x0 (0)
   Extended Feature Extensions ID (0x80000008/ebx):
      CLZERO instruction                       = false
      instructions retired count support       = false
      always save/restore error pointers       = false
      INVLPGB instruction                      = false
      RDPRU instruction                        = false
      memory bandwidth enforcement             = false
      MCOMMIT instruction                      = false
      WBNOINVD instruction                     = false
      IBPB: indirect branch prediction barrier = false
      interruptible WBINVD, WBNOINVD           = false
      IBRS: indirect branch restr speculation  = false
      STIBP: 1 thr indirect branch predictor   = false
      CPU prefers: IBRS always on              = false
      CPU prefers: STIBP always on             = false
      IBRS preferred over software solution    = false
      IBRS provides same mode protection       = false
      EFER[LMSLE] not supported                = false
      INVLPGB supports TLB flush guest nested  = false
      ppin processor id number supported       = false
      SSBD: speculative store bypass disable   = false
      virtualized SSBD                         = false
      SSBD fixed in hardware                   = false
      CPPC: collaborative processor perf ctrl  = false
      PSFD: predictive store forward disable   = false
      not vulnerable to branch type confusion  = false
      IBPB_RET: ret addr predictor cleared     = false
      branch sampling feature support          = false
      (vuln to branch type confusion synth)    = true
   Size Identifiers (0x80000008/ecx):
      number of CPU cores                 = 0x1 (1)
      ApicIdCoreIdSize                    = 0x0 (0)
      performance time-stamp counter size = 40 bits (0)
   Feature Extended Size (0x80000008/edx):
      max page count for INVLPGB instruction = 0x0 (0)
      RDPRU instruction max input support    = 0x0 (0)
   (instruction supported synth):
      MWAIT = false
   (multi-processing synth) = multi-core (c=4)
   (multi-processing method) = Intel leaf 0xb
   (APIC widths synth): CORE_width=2 SMT_width=0
   (APIC synth): PKG_ID=0 CORE_ID=0 SMT_ID=0
   (uarch synth) = Intel Sunny Cove {Sunny Cove}, 10nm+
   (synth) = Intel Core i*-10000 (Ice Lake-U/Y D1) [Sunny Cove] {Sunny Cove}, 10nm+

# cpuid -1 --raw
CPU:
   0x00000000 0x00: eax=0x00000016 ebx=0x756e6547 ecx=0x6c65746e edx=0x49656e69
   0x00000001 0x00: eax=0x000706e5 ebx=0x02040800 ecx=0xfeda3203 edx=0x178bfbff
   0x00000002 0x00: eax=0x00feff01 ebx=0x000000f0 ecx=0x00000000 edx=0x00000000
   0x00000003 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000004 0x00: eax=0x0c000121 ebx=0x02c0003f ecx=0x0000003f edx=0x00000000
   0x00000004 0x01: eax=0x0c000122 ebx=0x01c0003f ecx=0x0000003f edx=0x00000000
   0x00000004 0x02: eax=0x0c000143 ebx=0x01c0003f ecx=0x000003ff edx=0x00000000
   0x00000004 0x03: eax=0x0c00c163 ebx=0x03c0003f ecx=0x00001fff edx=0x00000006
   0x00000004 0x04: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000005 0x00: eax=0x00000040 ebx=0x00000040 ecx=0x00000003 edx=0x11121020
   0x00000006 0x00: eax=0x00000004 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000007 0x00: eax=0x00000000 ebx=0xf0bf03a9 ecx=0x00005c4e edx=0x00000000
   0x00000008 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000009 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x0000000a 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x0000000b 0x00: eax=0x00000000 ebx=0x00000001 ecx=0x00000100 edx=0x00000002
   0x0000000b 0x01: eax=0x00000002 ebx=0x00000004 ecx=0x00000201 edx=0x00000002
   0x0000000b 0x02: eax=0x00000000 ebx=0x00000000 ecx=0x00000002 edx=0x00000002
   0x0000000c 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x00: eax=0x000000e7 ebx=0x00000a80 ecx=0x00000a80 edx=0x00000000
   0x0000000d 0x01: eax=0x00000007 ebx=0x00000980 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x02: eax=0x00000100 ebx=0x00000240 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x05: eax=0x00000040 ebx=0x00000440 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x06: eax=0x00000200 ebx=0x00000480 ecx=0x00000000 edx=0x00000000
   0x0000000d 0x07: eax=0x00000400 ebx=0x00000680 ecx=0x00000000 edx=0x00000000
   0x0000000e 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x0000000f 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000010 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000011 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000012 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000012 0x01: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000012 0x02: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000013 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000014 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000015 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x00000016 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x20000000 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000000 0x00: eax=0x40000010 ebx=0x6c707041 ecx=0x5a562065 edx=0x00000000
   0x40000001 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000002 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000003 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000004 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000005 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000006 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000007 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000008 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000009 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000a 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000b 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000c 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000d 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000e 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x4000000f 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x40000010 0x00: eax=0x00232800 ebx=0x000f4240 ecx=0x00000000 edx=0x00000000
   0x40000100 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x80000000 0x00: eax=0x80000008 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x80000001 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000121 edx=0x20100800
   0x80000002 0x00: eax=0x65746e49 ebx=0x2952286c ecx=0x726f4320 edx=0x4d542865
   0x80000003 0x00: eax=0x37692029 ebx=0x3630312d ecx=0x37474e38 edx=0x55504320
   0x80000004 0x00: eax=0x32204020 ebx=0x4730332e ecx=0x00007a48 edx=0x00000000
   0x80000005 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x80000006 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x01006040 edx=0x00000000
   0x80000007 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000100
   0x80000008 0x00: eax=0x00003027 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0x80860000 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000
   0xc0000000 0x00: eax=0x00000000 ebx=0x00000000 ecx=0x00000000 edx=0x00000000

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2] x86: disable PKU when running on Apple Virtualization
  2025-03-12 10:09       ` [PATCH v2] " Akihiro Suda
                           ` (3 preceding siblings ...)
  2025-03-14  6:26         ` [PATCH v2] x86: disable " kernel test robot
@ 2025-03-14  6:26         ` kernel test robot
  4 siblings, 0 replies; 30+ messages in thread
From: kernel test robot @ 2025-03-14  6:26 UTC (permalink / raw)
  To: Akihiro Suda, linux-kernel
  Cc: llvm, oe-kbuild-all, x86, suda.kyoto, regressions,
	aruna.ramakrishna, tglx, Akihiro Suda

Hi Akihiro,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/x86/core]
[also build test ERROR on tip/master linus/master v6.14-rc6 next-20250313]
[cannot apply to tip/auto-latest]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Akihiro-Suda/x86-disable-PKU-when-running-on-Apple-Virtualization/20250312-181106
base:   tip/x86/core
patch link:    https://lore.kernel.org/r/20250312100926.34954-1-akihiro.suda.cz%40hco.ntt.co.jp
patch subject: [PATCH v2] x86: disable PKU when running on Apple Virtualization
config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20250314/202503141349.bpi8pvc4-lkp@intel.com/config)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250314/202503141349.bpi8pvc4-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503141349.bpi8pvc4-lkp@intel.com/

All errors (new ones prefixed by >>):

>> arch/x86/kernel/cpu/common.c:530:14: error: use of undeclared identifier 'acpi_gbl_FADT'
     530 |         if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
         |                     ^
   1 error generated.


vim +/acpi_gbl_FADT +530 arch/x86/kernel/cpu/common.c

   517	
   518	static __always_inline void setup_pku(struct cpuinfo_x86 *c)
   519	{
   520		/*
   521		 * OSPKE seems broken on Apple Virtualization.
   522		 * https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
   523		 *
   524		 * TODO: conditionally enable pku depending on the DMI BIOS version when Apple
   525		 * fixes the issue.
   526		 *
   527		 * However, this would be still not enough because DMI is missing when vmlinuz
   528		 * is directly loaded into VM.
   529		 */
 > 530		if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
   531			pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
   532			pku_disabled = true;
   533		}
   534	
   535		if (c == &boot_cpu_data) {
   536			if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
   537				return;
   538			/*
   539			 * Setting CR4.PKE will cause the X86_FEATURE_OSPKE cpuid
   540			 * bit to be set.  Enforce it.
   541			 */
   542			setup_force_cpu_cap(X86_FEATURE_OSPKE);
   543	
   544		} else if (!cpu_feature_enabled(X86_FEATURE_OSPKE)) {
   545			return;
   546		}
   547	
   548		cr4_set_bits(X86_CR4_PKE);
   549		/* Load the default PKRU value */
   550		pkru_write_default();
   551	}
   552	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH v2] x86: disable PKU when running on Apple Virtualization
  2025-03-12 10:09       ` [PATCH v2] " Akihiro Suda
                           ` (2 preceding siblings ...)
  2025-03-13 17:11         ` [tip: x86/urgent] x86/pkeys: Disable " tip-bot2 for Akihiro Suda
@ 2025-03-14  6:26         ` kernel test robot
  2025-03-14  6:26         ` kernel test robot
  4 siblings, 0 replies; 30+ messages in thread
From: kernel test robot @ 2025-03-14  6:26 UTC (permalink / raw)
  To: Akihiro Suda, linux-kernel
  Cc: oe-kbuild-all, x86, suda.kyoto, regressions, aruna.ramakrishna,
	tglx, Akihiro Suda

Hi Akihiro,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/x86/core]
[also build test ERROR on tip/master linus/master v6.14-rc6 next-20250313]
[cannot apply to tip/auto-latest]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Akihiro-Suda/x86-disable-PKU-when-running-on-Apple-Virtualization/20250312-181106
base:   tip/x86/core
patch link:    https://lore.kernel.org/r/20250312100926.34954-1-akihiro.suda.cz%40hco.ntt.co.jp
patch subject: [PATCH v2] x86: disable PKU when running on Apple Virtualization
config: i386-allnoconfig (https://download.01.org/0day-ci/archive/20250314/202503141345.LkDyBcmV-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250314/202503141345.LkDyBcmV-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202503141345.LkDyBcmV-lkp@intel.com/

All errors (new ones prefixed by >>):

   arch/x86/kernel/cpu/common.c: In function 'setup_pku':
>> arch/x86/kernel/cpu/common.c:530:21: error: 'acpi_gbl_FADT' undeclared (first use in this function); did you mean 'acpi_table_fadt'?
     530 |         if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
         |                     ^~~~~~~~~~~~~
         |                     acpi_table_fadt
   arch/x86/kernel/cpu/common.c:530:21: note: each undeclared identifier is reported only once for each function it appears in


vim +530 arch/x86/kernel/cpu/common.c

   517	
   518	static __always_inline void setup_pku(struct cpuinfo_x86 *c)
   519	{
   520		/*
   521		 * OSPKE seems broken on Apple Virtualization.
   522		 * https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
   523		 *
   524		 * TODO: conditionally enable pku depending on the DMI BIOS version when Apple
   525		 * fixes the issue.
   526		 *
   527		 * However, this would be still not enough because DMI is missing when vmlinuz
   528		 * is directly loaded into VM.
   529		 */
 > 530		if (!memcmp(acpi_gbl_FADT.header.oem_table_id, "Apple Vz", 8)) {
   531			pr_info("pku: disabled on Apple Virtualization platform (Intel) due to a bug\n");
   532			pku_disabled = true;
   533		}
   534	
   535		if (c == &boot_cpu_data) {
   536			if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
   537				return;
   538			/*
   539			 * Setting CR4.PKE will cause the X86_FEATURE_OSPKE cpuid
   540			 * bit to be set.  Enforce it.
   541			 */
   542			setup_force_cpu_cap(X86_FEATURE_OSPKE);
   543	
   544		} else if (!cpu_feature_enabled(X86_FEATURE_OSPKE)) {
   545			return;
   546		}
   547	
   548		cr4_set_bits(X86_CR4_PKE);
   549		/* Load the default PKRU value */
   550		pkru_write_default();
   551	}
   552	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing
  2025-03-14  6:22   ` Akihiro Suda
@ 2025-03-14  8:48     ` Akihiro Suda
  2025-03-14  8:49       ` kernel test robot
                         ` (3 more replies)
  2025-03-14 15:07     ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization Dave Hansen
  1 sibling, 4 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-14  8:48 UTC (permalink / raw)
  To: linux-kernel
  Cc: x86, stable, suda.kyoto, regressions, aruna.ramakrishna, tglx,
	Akihiro Suda

Even when X86_FEATURE_PKU and X86_FEATURE_OSPKE are available,
XFEATURE_PKRU can be missing.
In such a case, pkeys has to be disabled to avoid hanging up.

  WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
  (...)
  Call Trace:
   <TASK>
   ? get_xsave_addr_user+0x28/0x40
   ? __warn.cold+0x8e/0xea
   ? get_xsave_addr_user+0x28/0x40
   ? report_bug+0xff/0x140
   ? handle_bug+0x3b/0x70
   ? exc_invalid_op+0x17/0x70
   ? asm_exc_invalid_op+0x1a/0x20
   ? get_xsave_addr_user+0x28/0x40
   copy_fpstate_to_sigframe+0x1be/0x380
   ? __put_user_8+0x11/0x20
   get_sigframe+0xf1/0x280
   x64_setup_rt_frame+0x67/0x2c0
   arch_do_signal_or_restart+0x1b3/0x240
   syscall_exit_to_user_mode+0xb0/0x130
   do_syscall_64+0xab/0x1a0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

This fix is known to be needed on Apple Virtualization.
Tested with macOS 13.5.2 running on MacBook Pro 2020 with
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.

Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
Link: https://github.com/lima-vm/lima/issues/3334

Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
---
 arch/x86/kernel/cpu/common.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index e9464fe411ac..4c2c268af214 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -517,7 +517,8 @@ static bool pku_disabled;
 static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 {
 	if (c == &boot_cpu_data) {
-		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
+		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU) ||
+		    !cpu_has_xfeatures(XFEATURE_PKRU, NULL))
 			return;
 		/*
 		 * Setting CR4.PKE will cause the X86_FEATURE_OSPKE cpuid
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing
  2025-03-14  8:48     ` [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing Akihiro Suda
@ 2025-03-14  8:49       ` kernel test robot
  2025-03-19 21:00       ` [tip: x86/urgent] x86/pkeys: Add quirk to disable " tip-bot2 for Akihiro Suda
                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 30+ messages in thread
From: kernel test robot @ 2025-03-14  8:49 UTC (permalink / raw)
  To: Akihiro Suda; +Cc: stable, oe-kbuild-all

Hi,

Thanks for your patch.

FYI: kernel test robot notices the stable kernel rule is not satisfied.

The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#option-1

Rule: add the tag "Cc: stable@vger.kernel.org" in the sign-off area to have the patch automatically included in the stable tree.
Subject: [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing
Link: https://lore.kernel.org/stable/20250314084818.2826-1-akihiro.suda.cz%40hco.ntt.co.jp

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-14  6:22   ` Akihiro Suda
  2025-03-14  8:48     ` [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing Akihiro Suda
@ 2025-03-14 15:07     ` Dave Hansen
  2025-03-15 13:09       ` Akihiro Suda
  1 sibling, 1 reply; 30+ messages in thread
From: Dave Hansen @ 2025-03-14 15:07 UTC (permalink / raw)
  To: Akihiro Suda; +Cc: Linux Regressions, Linux x86, aruna.ramakrishna, tglx

On 3/13/25 23:22, Akihiro Suda wrote:
>> The warning here seems to be because the kernel thinks protections keys
>> is enabled (X86_FEATURE_OSPKE) but also thinks XSAVE management of
>> protection keys is _dis_abled. That's a valid hardware configuration,
>> but it's a configuration the kernel never expects to see.
> Right.
> The VM seems missing XSAVE feature 0x200: 'Protection Keys User
> registers', while it has ospke in cpuinfo.
> This configuration seems still weird, as both features seem missing on
> the macOS host.
> (See `physical-macos-host.txt`)

Yeah, so the CPU is enumerating support for protection keys but missing
XSAVE support for managing PKRU. We've envisioned the _reverse_
situation before, but not this specific scenario.

One option is to do nothing. Throw up our hands and declare the VMM so
broken that it's silly to go chasing a fix.

Another way to fix it is to throw this hunk in somewhere:

	if (!fpu_kernel_cfg.max_features & XFEATURE_PKRU) {
		setup_clear_cpu_cap(X86_FEATURE_PKU);
		setup_clear_cpu_cap(X86_FEATURE_OSPKE);
	}

but that's PKU-specific.

There are other features that would have similar issues if the VMM did
something similar for them, like:

        [XFEATURE_PASID]                        = X86_FEATURE_ENQCMD,
        [XFEATURE_CET_USER]                     = X86_FEATURE_SHSTK,

which kinda calls for a more generic solution like:

diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
index 0bab497c94369..a358d45c781ec 100644
--- a/arch/x86/kernel/fpu/xstate.c
+++ b/arch/x86/kernel/fpu/xstate.c
@@ -800,6 +800,10 @@ void __init fpu__init_system_xstate(unsigned int
legacy_size)
 		/* Careful: X86_FEATURE_FPU is 0! */
 		if ((i != XFEATURE_FP && !cid) || !boot_cpu_has(cid))
 			fpu_kernel_cfg.max_features &= ~BIT_ULL(i);
+
+		if (!(fpu_kernel_cfg.max_features & BIT_ULL(i)) &&
+		    boot_cpu_has(cid))
+			setup_clear_cpu_cap(cid);
 	}

 	if (!cpu_feature_enabled(X86_FEATURE_XFD))

Which leads me back to thinking that doing nothing may be the best
approach here.

Let me noodle on it a bit more.

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-14 15:07     ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization Dave Hansen
@ 2025-03-15 13:09       ` Akihiro Suda
  2025-03-15 13:48         ` Borislav Petkov
  2025-03-15 18:45         ` Dave Hansen
  0 siblings, 2 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-15 13:09 UTC (permalink / raw)
  To: Dave Hansen; +Cc: Linux Regressions, Linux x86, aruna.ramakrishna, tglx

> Which leads me back to thinking that doing nothing may be the best
> approach here.

There is a huge demand in the macOS community to run Linux virtual
machines without modifying the kernel cmdline.

Any chance to just merge "[PATCH] x86/pkeys: Disable PKU when
XFEATURE_PKRU is missing"?
(This revision checks the XCR0 flag, not the ACPI vendor string)
https://lore.kernel.org/regressions/20250314084818.2826-1-akihiro.suda.cz@hco.ntt.co.jp/T/#u

I have also sent a suggestion to Apple to either implement PKRU, or
drop OSPKE from cpuinfo, but it may take a while until they ship a
fix.
Also, some users do not want to update the host operating system.
So it would be nice to have a workaround in the Linux guests as well.

2025年3月15日(土) 0:07 Dave Hansen <dave.hansen@intel.com>:
>
> On 3/13/25 23:22, Akihiro Suda wrote:
> >> The warning here seems to be because the kernel thinks protections keys
> >> is enabled (X86_FEATURE_OSPKE) but also thinks XSAVE management of
> >> protection keys is _dis_abled. That's a valid hardware configuration,
> >> but it's a configuration the kernel never expects to see.
> > Right.
> > The VM seems missing XSAVE feature 0x200: 'Protection Keys User
> > registers', while it has ospke in cpuinfo.
> > This configuration seems still weird, as both features seem missing on
> > the macOS host.
> > (See `physical-macos-host.txt`)
>
> Yeah, so the CPU is enumerating support for protection keys but missing
> XSAVE support for managing PKRU. We've envisioned the _reverse_
> situation before, but not this specific scenario.
>
> One option is to do nothing. Throw up our hands and declare the VMM so
> broken that it's silly to go chasing a fix.
>
> Another way to fix it is to throw this hunk in somewhere:
>
>         if (!fpu_kernel_cfg.max_features & XFEATURE_PKRU) {
>                 setup_clear_cpu_cap(X86_FEATURE_PKU);
>                 setup_clear_cpu_cap(X86_FEATURE_OSPKE);
>         }
>
> but that's PKU-specific.
>
> There are other features that would have similar issues if the VMM did
> something similar for them, like:
>
>         [XFEATURE_PASID]                        = X86_FEATURE_ENQCMD,
>         [XFEATURE_CET_USER]                     = X86_FEATURE_SHSTK,
>
> which kinda calls for a more generic solution like:
>
> diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
> index 0bab497c94369..a358d45c781ec 100644
> --- a/arch/x86/kernel/fpu/xstate.c
> +++ b/arch/x86/kernel/fpu/xstate.c
> @@ -800,6 +800,10 @@ void __init fpu__init_system_xstate(unsigned int
> legacy_size)
>                 /* Careful: X86_FEATURE_FPU is 0! */
>                 if ((i != XFEATURE_FP && !cid) || !boot_cpu_has(cid))
>                         fpu_kernel_cfg.max_features &= ~BIT_ULL(i);
> +
> +               if (!(fpu_kernel_cfg.max_features & BIT_ULL(i)) &&
> +                   boot_cpu_has(cid))
> +                       setup_clear_cpu_cap(cid);
>         }
>
>         if (!cpu_feature_enabled(X86_FEATURE_XFD))
>
> Which leads me back to thinking that doing nothing may be the best
> approach here.
>
> Let me noodle on it a bit more.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-15 13:09       ` Akihiro Suda
@ 2025-03-15 13:48         ` Borislav Petkov
  2025-03-15 15:10           ` Akihiro Suda
  2025-03-15 18:45         ` Dave Hansen
  1 sibling, 1 reply; 30+ messages in thread
From: Borislav Petkov @ 2025-03-15 13:48 UTC (permalink / raw)
  To: Akihiro Suda
  Cc: Dave Hansen, Linux Regressions, Linux x86, aruna.ramakrishna,
	tglx

On Sat, Mar 15, 2025 at 10:09:29PM +0900, Akihiro Suda wrote:
> There is a huge demand in the macOS community to run Linux virtual
> machines without modifying the kernel cmdline.

Why?

Why is it so hard to add a cmdline switch for something which is clearly
broken?

> Also, some users do not want to update the host operating system.

So if there are security updates, they don't want to update either? I guess
their problem...

> So it would be nice to have a workaround in the Linux guests as well.

What do we do the next time they mis-read the architecture? We add a fix to
Linux again because the kernel is apparently the most flexible component in
such a scenario? IOW, we wag the dog?

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-15 13:48         ` Borislav Petkov
@ 2025-03-15 15:10           ` Akihiro Suda
  2025-03-15 19:02             ` Borislav Petkov
  0 siblings, 1 reply; 30+ messages in thread
From: Akihiro Suda @ 2025-03-15 15:10 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Dave Hansen, Linux Regressions, Linux x86, aruna.ramakrishna,
	tglx

> Why is it so hard to add a cmdline switch for something which is clearly
> broken?

This is quite hard in practice, because there is no good tool that
mounts QCOW2 + LVM + ext4/XFS/btrfs/zfs/... to modify grub.cfg (or
whatever else) inside it.

Directly booting vmlinuz + initrd without GRUB is not an option,
because apt/dnf will not upgrade the actual kernel while it will wipe
out /lib/modules/$(uname -r) after installing a new kernel in /boot in
the disk image that is unused for booting.


> So if there are security updates, they don't want to update either? I guess
> their problem...

This might be questionable, as not every vulnerability is exploitable
on every environment, and an update may potentially have a regression,
or even have a new vulnerability.

Eventually they will have to accept installing the update, but it is
not always something that they must rush.


> What do we do the next time they mis-read the architecture? We add a fix to
> Linux again because the kernel is apparently the most flexible component in
> such a scenario? IOW, we wag the dog?

Actually we had already added such a fix in the past, for another issue.

36e4fc5  "efi: Bump stub image version for macOS HVF compatibility"
https://lore.kernel.org/linux-efi/CAHk-=whKJoDVuUNhf3U7gPXKu4EeZRv-iwwhL0prQ=U3n8PHiw@mail.gmail.com/

2025年3月15日(土) 22:49 Borislav Petkov <bp@alien8.de>:
>
> On Sat, Mar 15, 2025 at 10:09:29PM +0900, Akihiro Suda wrote:
> > There is a huge demand in the macOS community to run Linux virtual
> > machines without modifying the kernel cmdline.
>
> Why?
>
> Why is it so hard to add a cmdline switch for something which is clearly
> broken?
>
> > Also, some users do not want to update the host operating system.
>
> So if there are security updates, they don't want to update either? I guess
> their problem...
>
> > So it would be nice to have a workaround in the Linux guests as well.
>
> What do we do the next time they mis-read the architecture? We add a fix to
> Linux again because the kernel is apparently the most flexible component in
> such a scenario? IOW, we wag the dog?
>
> --
> Regards/Gruss,
>     Boris.
>
> https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-15 13:09       ` Akihiro Suda
  2025-03-15 13:48         ` Borislav Petkov
@ 2025-03-15 18:45         ` Dave Hansen
  1 sibling, 0 replies; 30+ messages in thread
From: Dave Hansen @ 2025-03-15 18:45 UTC (permalink / raw)
  To: Akihiro Suda; +Cc: Linux Regressions, Linux x86, aruna.ramakrishna, tglx

On 3/15/25 06:09, Akihiro Suda wrote:
> Any chance to just merge "[PATCH] x86/pkeys: Disable PKU when
> XFEATURE_PKRU is missing"?
> (This revision checks the XCR0 flag, not the ACPI vendor string)
> https://lore.kernel.org/regressions/20250314084818.2826-1-
> akihiro.suda.cz@hco.ntt.co.jp/T/#u

Does that even work? X86_FEATURE_OSPKE isn't enumerated until setting
CR4.PKE. The XSAVE setup code (fpu__init_system_xstate()) looks at
X86_FEATURE_OSPKE, so *MUST* run after setup_pku(), right? Before
fpu__init_system_xstate(), cpu_has_xfeatures() doesn't work.

Even if that patch worked, I don't think it's the right solution.

We'd have this problem for any feature that depends on XSAVE
(ENQCMD/PASID, CET, AMX, AVX and even SSE) if the ISA feature was
enumerated but XSAVE support was not.

So if someone is interested in putting together a patch that would solve
this problem for all features, forever, I'd be interested. But I don't
think we should have a targeted PKRU-specific fix. A generic fix would
just be (famous last words) a matter of taking xsave_cpuid_features[]
and enforcing the dependency in both directions. Not just:

	* If you don't have X86_FEATURE_OSPKE, don't support
	  XFEATURE_PKRU

but also the inverse:

	* If you don't support XFEATURE_PKRU, then don't support
	  X86_FEATURE_OSPKE

It would likely be simpler to be quite tyrannical about it and do
fpu__init_disable_system_xstate() if any of this nonsense is detected
rather than trying to disable features or be fancy and recover.
Basically, if something goes wrong, disable XSAVE and limp along.

The other _debatable_ thing (in addition to disabling XSAVE) is if this
check is really correct:

static inline int update_pkru_in_sigframe(...)
{
...
        if (unlikely(!cpu_feature_enabled(X86_FEATURE_OSPKE)))
                return 0;

It _could_ arguably be:

	if (!fpstate->user_xfeatures & XFEATURE_MASK_PKRU))
		return 0;

Which is a better check than fpu_user_cfg.max_features (or
.default_features) because it's more specific to the _current_ task and
would, for instance, work for the AMX xfeatures.

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization
  2025-03-15 15:10           ` Akihiro Suda
@ 2025-03-15 19:02             ` Borislav Petkov
  0 siblings, 0 replies; 30+ messages in thread
From: Borislav Petkov @ 2025-03-15 19:02 UTC (permalink / raw)
  To: Akihiro Suda
  Cc: Dave Hansen, Linux Regressions, Linux x86, aruna.ramakrishna,
	tglx

On Sun, Mar 16, 2025 at 12:10:32AM +0900, Akihiro Suda wrote:
> > Why is it so hard to add a cmdline switch for something which is clearly
> > broken?
> 
> This is quite hard in practice, because there is no good tool that
> mounts QCOW2 + LVM + ext4/XFS/btrfs/zfs/... to modify grub.cfg (or
> whatever else) inside it.

I don't buy it that all those linux kernels which are loaded on an apple HV
all can't handle supplying cmdline options. If they can't, then tough luck.

> This might be questionable, as not every vulnerability is exploitable
> on every environment, and an update may potentially have a regression,
> or even have a new vulnerability.

What's questionable is your argument here - all those gazillion apple users
out there do get updates installed automatically, I guess, and no one's even
asking them.

> Actually we had already added such a fix in the past, for another issue.
> 
> 36e4fc5  "efi: Bump stub image version for macOS HVF compatibility"
> https://lore.kernel.org/linux-efi/CAHk-=whKJoDVuUNhf3U7gPXKu4EeZRv-iwwhL0prQ=U3n8PHiw@mail.gmail.com/

This is actually proving my point - apple didn't fix that crap back then and
the fix remained in Linux because, well, Linux is the only thing that is
flexible enough and no one at apple cares about compatibility with Linux or
whatnot.

IOW, and IIUC, nothing will change. Apple won't fix their HV and we will
have to carry crap like that in Linux simply forever.

I don't think we care, frankly...

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [tip: x86/urgent] x86/pkeys: Add quirk to disable PKU when XFEATURE_PKRU is missing
  2025-03-14  8:48     ` [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing Akihiro Suda
  2025-03-14  8:49       ` kernel test robot
@ 2025-03-19 21:00       ` tip-bot2 for Akihiro Suda
  2025-03-19 21:39       ` [PATCH] x86/pkeys: Disable " Ingo Molnar
  2025-03-19 22:11       ` [tip: x86/urgent] x86/pkeys: Add quirk to disable " tip-bot2 for Akihiro Suda
  3 siblings, 0 replies; 30+ messages in thread
From: tip-bot2 for Akihiro Suda @ 2025-03-19 21:00 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Akihiro Suda, Ingo Molnar, Dave Hansen, Linus Torvalds, x86,
	linux-kernel

The following commit has been merged into the x86/urgent branch of tip:

Commit-ID:     2ae30fa4ee58535d122f79c6860fbbab87b20b06
Gitweb:        https://git.kernel.org/tip/2ae30fa4ee58535d122f79c6860fbbab87b20b06
Author:        Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
AuthorDate:    Fri, 14 Mar 2025 17:48:18 +09:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 19 Mar 2025 21:47:11 +01:00

x86/pkeys: Add quirk to disable PKU when XFEATURE_PKRU is missing

Even when X86_FEATURE_PKU and X86_FEATURE_OSPKE are available,
XFEATURE_PKRU can be missing on some popular VM environments
such as Apple Virtualization.

In such a case, pkeys has to be disabled to avoid a boot time hang:

  WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
  (...)
  Call Trace:
   <TASK>
   ? get_xsave_addr_user+0x28/0x40
   ? __warn.cold+0x8e/0xea
   ? get_xsave_addr_user+0x28/0x40
   ? report_bug+0xff/0x140
   ? handle_bug+0x3b/0x70
   ? exc_invalid_op+0x17/0x70
   ? asm_exc_invalid_op+0x1a/0x20
   ? get_xsave_addr_user+0x28/0x40
   copy_fpstate_to_sigframe+0x1be/0x380
   ? __put_user_8+0x11/0x20
   get_sigframe+0xf1/0x280
   x64_setup_rt_frame+0x67/0x2c0
   arch_do_signal_or_restart+0x1b3/0x240
   syscall_exit_to_user_mode+0xb0/0x130
   do_syscall_64+0xab/0x1a0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

Tested with MacOS 13.5.2 running on MacBook Pro 2020 with
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.

Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250314084818.2826-1-akihiro.suda.cz@hco.ntt.co.jp
---
 arch/x86/kernel/cpu/common.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 7cce91b..5def904 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -517,7 +517,8 @@ static bool pku_disabled;
 static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 {
 	if (c == &boot_cpu_data) {
-		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
+		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU) ||
+		    !cpu_has_xfeatures(XFEATURE_PKRU, NULL))
 			return;
 		/*
 		 * Setting CR4.PKE will cause the X86_FEATURE_OSPKE cpuid

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing
  2025-03-14  8:48     ` [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing Akihiro Suda
  2025-03-14  8:49       ` kernel test robot
  2025-03-19 21:00       ` [tip: x86/urgent] x86/pkeys: Add quirk to disable " tip-bot2 for Akihiro Suda
@ 2025-03-19 21:39       ` Ingo Molnar
  2025-03-20 14:21         ` Akihiro Suda
  2025-03-20 15:11         ` Borislav Petkov
  2025-03-19 22:11       ` [tip: x86/urgent] x86/pkeys: Add quirk to disable " tip-bot2 for Akihiro Suda
  3 siblings, 2 replies; 30+ messages in thread
From: Ingo Molnar @ 2025-03-19 21:39 UTC (permalink / raw)
  To: Akihiro Suda
  Cc: linux-kernel, x86, stable, suda.kyoto, regressions,
	aruna.ramakrishna, tglx, Akihiro Suda


* Akihiro Suda <suda.gitsendemail@gmail.com> wrote:

> Even when X86_FEATURE_PKU and X86_FEATURE_OSPKE are available,
> XFEATURE_PKRU can be missing.
> In such a case, pkeys has to be disabled to avoid hanging up.
> 
>   WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
>   (...)
>   Call Trace:
>    <TASK>
>    ? get_xsave_addr_user+0x28/0x40
>    ? __warn.cold+0x8e/0xea
>    ? get_xsave_addr_user+0x28/0x40
>    ? report_bug+0xff/0x140
>    ? handle_bug+0x3b/0x70
>    ? exc_invalid_op+0x17/0x70
>    ? asm_exc_invalid_op+0x1a/0x20
>    ? get_xsave_addr_user+0x28/0x40
>    copy_fpstate_to_sigframe+0x1be/0x380
>    ? __put_user_8+0x11/0x20
>    get_sigframe+0xf1/0x280
>    x64_setup_rt_frame+0x67/0x2c0
>    arch_do_signal_or_restart+0x1b3/0x240
>    syscall_exit_to_user_mode+0xb0/0x130
>    do_syscall_64+0xab/0x1a0
>    entry_SYSCALL_64_after_hwframe+0x77/0x7f
> 
> This fix is known to be needed on Apple Virtualization.
> Tested with macOS 13.5.2 running on MacBook Pro 2020 with
> Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.
> 
> Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
> Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
> Link: https://github.com/lima-vm/lima/issues/3334
> 
> Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
> ---
>  arch/x86/kernel/cpu/common.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> index e9464fe411ac..4c2c268af214 100644
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -517,7 +517,8 @@ static bool pku_disabled;
>  static __always_inline void setup_pku(struct cpuinfo_x86 *c)
>  {
>  	if (c == &boot_cpu_data) {
> -		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
> +		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU) ||
> +		    !cpu_has_xfeatures(XFEATURE_PKRU, NULL))
>  			return;

Note that silent quirks are counterproductive, as they don't give VM 
vendors any incentives to fix their VM for such bugs.

So I changed your quirk to be:

--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -519,6 +519,17 @@ static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 	if (c == &boot_cpu_data) {
 		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
 			return;
+		if (!cpu_has_xfeatures(XFEATURE_PKRU, NULL)) {
+			/*
+			 * Missing XFEATURE_PKRU is not really a valid CPU
+			 * configuration at this point, but apparently
+			 * Apple Virtualization is affected by this,
+			 * so return with a FW warning instead of crashing
+			 * the bootup:
+			 */
+			WARN_ONCE(1, FW_BUG "Invalid XFEATURE_PKRU configuration.\n");
+			return;
+		}
 		/*
 		 * Setting CR4.PKE will cause the X86_FEATURE_OSPKE cpuid
 		 * bit to be set.  Enforce it.

This is noisy in the syslog, but it's a WARN_ONCE() and it doesn't 
crash the bootup.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 30+ messages in thread

* [tip: x86/urgent] x86/pkeys: Add quirk to disable PKU when XFEATURE_PKRU is missing
  2025-03-14  8:48     ` [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing Akihiro Suda
                         ` (2 preceding siblings ...)
  2025-03-19 21:39       ` [PATCH] x86/pkeys: Disable " Ingo Molnar
@ 2025-03-19 22:11       ` tip-bot2 for Akihiro Suda
  3 siblings, 0 replies; 30+ messages in thread
From: tip-bot2 for Akihiro Suda @ 2025-03-19 22:11 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: Akihiro Suda, Ingo Molnar, Dave Hansen, Linus Torvalds, x86,
	linux-kernel

The following commit has been merged into the x86/urgent branch of tip:

Commit-ID:     86049b4cf7a41cc5b33a556fc25772cc325f474f
Gitweb:        https://git.kernel.org/tip/86049b4cf7a41cc5b33a556fc25772cc325f474f
Author:        Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
AuthorDate:    Fri, 14 Mar 2025 17:48:18 +09:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 19 Mar 2025 22:37:32 +01:00

x86/pkeys: Add quirk to disable PKU when XFEATURE_PKRU is missing

Even when X86_FEATURE_PKU and X86_FEATURE_OSPKE are available,
XFEATURE_PKRU can be missing on some popular VM environments
such as Apple Virtualization.

In such a case, pkeys has to be disabled to avoid a boot time hang:

  WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
  (...)
  Call Trace:
   <TASK>
   ? get_xsave_addr_user+0x28/0x40
   ? __warn.cold+0x8e/0xea
   ? get_xsave_addr_user+0x28/0x40
   ? report_bug+0xff/0x140
   ? handle_bug+0x3b/0x70
   ? exc_invalid_op+0x17/0x70
   ? asm_exc_invalid_op+0x1a/0x20
   ? get_xsave_addr_user+0x28/0x40
   copy_fpstate_to_sigframe+0x1be/0x380
   ? __put_user_8+0x11/0x20
   get_sigframe+0xf1/0x280
   x64_setup_rt_frame+0x67/0x2c0
   arch_do_signal_or_restart+0x1b3/0x240
   syscall_exit_to_user_mode+0xb0/0x130
   do_syscall_64+0xab/0x1a0
   entry_SYSCALL_64_after_hwframe+0x77/0x7f

Tested with MacOS 13.5.2 running on MacBook Pro 2020 with
Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.

[ mingo: Issue a boot time warning to give VMs a chance to fix this. ]

Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/20250314084818.2826-1-akihiro.suda.cz@hco.ntt.co.jp
---
 arch/x86/kernel/cpu/common.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 7cce91b..4e6cf0b 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -519,6 +519,17 @@ static __always_inline void setup_pku(struct cpuinfo_x86 *c)
 	if (c == &boot_cpu_data) {
 		if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
 			return;
+		if (!cpu_has_xfeatures(XFEATURE_PKRU, NULL)) {
+			/*
+			 * Missing XFEATURE_PKRU is not really a valid
+			 * configuration at this point, but apparently
+			 * Apple Virtualization is affected by this,
+			 * so return with a FW warning instead of crashing
+			 * the bootup:
+			 */
+			WARN_ONCE(1, FW_BUG "Invalid XFEATURE_PKRU configuration.\n");
+			return;
+		}
 		/*
 		 * Setting CR4.PKE will cause the X86_FEATURE_OSPKE cpuid
 		 * bit to be set.  Enforce it.

^ permalink raw reply related	[flat|nested] 30+ messages in thread

* Re: [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing
  2025-03-19 21:39       ` [PATCH] x86/pkeys: Disable " Ingo Molnar
@ 2025-03-20 14:21         ` Akihiro Suda
  2025-03-20 15:11         ` Borislav Petkov
  1 sibling, 0 replies; 30+ messages in thread
From: Akihiro Suda @ 2025-03-20 14:21 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Akihiro Suda, linux-kernel, x86, stable, regressions,
	aruna.ramakrishna, tglx, Akihiro Suda

Thanks Ingo, but we may have to reconsider whether cpu_has_xfeatures
works in this place
https://lore.kernel.org/all/1b8745e0-ae80-4add-b015-affdaa69b369@intel.com/

The current code might be accidentally disabling PKU on other
PKU-compatible environments?

2025年3月20日(木) 6:39 Ingo Molnar <mingo@kernel.org>:
>
>
> * Akihiro Suda <suda.gitsendemail@gmail.com> wrote:
>
> > Even when X86_FEATURE_PKU and X86_FEATURE_OSPKE are available,
> > XFEATURE_PKRU can be missing.
> > In such a case, pkeys has to be disabled to avoid hanging up.
> >
> >   WARNING: CPU: 0 PID: 1 at arch/x86/kernel/fpu/xstate.c:1003 get_xsave_addr_user+0x28/0x40
> >   (...)
> >   Call Trace:
> >    <TASK>
> >    ? get_xsave_addr_user+0x28/0x40
> >    ? __warn.cold+0x8e/0xea
> >    ? get_xsave_addr_user+0x28/0x40
> >    ? report_bug+0xff/0x140
> >    ? handle_bug+0x3b/0x70
> >    ? exc_invalid_op+0x17/0x70
> >    ? asm_exc_invalid_op+0x1a/0x20
> >    ? get_xsave_addr_user+0x28/0x40
> >    copy_fpstate_to_sigframe+0x1be/0x380
> >    ? __put_user_8+0x11/0x20
> >    get_sigframe+0xf1/0x280
> >    x64_setup_rt_frame+0x67/0x2c0
> >    arch_do_signal_or_restart+0x1b3/0x240
> >    syscall_exit_to_user_mode+0xb0/0x130
> >    do_syscall_64+0xab/0x1a0
> >    entry_SYSCALL_64_after_hwframe+0x77/0x7f
> >
> > This fix is known to be needed on Apple Virtualization.
> > Tested with macOS 13.5.2 running on MacBook Pro 2020 with
> > Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz.
> >
> > Fixes: 70044df250d0 ("x86/pkeys: Update PKRU to enable all pkeys before XSAVE")
> > Link: https://lore.kernel.org/regressions/CAG8fp8QvH71Wi_y7b7tgFp7knK38rfrF7rRHh-gFKqeS0gxY6Q@mail.gmail.com/T/#u
> > Link: https://github.com/lima-vm/lima/issues/3334
> >
> > Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
> > ---
> >  arch/x86/kernel/cpu/common.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
> > index e9464fe411ac..4c2c268af214 100644
> > --- a/arch/x86/kernel/cpu/common.c
> > +++ b/arch/x86/kernel/cpu/common.c
> > @@ -517,7 +517,8 @@ static bool pku_disabled;
> >  static __always_inline void setup_pku(struct cpuinfo_x86 *c)
> >  {
> >       if (c == &boot_cpu_data) {
> > -             if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
> > +             if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU) ||
> > +                 !cpu_has_xfeatures(XFEATURE_PKRU, NULL))
> >                       return;
>
> Note that silent quirks are counterproductive, as they don't give VM
> vendors any incentives to fix their VM for such bugs.
>
> So I changed your quirk to be:
>
> --- a/arch/x86/kernel/cpu/common.c
> +++ b/arch/x86/kernel/cpu/common.c
> @@ -519,6 +519,17 @@ static __always_inline void setup_pku(struct cpuinfo_x86 *c)
>         if (c == &boot_cpu_data) {
>                 if (pku_disabled || !cpu_feature_enabled(X86_FEATURE_PKU))
>                         return;
> +               if (!cpu_has_xfeatures(XFEATURE_PKRU, NULL)) {
> +                       /*
> +                        * Missing XFEATURE_PKRU is not really a valid CPU
> +                        * configuration at this point, but apparently
> +                        * Apple Virtualization is affected by this,
> +                        * so return with a FW warning instead of crashing
> +                        * the bootup:
> +                        */
> +                       WARN_ONCE(1, FW_BUG "Invalid XFEATURE_PKRU configuration.\n");
> +                       return;
> +               }
>                 /*
>                  * Setting CR4.PKE will cause the X86_FEATURE_OSPKE cpuid
>                  * bit to be set.  Enforce it.
>
> This is noisy in the syslog, but it's a WARN_ONCE() and it doesn't
> crash the bootup.
>
> Thanks,
>
>         Ingo

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing
  2025-03-19 21:39       ` [PATCH] x86/pkeys: Disable " Ingo Molnar
  2025-03-20 14:21         ` Akihiro Suda
@ 2025-03-20 15:11         ` Borislav Petkov
  2025-03-20 19:46           ` Ingo Molnar
  1 sibling, 1 reply; 30+ messages in thread
From: Borislav Petkov @ 2025-03-20 15:11 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Akihiro Suda, linux-kernel, x86, stable, suda.kyoto, regressions,
	aruna.ramakrishna, tglx, Akihiro Suda

On Wed, Mar 19, 2025 at 10:39:33PM +0100, Ingo Molnar wrote:
> Note that silent quirks are counterproductive, as they don't give VM 
> vendors any incentives to fix their VM for such bugs.
> 
> So I changed your quirk to be:

This fires on my Zen3 now :-P

[    2.411315] x86/cpu: User Mode Instruction Prevention (UMIP) activated
[    2.415307] ------------[ cut here ]------------
[    2.419306] [Firmware Bug]: Invalid XFEATURE_PKRU configuration.
[    2.423307] WARNING: CPU: 0 PID: 0 at arch/x86/kernel/cpu/common.c:530 identify_cpu+0x82a/0x840
[    2.427306] Modules linked in:
[    2.431307] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.14.0-rc7+ #1 PREEMPT(full) 
[    2.435306] Hardware name: Micro-Star International Co., Ltd. MS-7A38/B450M PRO-VDH MAX (MS-7A38), BIOS B.G0 07/26/2022
[    2.439306] RIP: 0010:identify_cpu+0x82a/0x840
[    2.443306] Code: e8 bb f2 ff ff e9 4f ff ff ff 80 3d 07 4e 7b 01 00 0f 85 af fb ff ff 48 c7 c7 a8 fd f0 81 c6 05 f3 4d 7b 01 01 e8 e6 49 04 00 <0f> 0b e9 95 fb ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00
[    2.447306] RSP: 0000:ffffffff82203ec8 EFLAGS: 00010296
[    2.451306] RAX: 0000000000000034 RBX: 0000000000000000 RCX: 0000000000000000
[    2.455306] RDX: 0000000080000003 RSI: 00000000ffffffea RDI: 0000000000000001
[    2.459306] RBP: ffffffff82a09f40 R08: ffff88883e1fafe8 R09: 000000000027fffb
[    2.463306] R10: 00000000000000ee R11: ffff88883d5fb000 R12: 0000000000000000
[    2.467306] R13: ffff88883f373180 R14: ffffffff8220ba78 R15: 000000000008b000
[    2.471306] FS:  0000000000000000(0000) GS:ffff88889742b000(0000) knlGS:0000000000000000
[    2.475306] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    2.479306] CR2: ffff88883f1ff000 CR3: 000000000221a000 CR4: 00000000003108b0
[    2.483306] Call Trace:
[    2.487307]  <TASK>
[    2.489459]  ? __warn+0x85/0x150
[    2.491306]  ? identify_cpu+0x82a/0x840
[    2.495306]  ? report_bug+0x1c3/0x1d0
[    2.499306]  ? identify_cpu+0x82a/0x840
[    2.503306]  ? identify_cpu+0x82c/0x840
[    2.507306]  ? handle_bug+0xec/0x120
[    2.511306]  ? exc_invalid_op+0x14/0x70
[    2.515306]  ? asm_exc_invalid_op+0x16/0x20
[    2.519306]  ? identify_cpu+0x82a/0x840
[    2.523306]  ? identify_cpu+0x82a/0x840
[    2.527306]  arch_cpu_finalize_init+0x23/0x150
[    2.531307]  start_kernel+0x40a/0x720
[    2.535306]  x86_64_start_reservations+0x14/0x30
[    2.539306]  x86_64_start_kernel+0xa8/0xc0
[    2.543306]  common_startup_64+0x12c/0x138
[    2.547307]  </TASK>
[    2.551306] ---[ end trace 0000000000000000 ]---

Zapping it for the time being.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette

^ permalink raw reply	[flat|nested] 30+ messages in thread

* Re: [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing
  2025-03-20 15:11         ` Borislav Petkov
@ 2025-03-20 19:46           ` Ingo Molnar
  0 siblings, 0 replies; 30+ messages in thread
From: Ingo Molnar @ 2025-03-20 19:46 UTC (permalink / raw)
  To: Borislav Petkov
  Cc: Akihiro Suda, linux-kernel, x86, stable, suda.kyoto, regressions,
	aruna.ramakrishna, tglx, Akihiro Suda


* Borislav Petkov <bp@alien8.de> wrote:

> On Wed, Mar 19, 2025 at 10:39:33PM +0100, Ingo Molnar wrote:
> > Note that silent quirks are counterproductive, as they don't give VM 
> > vendors any incentives to fix their VM for such bugs.
> > 
> > So I changed your quirk to be:
> 
> This fires on my Zen3 now :-P
> 
> [    2.411315] x86/cpu: User Mode Instruction Prevention (UMIP) activated
> [    2.415307] ------------[ cut here ]------------
> [    2.419306] [Firmware Bug]: Invalid XFEATURE_PKRU configuration.
> [    2.423307] WARNING: CPU: 0 PID: 0 at arch/x86/kernel/cpu/common.c:530 identify_cpu+0x82a/0x840
> [    2.427306] Modules linked in:
> [    2.431307] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.14.0-rc7+ #1 PREEMPT(full) 
> [    2.435306] Hardware name: Micro-Star International Co., Ltd. MS-7A38/B450M PRO-VDH MAX (MS-7A38), BIOS B.G0 07/26/2022
> [    2.439306] RIP: 0010:identify_cpu+0x82a/0x840
> [    2.443306] Code: e8 bb f2 ff ff e9 4f ff ff ff 80 3d 07 4e 7b 01 00 0f 85 af fb ff ff 48 c7 c7 a8 fd f0 81 c6 05 f3 4d 7b 01 01 e8 e6 49 04 00 <0f> 0b e9 95 fb ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00
> [    2.447306] RSP: 0000:ffffffff82203ec8 EFLAGS: 00010296
> [    2.451306] RAX: 0000000000000034 RBX: 0000000000000000 RCX: 0000000000000000
> [    2.455306] RDX: 0000000080000003 RSI: 00000000ffffffea RDI: 0000000000000001
> [    2.459306] RBP: ffffffff82a09f40 R08: ffff88883e1fafe8 R09: 000000000027fffb
> [    2.463306] R10: 00000000000000ee R11: ffff88883d5fb000 R12: 0000000000000000
> [    2.467306] R13: ffff88883f373180 R14: ffffffff8220ba78 R15: 000000000008b000
> [    2.471306] FS:  0000000000000000(0000) GS:ffff88889742b000(0000) knlGS:0000000000000000
> [    2.475306] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [    2.479306] CR2: ffff88883f1ff000 CR3: 000000000221a000 CR4: 00000000003108b0
> [    2.483306] Call Trace:
> [    2.487307]  <TASK>
> [    2.489459]  ? __warn+0x85/0x150
> [    2.491306]  ? identify_cpu+0x82a/0x840
> [    2.495306]  ? report_bug+0x1c3/0x1d0
> [    2.499306]  ? identify_cpu+0x82a/0x840
> [    2.503306]  ? identify_cpu+0x82c/0x840
> [    2.507306]  ? handle_bug+0xec/0x120
> [    2.511306]  ? exc_invalid_op+0x14/0x70
> [    2.515306]  ? asm_exc_invalid_op+0x16/0x20
> [    2.519306]  ? identify_cpu+0x82a/0x840
> [    2.523306]  ? identify_cpu+0x82a/0x840
> [    2.527306]  arch_cpu_finalize_init+0x23/0x150
> [    2.531307]  start_kernel+0x40a/0x720
> [    2.535306]  x86_64_start_reservations+0x14/0x30
> [    2.539306]  x86_64_start_kernel+0xa8/0xc0
> [    2.543306]  common_startup_64+0x12c/0x138
> [    2.547307]  </TASK>
> [    2.551306] ---[ end trace 0000000000000000 ]---
> 
> Zapping it for the time being.

Thanks!

	Ingo

^ permalink raw reply	[flat|nested] 30+ messages in thread

end of thread, other threads:[~2025-03-20 19:46 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-11 14:35 [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization Akihiro Suda
2025-03-11 18:25 ` Aruna Ramakrishna
2025-03-12  5:57   ` Akihiro Suda
2025-03-12  6:18     ` Akihiro Suda
2025-03-12  9:31       ` [PATCH] x86: disable PKU when running " Akihiro Suda
2025-03-12  9:32       ` Akihiro Suda
2025-03-12 10:09       ` [PATCH v2] " Akihiro Suda
2025-03-12 10:21         ` Greg KH
2025-03-13 17:02         ` Ingo Molnar
2025-03-13 23:59           ` Akihiro Suda
2025-03-13 17:11         ` [tip: x86/urgent] x86/pkeys: Disable " tip-bot2 for Akihiro Suda
2025-03-14  6:26         ` [PATCH v2] x86: disable " kernel test robot
2025-03-14  6:26         ` kernel test robot
2025-03-13 17:58 ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user " Dave Hansen
2025-03-13 18:01   ` Ingo Molnar
2025-03-14  6:22   ` Akihiro Suda
2025-03-14  8:48     ` [PATCH] x86/pkeys: Disable PKU when XFEATURE_PKRU is missing Akihiro Suda
2025-03-14  8:49       ` kernel test robot
2025-03-19 21:00       ` [tip: x86/urgent] x86/pkeys: Add quirk to disable " tip-bot2 for Akihiro Suda
2025-03-19 21:39       ` [PATCH] x86/pkeys: Disable " Ingo Molnar
2025-03-20 14:21         ` Akihiro Suda
2025-03-20 15:11         ` Borislav Petkov
2025-03-20 19:46           ` Ingo Molnar
2025-03-19 22:11       ` [tip: x86/urgent] x86/pkeys: Add quirk to disable " tip-bot2 for Akihiro Suda
2025-03-14 15:07     ` [REGRESSION][BISECTED] x86: kernel 6.12 crashes during get_xsave_addr_user on Apple Virtualization Dave Hansen
2025-03-15 13:09       ` Akihiro Suda
2025-03-15 13:48         ` Borislav Petkov
2025-03-15 15:10           ` Akihiro Suda
2025-03-15 19:02             ` Borislav Petkov
2025-03-15 18:45         ` Dave Hansen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.