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

[Xen-devel] x86-64's contig_initmem_init



Not very long ago there was a change to this function appearantly to
make available the first megabyte of memory. While this is a nice
attempt, I wonder how this worked out for anyone not using shadow mode:

Since the initial allocation is provided as a read-write mapping, the
occasional use of memory from the corresponding physical range to
populate page tables (or descriptor tables) results on BUG_ON-s being
triggered in hypervisor.c because these pages then cannot be pinned
(after converting their phys-to-virt mapping to read-only they still
have the initial mapping left read-write, which prevents the necessary
type transition from happening).

While resolving this I wanted to avoid adding code to
make_page_readonly (much like i386 has a special case already, but
appearantly to deal with a different scenario), I wondered whether one
couldn't make these unused portions of the initial mapping readonly
during early setup; since I wasn't sure whether I'd encounter any
problems with that I didn't attempt to do so, yet, and rather reverted
the original change.

Finally I wonder why this first Mb was taken care about, but the
potentially larger area at the end of the initial allocation (which to
my understanding is currently lost, too) wasn't. And I am having the
understanding that the respective memory ranges for i386 are also lost.

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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