[PULL 00/13] target/i386 changes for 2024-07-12

Paolo Bonzini posted 13 patches 5 months, 2 weeks ago
qapi/qom.json                    |  18 +-
target/i386/cpu.h                |  11 +-
hw/i386/pc.c                     |   2 +-
target/i386/cpu.c                |  27 +-
target/i386/sev.c                |  87 ++++-
target/i386/tcg/seg_helper.c     | 665 +++++++++++++++++++++------------------
target/i386/tcg/decode-new.c.inc |   2 +-
target/i386/tcg/emit.c.inc       |   1 +
8 files changed, 472 insertions(+), 341 deletions(-)
[PULL 00/13] target/i386 changes for 2024-07-12
Posted by Paolo Bonzini 5 months, 2 weeks ago
The following changes since commit 23901b2b721c0576007ab7580da8aa855d6042a9:

  Merge tag 'pull-target-arm-20240711' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-07-11 12:00:00 -0700)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream-i386

for you to fetch changes up to cdcadf9ee9efef96323e0b88fccff589f06fc0ee:

  i386/sev: Don't allow automatic fallback to legacy KVM_SEV*_INIT (2024-07-12 15:35:54 +0200)

----------------------------------------------------------------
* target/i386/tcg: fixes for seg_helper.c
* SEV: Don't allow automatic fallback to legacy KVM_SEV_INIT,
  but also don't use it by default

----------------------------------------------------------------
Michael Roth (1):
      i386/sev: Don't allow automatic fallback to legacy KVM_SEV*_INIT

Paolo Bonzini (8):
      target/i386/tcg: fix POP to memory in long mode
      target/i386/tcg: Allow IRET from user mode to user mode with SMAP
      target/i386/tcg: use PUSHL/PUSHW for error code
      target/i386/tcg: Compute MMU index once
      target/i386/tcg: Use DPL-level accesses for interrupts and call gates
      target/i386/tcg: check for correct busy state before switching to a new task
      target/i386/tcg: use X86Access for TSS access
      target/i386/tcg: save current task state before loading new one

Richard Henderson (3):
      target/i386/tcg: Remove SEG_ADDL
      target/i386/tcg: Reorg push/pop within seg_helper.c
      target/i386/tcg: Introduce x86_mmu_index_{kernel_,}pl

 qapi/qom.json                    |  18 +-
 target/i386/cpu.h                |  11 +-
 hw/i386/pc.c                     |   2 +-
 target/i386/cpu.c                |  27 +-
 target/i386/sev.c                |  87 ++++-
 target/i386/tcg/seg_helper.c     | 665 +++++++++++++++++++++------------------
 target/i386/tcg/decode-new.c.inc |   2 +-
 target/i386/tcg/emit.c.inc       |   1 +
 8 files changed, 472 insertions(+), 341 deletions(-)
-- 
2.45.2
Re: [PULL 00/13] target/i386 changes for 2024-07-12
Posted by Richard Henderson 5 months, 2 weeks ago
On 7/14/24 04:10, Paolo Bonzini wrote:
> The following changes since commit 23901b2b721c0576007ab7580da8aa855d6042a9:
> 
>    Merge tag 'pull-target-arm-20240711' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2024-07-11 12:00:00 -0700)
> 
> are available in the Git repository at:
> 
>    https://gitlab.com/bonzini/qemu.git tags/for-upstream-i386
> 
> for you to fetch changes up to cdcadf9ee9efef96323e0b88fccff589f06fc0ee:
> 
>    i386/sev: Don't allow automatic fallback to legacy KVM_SEV*_INIT (2024-07-12 15:35:54 +0200)
> 
> ----------------------------------------------------------------
> * target/i386/tcg: fixes for seg_helper.c
> * SEV: Don't allow automatic fallback to legacy KVM_SEV_INIT,
>    but also don't use it by default

Fails testing:

https://gitlab.com/qemu-project/qemu/-/jobs/7338361630

