* 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.

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?

Thanks a lot.

> 
> Jan
> 
> -- 
> 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.

-- 
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.

Reply via email to