[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] do_set_gdt



> > > You'll also want to make sure that you don't put other stuff in the last
> > > page which hold the GDT table and align the GDT table to a page boundary:
> > > lgdt allows the gdt to be anywhere while for Xen you have to put it at the
> > > beginning of a page, can't really use the rest of the last page for much
> > > else and have to keep the pages around.
> >
> > Yes, this is all correct. On first glance I thought this was a bug (I
> > thought the code was deciding whether a particular GDT entry could be
> > updated by the guest).
> >
> 
> 
> Yes, but you have to pass in at least a page which == 512 entries. So if
> I'm only using the first 8 entries, there is no reason Xen can't use
> 256-296. Passing in LAST_RESERVED_ENTRY + 1, seems a little contrived
> when it is only the first 8 that I care about. A better approach would
> be to insist that entries 256-296 are set to 0 in the case where the
> user sets nentries >= FIRST_RESERVED_ENTRY.

Part of the semantics of GDT virtualisation is that the guest knows
which entries will be taken by Xen, and must offer a large enough
table to contain Xen's entries. 

Given that you pretty much have to burn a page on the GDT (since we
use page-level protection to prevent direct guest updates of the GDT),
zeroing out a whole page and passing in ents==512 doesn't seem a great
hardship. 

One of the reasons for not going down the full virtualisation route is
that it allows us to adjust the VM interface for Xen's benefit -- some
of these changes may seem odd or contrived if you're not aware how Xen
benefits. But I'm fairly happy that none of the changes should be too
onerous for the guest-OS programmer to abide by.

 -- Keir


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.