* Jan Kiszka <[email protected]> [2017-08-22 23:29:37 +0000]: > On 2017-08-22 19:17, Gustavo Lima Chaves wrote: > > * Jan Kiszka <[email protected]> [2017-08-22 23:04:35 +0000]: > > > >> On 2017-08-22 13:15, Gustavo Lima Chaves wrote: > >>> * Gustavo Lima Chaves <[email protected]> [2017-08-22 > >>> 16:36:54 +0000]: > >>> > >>>> * Henning Schild <[email protected]> [2017-08-22 13:42:22 > >>>> +0000]: > >>>> > >>>>> Am Mon, 21 Aug 2017 18:13:35 -0700 > >>>>> schrieb Gustavo Lima Chaves <[email protected]>: > >>>>> > >>>>>> Hi, > >>>>>> > >>>>>> is testing xAPIC mode just a matter of having > >>>>>> > >>>>>> diff --git a/configs/qemu-vm.c b/configs/qemu-vm.c > >>>>>> index e5a420a..6225be9 100644 > >>>>>> --- a/configs/qemu-vm.c > >>>>>> +++ b/configs/qemu-vm.c > >>>>>> @@ -49,6 +49,7 @@ struct { > >>>>>> .pci_mmconfig_end_bus = 0xff, > >>>>>> .x86 = { > >>>>>> .pm_timer_address = 0x608, > >>>>>> + .apic_mode = > >>>>>> JAILHOUSE_APIC_MODE_XAPIC, .vtd_interrupt_limit = 256, > >>>>>> .iommu_units = { > >>>>>> { > >>>>>> > >>>>>> ? If so, it gives me a segv right away, with > >>>>>> > >>>>>> Initializing Jailhouse hypervisor v0.7 (36-g0b1b884-dirty) on CPU 3 > >>>>>> Code location: 0xfffffffff0000060 > >>>>>> Using xAPIC > >>>>>> Page pool usage after early setup: mem 44/1480, remap 65/131072 > >>>>>> Initializing processors: > >>>>>> CPU 3... (APIC ID 0) FAILED > >>>>>> > >>>>>> as output. > >>>>>> > >>>>>> Has anyone been testing that? > >>>>> > >>>>> Just talked to Andreas, he booted his root Linux in xapic mode to > >>>>> inherit that for the non-root cell. Just add "nox2apic" to your host > >>>>> Linux parameters. > >>>> > >>>> Interesting, because my issue was at jailhouse enable time, I did not > >>>> even enter the merit of which inmate payload was used. But I'll check > >>>> better what's happening, if the .apic_mode = 1 approach is really all > >>>> that is needed. > >>> > >>> Gotta hate answering to emails before coffee. You said *base* kernel, > >>> sorry. Will re-test. > >> > >> Exactly: If the root Linux was brought up in xAPIC mode, Jailhouse has > >> to follow this. Same in case it was using x2APIC before. We cannot > >> switch the mode safely, so we follow what was configured before (auto > >> mode) or defined in the config (like in your case). > > > > Thanks. It indeed wors for, say, apic-demo.c inmate. But I see code > > paths there that are hardcoded (at least seem, please correct me) to > > using x2APIC access—int_init() is one of them. I thought it had > > infrastructure for everything APIC be twofold, not just > > apic_ops.read/write. I ask that because I'd like to be able to work on > > xAPIC in Zephyr as well (x2APIC mode being a separate patch), but the > > world crashed for me while trying. > > Jailhouse emulates the right physical APIC access for non-root cells. > That's why the apic-demo only does x2APIC accesses: they are trapped and > run as xAPIC in case the host is in that mode.
Oooh, now I see it: apic_handle_icr_write(), apic_invalid_lvt_delivery_mode() et al, right? My bad. > > > > > Speaking of that, I used to replicate Jailhouse's prink() (via vmcall > > number 8) just fine on Linux to debug things without a console, but > > I'm having a hard time doing that on Zephyr (now on 32-bits). Any > > clues? > > Hmm, the hypercall interface should be 32/64-bit agnostic. > > 1st check: Does the call reach the hypervisor? > 2nd check: What do the registers contain? > > Both can be done by instrumenting the hypervisor. Alternatively, you > could play with the 32-bit demo cell an configure it to use the debug > console (see Documentation/debug-output.md). Checking now, thanks. > > Jan -- Gustavo Lima Chaves Intel - Open Source Technology Center -- 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]. For more options, visit https://groups.google.com/d/optout.
