On 22.11.19 11:24, Martijn Pieterse wrote:
Hi,
After successfully installing and running jailhouse on several systems
I’m now trying to get jailhouse to run on a dual socket setup, which is
giving me some problems.
I’m running Ubuntu 18.04, kernel version 4.15.0. Enabling jailhouse
works fine, it breaks when creating a cell (at the cpu_down()) call, or
when disabling a cpu with a shell command:
“echo 0 > /sys/devices/system/cpu/cpu2/online”
The last vmexit seems to be an NMI, after that is handled the system
stops being responsive. I’ve added some printk’s in the handle_vmexit
code, but this did not help me.
Because I never had problems with getting jailhouse up and running on a
single socket system, I’m assuming it has to do with the dual socket
setup, but I’m out of ideas of how to diagnose this properly. The
processors are the 4109T, but I don’t think this matters.
The output on the serial port:
Initializing Jailhouse hypervisor v0.11 (36-gedfe64fd-dirty) on CPU 11
Code location: 0xfffffffff0000050
Using x2APIC
Page pool usage after early setup: mem 151/15823, remap 0/131072
Initializing processors:
CPU 11... (APIC ID 22) OK
CPU 6... (APIC ID 12) OK
CPU 3... (APIC ID 6) OK
CPU 1... (APIC ID 2) OK
CPU 12... (APIC ID 24) OK
CPU 13... (APIC ID 26) OK
CPU 9... (APIC ID 18) OK
CPU 0... (APIC ID 0) OK
CPU 5... (APIC ID 10) OK
CPU 7... (APIC ID 14) OK
CPU 4... (APIC ID 8) OK
CPU 14... (APIC ID 28) OK
CPU 2... (APIC ID 4) OK
CPU 10... (APIC ID 20) OK
CPU 8... (APIC ID 16) OK
CPU 15... (APIC ID 30) OK
Initializing unit: VT-d
DMAR unit @0xd37fc000/0x1000
DMAR unit @0xe0ffc000/0x1000
DMAR unit @0xee7fc000/0x1000
DMAR unit @0xfbffc000/0x1000
DMAR unit @0xaaffc000/0x1000
DMAR unit @0xb87fc000/0x1000
DMAR unit @0xc5ffc000/0x1000
DMAR unit @0x9d7fc000/0x1000
<<< Remove lots of PCI init >>>>
Adding PCI device d7:16.0 to cell "RootCell"
Adding PCI device d7:16.4 to cell "RootCell"
Page pool usage after late setup: mem 893/15823, remap 65598/131072
Activating hypervisor
I suppose from here onward is due to your own instrumentation of the
code, right?
NMI: cpu: 0
RIP: 0xffffffff8b33a2b3 RSP: 0xffffad66800ebe60 FLAGS: 2
RAX: 0xffffffff8c014460 RBX: 0x0000000000000003 RCX: 0xffff96745f61d150
RDX: 0x0000000000000003 RSI: 0x0000000000000286 RDI: 0xffffad6686ee7c90
CS: 10 BASE: 0x0000000000000000 AR-BYTES: a09b EFER.LMA 1
CR0: 0x0000000080050033 CR3: 0x0000000c9ce0a002 CR4: 0x00000000007626f0
EFER: 0x0000000000000d01
VM_EXIT_INTR_INFO: 80000202
There might be some to-be-understood reason for Linux to use NMIs while
offlining CPUs. When you do that before Jailhouse is enabled, does the
related counter in /proc/interrupts increment?
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/1a1e610d-bb95-053e-8bc5-00cd0130b154%40siemens.com.