From: "H. Peter Anvin" <hpa@zytor.com>
To: Daniel Kiper <daniel.kiper@oracle.com>,
andrew.cooper3@citrix.com, ebiederm@xmission.com,
jbeulich@suse.com, konrad.wilk@oracle.com,
maxim.uvarov@oracle.com, mingo@redhat.com, tglx@linutronix.de,
vgoyal@redhat.com, x86@kernel.org, kexec@lists.infradead.org,
linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org,
xen-devel@lists.xensource.com
Subject: Re: [PATCH v3 02/11] x86/kexec: Add extra pointers to transition page table PGD, PUD, PMD and PTE
Date: Wed, 26 Dec 2012 19:33:37 -0800 [thread overview]
Message-ID: <083de527-84b0-4450-8e89-055103305afa@email.android.com> (raw)
In-Reply-To: <1356574740-6806-3-git-send-email-daniel.kiper@oracle.com>
Hmm... this code is being redone at the moment... this might conflict.
Daniel Kiper <daniel.kiper@oracle.com> wrote:
>Some implementations (e.g. Xen PVOPS) could not use part of identity
>page table
>to construct transition page table. It means that they require separate
>PUDs,
>PMDs and PTEs for virtual and physical (identity) mapping. To satisfy
>that
>requirement add extra pointer to PGD, PUD, PMD and PTE and align
>existing code.
>
>Signed-off-by: Daniel Kiper <daniel.kiper@oracle.com>
>---
> arch/x86/include/asm/kexec.h | 10 +++++++---
> arch/x86/kernel/machine_kexec_64.c | 12 ++++++------
> 2 files changed, 13 insertions(+), 9 deletions(-)
>
>diff --git a/arch/x86/include/asm/kexec.h
>b/arch/x86/include/asm/kexec.h
>index 6080d26..cedd204 100644
>--- a/arch/x86/include/asm/kexec.h
>+++ b/arch/x86/include/asm/kexec.h
>@@ -157,9 +157,13 @@ struct kimage_arch {
> };
> #else
> struct kimage_arch {
>- pud_t *pud;
>- pmd_t *pmd;
>- pte_t *pte;
>+ pgd_t *pgd;
>+ pud_t *pud0;
>+ pud_t *pud1;
>+ pmd_t *pmd0;
>+ pmd_t *pmd1;
>+ pte_t *pte0;
>+ pte_t *pte1;
> };
> #endif
>
>diff --git a/arch/x86/kernel/machine_kexec_64.c
>b/arch/x86/kernel/machine_kexec_64.c
>index b3ea9db..976e54b 100644
>--- a/arch/x86/kernel/machine_kexec_64.c
>+++ b/arch/x86/kernel/machine_kexec_64.c
>@@ -137,9 +137,9 @@ out:
>
> static void free_transition_pgtable(struct kimage *image)
> {
>- free_page((unsigned long)image->arch.pud);
>- free_page((unsigned long)image->arch.pmd);
>- free_page((unsigned long)image->arch.pte);
>+ free_page((unsigned long)image->arch.pud0);
>+ free_page((unsigned long)image->arch.pmd0);
>+ free_page((unsigned long)image->arch.pte0);
> }
>
> static int init_transition_pgtable(struct kimage *image, pgd_t *pgd)
>@@ -157,7 +157,7 @@ static int init_transition_pgtable(struct kimage
>*image, pgd_t *pgd)
> pud = (pud_t *)get_zeroed_page(GFP_KERNEL);
> if (!pud)
> goto err;
>- image->arch.pud = pud;
>+ image->arch.pud0 = pud;
> set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE));
> }
> pud = pud_offset(pgd, vaddr);
>@@ -165,7 +165,7 @@ static int init_transition_pgtable(struct kimage
>*image, pgd_t *pgd)
> pmd = (pmd_t *)get_zeroed_page(GFP_KERNEL);
> if (!pmd)
> goto err;
>- image->arch.pmd = pmd;
>+ image->arch.pmd0 = pmd;
> set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE));
> }
> pmd = pmd_offset(pud, vaddr);
>@@ -173,7 +173,7 @@ static int init_transition_pgtable(struct kimage
>*image, pgd_t *pgd)
> pte = (pte_t *)get_zeroed_page(GFP_KERNEL);
> if (!pte)
> goto err;
>- image->arch.pte = pte;
>+ image->arch.pte0 = pte;
> set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
> }
> pte = pte_offset_kernel(pmd, vaddr);
--
Sent from my mobile phone. Please excuse brevity and lack of formatting.
next prev parent reply other threads:[~2012-12-27 3:34 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-27 2:18 [PATCH v3 00/11] xen: Initial kexec/kdump implementation Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 01/11] kexec: introduce kexec firmware support Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 02/11] x86/kexec: Add extra pointers to transition page table PGD, PUD, PMD and PTE Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 03/11] xen: Introduce architecture independent data for kexec/kdump Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 04/11] x86/xen: Introduce architecture dependent " Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 05/11] x86/xen: Register resources required by kexec-tools Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 06/11] x86/xen: Add i386 kexec/kdump implementation Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 07/11] x86/xen: Add x86_64 " Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 08/11] x86/xen: Add kexec/kdump Kconfig and makefile rules Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 09/11] x86/xen/enlighten: Add init and crash kexec/kdump hooks Daniel Kiper
2012-12-27 2:18 ` [PATCH v3 10/11] drivers/xen: Export vmcoreinfo through sysfs Daniel Kiper
2012-12-27 2:19 ` [PATCH v3 11/11] x86: Add Xen kexec control code size check to linker script Daniel Kiper
2012-12-27 18:53 ` [PATCH v3 09/11] x86/xen/enlighten: Add init and crash kexec/kdump hooks H. Peter Anvin
2012-12-27 4:00 ` [PATCH v3 06/11] x86/xen: Add i386 kexec/kdump implementation H. Peter Anvin
2012-12-27 3:33 ` H. Peter Anvin [this message]
2013-01-03 9:34 ` [PATCH v3 02/11] x86/kexec: Add extra pointers to transition page table PGD, PUD, PMD and PTE Jan Beulich
2013-01-04 15:15 ` Daniel Kiper
2013-01-04 16:12 ` Jan Beulich
2013-01-04 17:25 ` Daniel Kiper
2013-01-07 9:48 ` Jan Beulich
2013-01-07 12:52 ` Daniel Kiper
2013-01-07 13:05 ` Jan Beulich
2013-01-09 18:42 ` Daniel Kiper
2013-01-10 14:07 ` [Xen-devel] " David Vrabel
2013-01-11 13:36 ` Daniel Kiper
2012-12-27 4:46 ` [PATCH v3 01/11] kexec: introduce kexec firmware support Eric W. Biederman
2012-12-27 4:02 ` [PATCH v3 00/11] xen: Initial kexec/kdump implementation H. Peter Anvin
2012-12-27 7:53 ` Eric W. Biederman
2012-12-27 14:18 ` Andrew Cooper
2012-12-27 18:02 ` Eric W. Biederman
2013-01-02 11:26 ` [Xen-devel] " Andrew Cooper
2013-01-02 11:47 ` Eric W. Biederman
2013-01-03 9:31 ` Jan Beulich
2013-01-04 14:22 ` Daniel Kiper
2013-01-04 14:34 ` Konrad Rzeszutek Wilk
2013-01-04 14:34 ` Ian Campbell
2013-01-04 14:38 ` David Vrabel
2013-01-04 17:01 ` Daniel Kiper
2013-01-10 14:19 ` David Vrabel
2013-01-11 13:22 ` Daniel Kiper
2013-01-11 15:22 ` David Vrabel
2013-01-11 17:34 ` Daniel Kiper
2013-01-11 20:05 ` Eric W. Biederman
2013-01-04 14:41 ` Jan Beulich
2013-01-04 17:07 ` Daniel Kiper
2013-01-04 19:11 ` Konrad Rzeszutek Wilk
2013-01-07 10:25 ` Ian Campbell
2013-01-07 10:46 ` Andrew Cooper
2013-01-07 10:54 ` Ian Campbell
2013-01-07 12:34 ` Daniel Kiper
2013-01-07 13:49 ` Ian Campbell
2013-01-11 13:47 ` Daniel Kiper
2013-01-07 16:20 ` Konrad Rzeszutek Wilk
2013-01-11 4:16 ` Eric W. Biederman
2013-01-11 16:55 ` Konrad Rzeszutek Wilk
2013-01-11 20:26 ` H. Peter Anvin
2013-01-11 20:43 ` Vivek Goyal
2013-01-11 20:26 ` Eric W. Biederman
2013-01-11 20:52 ` Vivek Goyal
2013-01-11 21:03 ` H. Peter Anvin
2013-01-11 21:08 ` Vivek Goyal
2013-01-11 21:14 ` H. Peter Anvin
2013-01-02 15:27 ` Ian Campbell
2012-12-27 23:19 [PATCH v3 02/11] x86/kexec: Add extra pointers to transition page table PGD, PUD, PMD and PTE Daniel Kiper
2012-12-28 12:59 ` Borislav Petkov
2013-01-04 14:12 ` Daniel Kiper
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=083de527-84b0-4450-8e89-055103305afa@email.android.com \
--to=hpa@zytor.com \
--cc=andrew.cooper3@citrix.com \
--cc=daniel.kiper@oracle.com \
--cc=ebiederm@xmission.com \
--cc=jbeulich@suse.com \
--cc=kexec@lists.infradead.org \
--cc=konrad.wilk@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maxim.uvarov@oracle.com \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=vgoyal@redhat.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xensource.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®