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

Re: [Xen-devel] segmentation and Xen

On 14 Oct 2005, at 18:00, Jonathan M. McCune wrote:

We noticed a difference in the kernel and user space code and data segment descriptor entries in the GDTs for Xen and XenoLinux. It does not appear that the Xen GDT totally supplants the Linux GDT, as the Linux GDT has its limit changed (in the descriptor, but not the comments) appropriately to make room for Xen in the upper 64 MB. The difference is in the "Accessed" bit of the "Type" field, as defined in Chapter 4, Volume 3, of the Intel manuals. Can you help us to understand why the Access bit is set in the Linux kernel code but not in the Xen code?

Noone uses the accessed bit for anything, so it doesn't matter how it is set. I guess if you set it in the table definition then the CPU doesn't need to set the accessed bit the first time the segment is loaded, but that really doesn't matter either way...

More generally, how do the GDTs defined in head.S and x86_32.S interact? It seems problematic that Xen defines a GDT for guest OSes, but guest OSes are allowed to retain a GDT of their own.

Note that the Xen GDT (defined in x86_32.S) is not based at offset zero! Xen reserves the final eighth of the GDT space. The first seven-eighths are available for guests to define.

 -- Keir

Xen-devel mailing list



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