[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20161014031304.GA3483@dhcp-128-65.nay.redhat.com>
Date: Fri, 14 Oct 2016 11:13:04 +0800
From: Dave Young <dyoung@...hat.com>
To: Baoquan He <bhe@...hat.com>, ats-kumagai@...jp.nec.com
Cc: Pratyush Anand <panand@...hat.com>, keescook@...omium.org,
ats-kumagai@...jp.nec.com, kexec@...ts.infradead.org,
linux-kernel@...r.kernel.org, thgarnie@...gle.com,
takahiro.akashi@...aro.org, mingo@...hat.com,
"Eric W. Biederman" <ebiederm@...ssion.com>, hpa@...or.com,
tglx@...utronix.de, akpm@...ux-foundation.org, tonli@...hat.com
Subject: Re: [PATCH] kexec: Export memory sections virtual addresses to
vmcoreinfo
On 10/13/16 at 04:53pm, Baoquan He wrote:
> Hi Pratyush,
>
> On 10/12/16 at 02:39pm, Pratyush Anand wrote:
> >
> >
> > On Wednesday 12 October 2016 05:56 AM, Baoquan He wrote:
> > > > PAGE_OFFSET can be get via vaddr - paddr from elf pt_loads so only
> > > > > VMALLOC_BASE and VMEMMAP_BASE is necessary..
> > > Well, yes, I was wrong. I wrongly thought of kernel text virtual address
> > > when I wrote the reply
> >
> > So, if you can get PAGE_OFFSET then, probably you do not need to know
> > anything else.
> >
> > I think, we can simplify makedumpfile code, where we do not need to depend
> > on VMALLOC_START or VMEMMAP_START etc.
> >
> > "If we know PAGE_OFFSET, we can read from swapper space. If we can read from
> > swapper space, then we can know PA of any kernel VA, whether it is VMALLOC,
> > or vmemmap or module or kernel text area."
>
> Check makedumpfile code and re-think about this, it's really like you
> said, we can convert VA to PA by swapper_pg_dir or init_level4_pgt. But the
> reason why we have to involve VMALLOC_START and VMEMMAP_START is that in
> x86_64 direct mapping and kernel text mapping are all linear mapping.
> Linear mapping can let us do a very efficient translation from VA to
> PA. Especially for page filtering, we need get PA of mm related data.
> All of them need convert by swapper_pg_dir or init_level4_pgt, that's
> inefficient, imagine the current system usually own many Tera bytes of
> physical memory.
>
Atsushi, what do you think about above concern? Ideally we should do it
in userspace instead of add more symbols. Maybe do a test on large
memory machine is necessary.
> So here though we can pick up crash memory regions from elf program
> header of vmcore and calculate the PAGE_OFFSET, we still need
> VMALLOC_START and VMEMMAP_START.
>
> Thanks
> Baoquan
> >
> >
> > In fact, I have cleanup patches for ARM64 [1], which take above approach and
> > get rid of need of VMALLOC_START or VMEMMAP_START etc. I will be sending
> > them upstream soon.
> >
> > Probably, x86 can take the similar approach.
> >
> > ~Pratyush
> >
> > [1] https://github.com/pratyushanand/makedumpfile/blob/arm64_devel/arch/arm64.c#L228
> >
>
> _______________________________________________
> kexec mailing list
> kexec@...ts.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
Thanks
Dave
Powered by blists - more mailing lists