2024-07-14 23:45:07,744 __init__         L0153 DEBUG| EIP: alternative_instructions+0x2b/0xfa
2024-07-14 23:45:07,746 __init__         L0153 DEBUG| Code: 89 e5 83 ec 08 64 a1 c0 06 f4 
c3 89 45 fc 31 c0 b8 e4 f7 ef c3 c7 45 f8
00 00 00 00 e8 84 6f 7a ff 85 c0 74 02 0f 0b 8d 45 f8 <cc> 90 90 90 90 83 7d f8 01 74 02 
0f 0b b8 e4 f7 ef c3 e8 04 6e 7a
2024-07-14 23:45:07,747 __init__         L0153 DEBUG| EAX: c3e0bf38 EBX: 00000000 ECX: 
00000000 EDX: 00200292
2024-07-14 23:45:07,747 __init__         L0153 DEBUG| ESI: c3d54b3f EDI: c3d555e0 EBP: 
c3e0bf40 ESP: c3e0bf38
2024-07-14 23:45:07,748 __init__         L0153 DEBUG| DS: 007b ES: 007b FS: 00d8 GS: 0000 
SS: 0068 EFLAGS: 00210246
2024-07-14 23:45:07,748 __init__         L0153 DEBUG| CR0: 80050033 CR2: c3e0bf34 CR3: 
03f4c000 CR4: 000006d0
2024-07-14 23:45:07,748 __init__         L0153 DEBUG| Call Trace:
2024-07-14 23:45:07,750 __init__         L0153 DEBUG| check_bugs+0x900/0x91e
2024-07-14 23:45:07,750 __init__         L0153 DEBUG| ? __get_locked_pte+0x67/0xb0
2024-07-14 23:45:07,750 __init__         L0153 DEBUG| start_kernel+0x4d3/0x501
2024-07-14 23:45:07,750 __init__         L0153 DEBUG| ? set_intr_gate+0x42/0x55
2024-07-14 23:45:07,750 __init__         L0153 DEBUG| i386_start_kernel+0x43/0x45
2024-07-14 23:45:07,751 __init__         L0153 DEBUG| startup_32_smp+0x161/0x164
2024-07-14 23:45:07,751 __init__         L0153 DEBUG| Modules linked in:
2024-07-14 23:45:07,751 __init__         L0153 DEBUG| CR2: 00000000c3e0bf34
2024-07-14 23:45:07,752 __init__         L0153 DEBUG| ---[ end trace 7adaac7a13f2a45f ]---
2024-07-14 23:45:07,752 __init__         L0153 DEBUG| EIP: alternative_instructions+0x2b/0xfa
2024-07-14 23:45:07,753 __init__         L0153 DEBUG| Code: 89 e5 83 ec 08 64 a1 c0 06 f4 
c3 89 45 fc 31 c0 b8 e4 f7 ef c3 c7 45 f8
00 00 00 00 e8 84 6f 7a ff 85 c0 74 02 0f 0b 8d 45 f8 <cc> 90 90 90 90 83 7d f8 01 74 02 
0f 0b b8 e4 f7 ef c3 e8 04 6e 7a
2024-07-14 23:45:07,753 __init__         L0153 DEBUG| EAX: c3e0bf38 EBX: 00000000 ECX: 
00000000 EDX: 00200292
2024-07-14 23:45:07,753 __init__         L0153 DEBUG| ESI: c3d54b3f EDI: c3d555e0 EBP: 
c3e0bf40 ESP: c3e0bf38
2024-07-14 23:45:07,754 __init__         L0153 DEBUG| DS: 007b ES: 007b FS: 00d8 GS: 0000 
SS: 0068 EFLAGS: 00210246
2024-07-14 23:45:07,754 __init__         L0153 DEBUG| CR0: 80050033 CR2: c3e0bf34 CR3: 
03f4c000 CR4: 000006d0
2024-07-14 23:45:07,754 __init__         L0153 DEBUG| Kernel panic - not syncing: 
Attempted to kill the idle task!



r~