This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] deleting mtrrs in dom0

I thought the MTRRs have been set by the BIOS, not Xen.

Xen propagates the CPU0 MTRR values to all other CPUs. Not all BIOSes do that properly. Linux does the same, when it is booted natively.

The MTRRs are not set to my satisfaction, that's why I'd like to change

Hmmm... can you try changing init_table() in arch/xen/i386/kernel/cpu/mtrr/main.c to initialise the usage_table counts to 1 instead of 0? I think that'll fix it for you and matches how native Linux initialises the table.

Obviously, Linux has code to do that -- under Xen it unfortunately
only sees a subset of the CPUs, though.

You need to lock out all other CPU activity while you reprogram MTRRs across all CPUs. Obviously Linux cannot do that unaided if Xen is running underneath it.

I think the current approach is the correct one, but I was probably trying to be too clever when defining the interface to Xen -- we'll probably end up dumbing it down, and only allow domain0 to do MTRR updates. We can always define an interface thru domain0 for other driver domains to declare memory types if we feel the need.

If you can check that modifying initialisation of usage_table[] fixes your problem, I'll do a cleanup and simplification of the MTRR code.

 -- Keir

SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
Xen-devel mailing list

<Prev in Thread] Current Thread [Next in Thread>