[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] More on kexec/purgatory handover
>>> On 13.05.15 at 11:53, <david.vrabel@xxxxxxxxxx> wrote: > On 13/05/15 09:12, Jan Beulich wrote: >>>>> On 13.05.15 at 09:35, <ebiederm@xxxxxxxxxxxx> wrote: >>> Fundamentally if you are transfering control in long mode you have to >>> set up some page table. I giant identity mapped page table that can use >>> 1G or 2M pages takes up very little memory, and can be very simply >>> and easily before the transfer of control takes place. >>> >>> All you have to do when you are in a half broken state is load cr3. >>> Possible after verifying a checksum. >>> >>> 640k in this case I don't think is particularly special, and certainly >>> not worth a special case. The in-kernel implementation on x86_64 sets >>> up a page table for all of memory which because of the availability of >>> huge pages winds up being simple and trivial. >>> >>> Weird things like copying off the 640k region for the kexec-on-panic >>> case can be done in the adapter/purgatory piece that lives between the >>> two kernels. >>> >>> So at a very practical level I think we shouldn't have mappings for >>> special regions we should just have mappings for all of memory. >> >> But in all of the above you (a) forget that setting up 1:1 >> mappings for all memory isn't as simple as putting in place a >> couple of 1G pages - holes need to be accounted for and must >> at best be mapped UC (that's especially an issue with the low >> 640k) and (b) imply that whatever Linux behavior there is, Xen >> should mimic it (ignoring for example the fact that with the non- >> kernel based kexec which newer Xen and tools support such 1:1 >> mapping setup doesn't appear to be required, i.e. [supposed] >> requirements change). > > Xen's V2 kexec ABI builds 1:1 pages tables for the source and > destination pages and any additional regions requested by the guest (see > calls to machine_kexec_add_page()). kexec-tools adds a "map-only" > segment for 0-1MiB when using the V2 ABI. > > These page tables are built at load time (not at exec time) and in the > crash case are placed in the crash memory area. > > When using the V1 ABI, there is no way for the tools to provide an > additional "map-only" segment so you'd have to get purgatory to add > mappings for 0-1MiB, or get Xen (in the V1 path only) to do so. Okay, if the tools do this in v2, then I think the compatibility v1 path should indeed do so too (in the hypervisor). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |