Project

General

Profile

Actions

Bug #14598

closed

bhyve vlapic should handle APICBASE changes

Added by Patrick Mooney 4 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Category:
bhyve
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The existing LAPIC emulation in bhyve does not allow the GUEST to make changes to the APICBASE. While we do not, at this time, plan to support changing the physical address of the LAPIC, we should allow it to be hardware disabled/enabled via the corresponding bit in that field.


Related issues

Related to illumos gate - Bug #14599: simplify bhyve MSR handlingClosedPatrick Mooney

Actions
Actions #1

Updated by Electric Monk 4 months ago

  • Gerrit CR set to 2085
Actions #2

Updated by Patrick Mooney 4 months ago

With the proposed patch applied to a system, all of the bhyve tests (old and new) pass:

Test: /opt/bhyve-tests/tests/mevent/vnode_zvol (run as root)      [00:02] [PASS]
Test: /opt/bhyve-tests/tests/inst_emul/rdmsr (run as root)        [00:00] [PASS]
Test: /opt/bhyve-tests/tests/inst_emul/wrmsr (run as root)        [00:00] [PASS]
Test: /opt/bhyve-tests/tests/kdev/vatpit_freq (run as root)       [00:00] [PASS]
Test: /opt/bhyve-tests/tests/kdev/vhpet_freq (run as root)        [00:00] [PASS]
Test: /opt/bhyve-tests/tests/kdev/vlapic_freq (run as root)       [00:00] [PASS]
Test: /opt/bhyve-tests/tests/kdev/vlapic_freq_periodic (run as root) [00:00] [PASS]
Test: /opt/bhyve-tests/tests/kdev/vlapic_mmio_access (run as root) [00:00] [PASS]
Test: /opt/bhyve-tests/tests/kdev/vlapic_msr_access (run as root) [00:00] [PASS]
Test: /opt/bhyve-tests/tests/kdev/vpmtmr_freq (run as root)       [00:00] [PASS]
Test: /opt/bhyve-tests/tests/mevent/lists_delete (run as root)    [00:00] [PASS]
Test: /opt/bhyve-tests/tests/mevent/read_disable (run as root)    [00:00] [PASS]
Test: /opt/bhyve-tests/tests/mevent/read_pause (run as root)      [00:00] [PASS]
Test: /opt/bhyve-tests/tests/mevent/read_requeue (run as root)    [00:00] [PASS]
Test: /opt/bhyve-tests/tests/mevent/vnode_file (run as root)      [00:09] [PASS]
Test: /opt/bhyve-tests/tests/vmm/fpu_getset (run as root)         [00:00] [PASS]
Test: /opt/bhyve-tests/tests/vmm/mem_devmem (run as root)         [00:00] [PASS]
Test: /opt/bhyve-tests/tests/vmm/mem_partial (run as root)        [00:00] [PASS]
Test: /opt/bhyve-tests/tests/vmm/mem_seg_map (run as root)        [00:00] [PASS]

(New from this change are the rdmsr, wrmsr, vlapic_mmio_access, and vlapic_msr_access tests)

This is true on both AMD and Intel hardware.

In addition to that, I ran the normal battery of guest OSes through a smoke test. All booted and ran successfully.

Actions #3

Updated by Patrick Mooney 4 months ago

  • Related to Bug #14599: simplify bhyve MSR handling added
Actions #4

Updated by Electric Monk 4 months ago

  • Status changed from In Progress to Closed
  • % Done changed from 0 to 100

git commit d2f938fdf23aca7cabde8395625fdfaa2118133d

commit  d2f938fdf23aca7cabde8395625fdfaa2118133d
Author: Patrick Mooney <pmooney@pfmooney.com>
Date:   2022-04-11T21:17:51.000Z

    14598 bhyve vlapic should handle APICBASE changes
    14599 simplify bhyve MSR handling
    Reviewed by: Dan Cross <cross@oxidecomputer.com>
    Reviewed by: Luqman Aden <luqman@oxide.computer>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions

Also available in: Atom PDF