Re: [PATCH] kdump, vmcoreinfo: Export sme_me_mask value to vmcoreinfo

From: lijiang
Date: Mon Oct 29 2018 - 06:12:42 EST


å 2018å10æ29æ 17:57, Borislav Petkov åé:
> On Mon, Oct 29, 2018 at 05:29:16PM +0800, lijiang wrote:
>> Ok, i will change it to a local variable and export it.
>
> Why do you have to export it at all?!
>

I mean that i will write the value of local variable to the vmcoreinfo. For example:

diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c
index 4c8acdfdc5a7..3cc975e7ff8f 100644
--- a/arch/x86/kernel/machine_kexec_64.c
+++ b/arch/x86/kernel/machine_kexec_64.c
@@ -352,11 +352,16 @@ void machine_kexec(struct kimage *image)

void arch_crash_save_vmcoreinfo(void)
{
+ u64 sme_mask = 0;
+
VMCOREINFO_NUMBER(phys_base);
VMCOREINFO_SYMBOL(init_top_pgt);
vmcoreinfo_append_str("NUMBER(pgtable_l5_enabled)=%d\n",
pgtable_l5_enabled());

+ sme_mask = sme_me_mask;
+ VMCOREINFO_NUMBER(sme_mask);
+
#ifdef CONFIG_NUMA
VMCOREINFO_SYMBOL(node_data);
VMCOREINFO_LENGTH(node_data, MAX_NUMNODES);
--


Because the crash kernel's page table(pgd/pud/pmd/pte) contains
the memory encryption mask(bit 47), makedumpfile needs to remove
the sme mask to obtain the true physical address.


Thanks.
Lianbo