[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] kexec: allow relaxed placement specification via command line
On 30/05/16 14:48, Jan Beulich wrote: > Rather than just allowing a fixed address or fully automatic placement, > also allow for specifying an upper bound. Especially on EFI systems, > where firmware memory use is commonly less predictable than on legacy > BIOS ones, this makes success of the reservation more likely when > automatic placement is not an option (e.g. because of special DMA > restrictions of devices involved in actually carrying out the dump). > > Also take the opportunity to actually add text to the "crashkernel" > entry in the command line option doc. > --- a/xen/arch/x86/setup.c > +++ b/xen/arch/x86/setup.c > @@ -1044,13 +1044,19 @@ void __init noreturn __start_xen(unsigne > } > > #ifdef CONFIG_KEXEC > - /* Don't overlap with modules. */ > - e = consider_modules(s, e, PAGE_ALIGN(kexec_crash_area.size), > - mod, mbi->mods_count, -1); > - if ( !kexec_crash_area.start && (s < e) ) I think we want a comment here. /* * Looking backwards from the crash area limit, find a large enough * crash area that does not overlap with modules. */ > + while ( !kexec_crash_area.start ) Does this mean that if an @<offset> is specified we no longer check for overlapping modules? > { > - e = (e - kexec_crash_area.size) & PAGE_MASK; > - kexec_crash_area.start = e; > + /* Don't overlap with modules. */ > + e = consider_modules(s, e, PAGE_ALIGN(kexec_crash_area.size), > + mod, mbi->mods_count, -1); > + if ( s >= e ) > + break; > + if ( e > kexec_crash_area_limit ) > + { > + e = kexec_crash_area_limit & PAGE_MASK; > + continue; > + } > + kexec_crash_area.start = (e - kexec_crash_area.size) & PAGE_MASK; > } > #endif > } David _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |