On Thu, May 2, 2019 at 7:30 AM Jan Beulich <jbeul...@suse.com> wrote:
>
> >>> On 02.05.19 at 15:09, <ta...@tklengyel.com> wrote:
> > That said I don't have a use for idt and gdtr_limit that warrants
> > having to receive it via the vm_event structure
>
> So what use if the GDT base without the limit? Are you silently
> assuming all presently loaded selectors are (still) within limits?

On 32-bit Windows the KPCR's address is cached at gdtr_base + 0x30
while in ring3. In ring0 we can just use fs_base for that. At the
moment I still just cache the KPCR location on every MOV-TO-CR3 but
that became an issue with recent versions of Windows10 implementing
Meltdown mitigations because it leads to extreme performance
degradation in the guest (opening an app takes ~20s). So now I just
try to find the KPCR based on the registers reported in each vm_event.
We use the KPCR to quickly find thread/process base addresses to
gather info relevant to introspection.

Tamas

Tamas

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to