[PATCH v2 2/3] Generic handling of multi-page exclusions
HATAYAMA Daisuke
d.hatayama at jp.fujitsu.com
Wed Apr 9 00:12:56 PDT 2014
From: Petr Tesarik <ptesarik at suse.cz>
Subject: Re: [PATCH v2 2/3] Generic handling of multi-page exclusions
Date: Tue, 8 Apr 2014 12:07:28 +0200
> On Tue, 08 Apr 2014 17:19:03 +0900 (JST)
> HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> wrote:
>
>> From: Petr Tesarik <ptesarik at suse.cz>
>> Subject: Re: [PATCH v2 2/3] Generic handling of multi-page exclusions
>> Date: Tue, 8 Apr 2014 08:54:36 +0200
>>
>> > On Tue, 08 Apr 2014 10:49:07 +0900 (JST)
>> > HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> wrote:
>> >>
>> >> Also, it seems to me better to introduce a new type for this
>> >> processing rather than extending existing code. struct mem_map_data is
>> >> not specific for the excluding processing.
>> >
>> > Kind of agreed. OTOH it will most likely be embedded in struct
>> > mem_map_data anyway, because exactly one such object per mm is needed.
>> >
>> > Petr T
>>
>> I don't understand well. It seems to me a single object is enough. Is
>> it possible to nr_pages cover multiple mm's?
>
> In fact, I believe it may be sufficient, but the loop nesting is like
> this (pseudo-code):
>
> for each cycle:
> for each mm:
> call __exclude_unnecessary_pages
>
> I'm not 100% sure that the region cannot change back and forth between
> two consecutive calls to __exclude_unnecessary_pages.
>
> Thinking about it some more, this can be harmful only if there are
> overlapping memory maps... Can it happen, or can I safely ignore this
> possibility?
>
> Petr T
The list of mm is sorted and not overlapping. See get_mm_sparsemem(),
get_mm_sparsemem(), get_mm_discontigmem() and get_mm_flatmem() from
get_mem_map(). In particular, in get_mm_discontigmem(), sorting and
removing overlapping portions are done explicitly.
Thanks.
HATAYAMA, Daisuke
More information about the kexec
mailing list