All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: "Vlastimil Babka" <vbabka@suse.cz>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Baoquan He" <bhe@redhat.com>, "Dave Young" <dyoung@redhat.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Hari Bathini" <hbathini@linux.vnet.ibm.com>,
	"Huang Ying" <ying.huang@intel.com>,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Matthew Wilcox" <mawilcox@microsoft.com>,
	"Miles Chen" <miles.chen@mediatek.com>,
	"Pavel Tatashin" <pasha.tatashin@oracle.com>,
	"Petr Tesarik" <ptesarik@suse.cz>
Subject: Re: [PATCH v1 0/2] mm/kdump: exclude reserved pages in dumps
Date: Thu, 26 Jul 2018 10:37:33 +0200	[thread overview]
Message-ID: <60975612-9b91-65dd-03d8-579ba23a6c01@redhat.com> (raw)
In-Reply-To: <20180726082723.GB28386@dhcp22.suse.cz>

On 26.07.2018 10:27, Michal Hocko wrote:
> On Wed 25-07-18 16:20:41, David Hildenbrand wrote:
>> On 25.07.2018 15:51, Michal Hocko wrote:
>>> On Tue 24-07-18 16:13:09, David Hildenbrand wrote:
>>> [...]
>>>> So I see right now:
>>>>
>>>> - Pg_reserved + e.g. new page type (or some other unique identifier in
>>>>   combination with Pg_reserved)
>>>>  -> Avoid reads of pages we know are offline
>>>> - extend is_ram_page()
>>>>  -> Fake zero memory for pages we know are offline
>>>>
>>>> Or even both (avoid reading and don't crash the kernel if it is being done).
>>>
>>> I really fail to see how that can work without kernel being aware of
>>> PageOffline. What will/should happen if you run an old kdump tool on a
>>> kernel with this partially offline memory?
>>>
>>
>> New kernel with old dump tool:
>>
>> a) we have not fixed up is_ram_page()
>>
>> -> crash, as we access memory we shouldn't
> 
> this is not acceptable, right? You do not want to crash your crash
> kernel ;)

Well, the same can happen today with PageHWPoison. The "new" kernel will
happily access such pages and crash as far as I understand (it has has
no idea of the old struct pages). Of course, this is "less likely" than
what I describe.

> 
>> b) we have fixed up is_ram_page()
>>
>> -> We have a callback to check for applicable memory in the hypervisor
>> whether the parts are accessible / online or not accessible / offline.
>> (e.g. via a device driver that controls a certain memory region)
>>
>> -> Don't read, but fake a page full of 0
>>
>>
>> So instead of the kernel being aware of it, it asks via is_ram_page()
>> the hypervisor.
> 
> I am still confused why do we even care about hypervisor. What if
> somebody wants to have partial memory hotplug on native OS?

Good point I was ignoring so far (too much focusing on my use case I
assume). So for these, we would have to catch illegal accesses and

a) report them (-EINVAL / - EIO) as you said
b) fake a zero page

I assume catching illegal accesses should be possible. Might require
some work across all architectures.

Still, dump tools should in addition not even try to read if possible.

>  
>> I don't think a) is a problem. AFAICS, we have to update makedumpfile
>> for every new kernel. We can perform changes and update makedumpfile
>> to be compatible with new dump tools.
> 
> Not really. You simply do not crash the kernel just because you are
> trying to dump the already crashed kernel.
> 
>> E.g. remember SECTION_IS_ONLINE you introduced ? It broke dump
>> tools and required
> 
> But has it crashed the kernel when reading the dump? If yes then the
> whole dumping is fragile as hell...

No, I think it simply didn't work. At least that's what I assume ;) I
was rather saying that dump tools may have to be fixed up to work with a
new kernel.


-- 

Thanks,

David / dhildenb

  reply	other threads:[~2018-07-26  8:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-20 12:34 [PATCH v1 0/2] mm/kdump: exclude reserved pages in dumps David Hildenbrand
2018-07-20 12:34 ` [PATCH v1 1/2] mm: clarify semantics of reserved pages David Hildenbrand
2018-07-20 12:34   ` David Hildenbrand
2018-07-23 10:48   ` Michal Hocko
2018-07-23 10:48     ` Michal Hocko
2018-07-20 12:34 ` [PATCH v1 2/2] kdump: include PG_reserved value in VMCOREINFO David Hildenbrand
2018-07-23 11:45 ` [PATCH v1 0/2] mm/kdump: exclude reserved pages in dumps Vlastimil Babka
2018-07-23 12:30   ` Michal Hocko
2018-07-23 17:20     ` David Hildenbrand
2018-07-24  7:25       ` Michal Hocko
2018-07-24  8:46         ` David Hildenbrand
2018-07-24  8:53           ` Michal Hocko
2018-07-24  9:18             ` David Hildenbrand
2018-07-24 12:17         ` David Hildenbrand
2018-07-24 13:13           ` Michal Hocko
2018-07-24 13:27             ` David Hildenbrand
2018-07-24 13:35               ` Michal Hocko
2018-07-24 14:13                 ` David Hildenbrand
2018-07-25 13:51                   ` Michal Hocko
2018-07-25 14:20                     ` David Hildenbrand
2018-07-26  8:27                       ` Michal Hocko
2018-07-26  8:37                         ` David Hildenbrand [this message]
2018-07-24  9:47     ` Vlastimil Babka
2018-07-24 11:19       ` Michal Hocko
2018-07-24 12:22         ` Vlastimil Babka
2018-07-24 12:33           ` David Hildenbrand
2018-07-24 13:06           ` Michal Hocko
2018-07-23 17:12   ` David Hildenbrand
2018-07-24  7:22     ` Michal Hocko
2018-07-24  9:48       ` Vlastimil Babka
2018-07-26  8:22       ` David Hildenbrand
2018-07-26  8:30         ` Michal Hocko
2018-07-26  8:45           ` David Hildenbrand
2018-07-26 19:50             ` Andrew Morton
2018-07-30  8:17               ` David Hildenbrand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=60975612-9b91-65dd-03d8-579ba23a6c01@redhat.com \
    --to=david@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=bhe@redhat.com \
    --cc=dyoung@redhat.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hbathini@linux.vnet.ibm.com \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=marcandre.lureau@redhat.com \
    --cc=mawilcox@microsoft.com \
    --cc=mhocko@kernel.org \
    --cc=miles.chen@mediatek.com \
    --cc=pasha.tatashin@oracle.com \
    --cc=ptesarik@suse.cz \
    --cc=vbabka@suse.cz \
    --cc=ying.huang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.