|
[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 |