* Jan Kiszka <[email protected]> [2017-08-23 19:06:55 +0000]:

> On 2017-08-23 14:55, Gustavo Lima Chaves wrote:
> > * Henning Schild <[email protected]> [2017-08-23 07:28:56 +0000]:
> > 
> > [...]
> > 
> >>>>
> >>>> 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.
> >>
> >> Andreas found and fixed a bug in the zephyr apic timer code. That might
> >> be causing your trouble. I am not sure about the status of getting that
> >> patch upstream. As far as i remember it was an ordering issue between
> >> setting the counter and the mode, where the counter would drop to 0
> >> before the mode is set from one-shot to periodic.
> > 
> > Thanks, but I'm afraid it's not due to that (I have the patch and it
> > did not help). One thing that I have to clarify for once, though: so
> > there is no mapping to XAPIC_BASE to inmates, right? The sole way of
> > having it is linking with libinmate and issuing apic_init()? I tried
> > an ugly hack of adding it at vcpu_map_memory_region(), with no
> > success.
> 
> There is mapping, look at vcpu_vendor_cell_init. If the system is in
> xAPIC mode, accesses are trapped, filtered and executed on behalf of the
> guest. If it is in x2APIC mode, execution is replaced with emulation.

Silly me, so close in the code. Thanks.

> 
> However, a typical trap is mapping something over the xAPIC page,
> allowing the guest direct access (or access to something totally
> different). Double-check your config in this regard.

Now getting closer: ***** CPU Page Fault (error code 0x00000000)
Let's see how it goes WRT paging in that code...

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

Reply via email to