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

Jeremy Fitzhardinge
2006-09-11T07:56:19Z

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