Re: 2.6.18-rc6-mm1: GPF loop on early boot

From: Jeremy Fitzhardinge
Date: Mon Sep 11 2006 - 03:53:38 EST


Ingo Molnar wrote:
btw., what's the connection of %gs based PDA to Xen and paravirtualization in general - %esp based current is just as Xen-friendly, or am i wrong? I guess there must be some connection, given that you are working on this ;)

Yep. The goal is to put the Xen VCPU structure into the PDA, so that it can be easily accessed. At present, masking events (ie, cli), is something along the lines of

xen_shared_info->vcpu[smp_processor_id()].mask = 1

which comes out to something like 20 bytes of code, and is probably too awkward to inline. If the vcpu is in the PDA, it would come out to:

movb $1, %gs:xen_vcpu_mask

which has the added benefit of not needing a register.

Even without modifying Xen to allow us to place the VCPU structure, putting a VCPU pointer into the PDA helps a lot:

mov %gs:xen_vcpu, %eax
movb $1, mask(%eax)

J
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/