equation314 / equation314/RVM-Tutorial

Panicked at src/task/structs.rs:155 new_user: no such app

Offen
#2 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
161
Forks
36
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

# 环境
* Ubuntu 22.04 5.15.0-60-generic
* qemu 7.2.50
* cargo 1.67.0-nightly
* 已开启KVM且支持嵌套虚拟化
* Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz, 已启用VT-x
# log
在`hypervisor`下执行`make run`时报错如下:
```sh
[ERROR nimbos::lang_items] Panicked at src/task/structs.rs:155 new_user: no such app
[WARN nimbos::drivers::misc::qemu_x86_reset] Shutting down...
[ 0.199425 ERROR rvm_hypervisor::lang_items:5] panicked at 'Unsupported I/O port 0x604 access: VmxIoExitInfo {
access_size: 0x2,
is_in: false,
is_string: false,
is_repeat: false,
port: 0x604,
}', src/hv/vmexit.rs:122:9
```
完整启动log如下:
```sh
SeaBIOS (version rel-1.16.1-0-g3208b098f51a-prebuilt.qemu.org)

iPXE (http://ipxe.org) 00:02.0 CA00 PCI2.10 PnP PMM+06FD0CD0+06F30CD0 CA00

Booting from ROM..

RRRRRR VV VV MM MM
RR RR VV VV MMM MMM
RRRRRR VV VV MM MM MM
RR RR VV VV MM MM
RR RR VVV MM MM
___ ____ ___ ___
|__ \ / __ \ |__ \ |__ \
__/ / / / / / __/ / __/ /
/ __/ / /_/ / / __/ / __/
/____/ \____/ /____/ /____/

arch = x86_64
build_mode = release
log_level = warn

Initializing heap at: [0xffffff800124b010, 0xffffff800164b010)
Initializing GDT...
Initializing IDT...
Initializing Local APIC...
Initializing frame allocator at: [0x164c000, 0x4000000)
Initialization completed.

Starting virtualization...
Hardware support: true
Running guest...

NN NN iii bb OOOOO SSSSS
NNN NN mm mm mmmm bb OO OO SS
NN N NN iii mmm mm mm bbbbbb OO OO SSSSS
NN NNN iii mmm mm mm bb bb OO OO SS
NN NN iii mmm mm mm bbbbbb OOOO0 SSSSS
___ ____ ___ ___
|__ \ / __ \ |__ \ |__ \
__/ / / / / / __/ / __/ /
/ __/ / /_/ / / __/ / __/
/____/ \____/ /____/ /____/

arch = x86_64
platform = pc
build_mode = release
log_level = warn

Initializing kernel heap at: [0xffffff800022cd00, 0xffffff800062cd00)
Initializing IDT...
Loading GDT for CPU 0...
Initializing frame allocator at: [PA:0x62d000, PA:0x8000000)
Mapping .text: [0xffffff8000200000, 0xffffff800021b000)
Mapping .rodata: [0xffffff800021b000, 0xffffff8000220000)
Mapping .data: [0xffffff8000220000, 0xffffff8000228000)
Mapping .bss: [0xffffff800022c000, 0xffffff800062d000)
Mapping boot stack: [0xffffff8000228000, 0xffffff800022c000)
Mapping physical memory: [0xffffff800062d000, 0xffffff8008000000)
Mapping MMIO: [0xffffff80fec00000, 0xffffff80fec01000)
Mapping MMIO: [0xffffff80fed00000, 0xffffff80fed01000)
Mapping MMIO: [0xffffff80fee00000, 0xffffff80fee01000)
Initializing drivers...
Initializing Local APIC...
Initializing HPET...
HPET: 100.000000 MHz, 64-bit, 3 timers
Calibrated TSC frequency: 2904.451 MHz
Calibrated LAPIC frequency: 726.124 MHz
Initializing task manager...
[ERROR nimbos::lang_items] Panicked at src/task/structs.rs:155 new_user: no such app
[WARN nimbos::drivers::misc::qemu_x86_reset] Shutting down...
[ 0.199425 ERROR rvm_hypervisor::lang_items:5] panicked at 'Unsupported I/O port 0x604 access: VmxIoExitInfo {
access_size: 0x2,
is_in: false,
is_string: false,
is_repeat: false,
port: 0x604,
}', src/hv/vmexit.rs:122:9
```

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Mit `make run` unter `hypervisor` unter Verwendung des gemeldeten Ubuntu-, QEMU-, Cargo- und KVM-Setups reproduzieren. Beginne bei `src/task/structs.rs:155` und untersuche die Initialisierung des Task-Managers rund um die `new_user: no such app`-Panic. Prüfe anschließend `src/hv/vmexit.rs:122` auf den nachfolgenden I/O-Port-Fehler. Als erledigt gilt die Aufgabe, wenn der Hypervisor den normalen Gaststart ohne die gemeldete Panic erreicht.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rust
Bereich
operating-systems
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
28/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.