[Crash-utility] [PATCH V2] crash: arm32: a better way to identify LPAE enabled kernel
Dave Anderson
anderson at redhat.com
Mon Sep 22 18:40:41 UTC 2014
Hello Liu,
Your patch is queued for crash-7.0.9:
https://github.com/crash-utility/crash/commit/8185107da80bb58d8af9ce37be292f3d46828117
Thanks,
Dave
----- Original Message -----
> Thanks to Dave's suggest, I impove the way to identify
> LPAE enabled kernel for arm platform, for compatibility with
> some old kernel.
>
> If a vmcore santisfy one of the following conditions, It must
> be generated by a LPAE enabled kernel.
>
> (1) it has CONFIG_ARM_LPAE=y vmcore_info
> (2) swapper_pg_dir and its next symbol value differ by 0x5000
>
> changes from V1:
> - drop function next_symbol_value
>
> Signed-off-by: Liu Hua <sdu.liu at huawei.com>
> ---
> arm.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/arm.c b/arm.c
> index cb7d841..e7d3dbc 100644
> --- a/arm.c
> +++ b/arm.c
> @@ -190,6 +190,8 @@ void
> arm_init(int when)
> {
> ulong vaddr;
> + char *string;
> + struct syment *sp;
>
> #if defined(__i386__) || defined(__x86_64__)
> if (ACTIVE())
> @@ -229,8 +231,13 @@ arm_init(int when)
> * LPAE requires an additional page for the PGD,
> * so PG_DIR_SIZE = 0x5000 for LPAE
> */
> - if ((symbol_value("_text") - symbol_value("swapper_pg_dir")) == 0x5000)
> + if ((string = pc->read_vmcoreinfo("CONFIG_ARM_LPAE"))) {
> machdep->flags |= PAE;
> + free(string);
> + } else if ((sp = next_symbol("swapper_pg_dir", NULL)) &&
> + (sp->value - symbol_value("swapper_pg_dir")) == 0x5000)
> + machdep->flags |= PAE;
> +
> machdep->kvbase = symbol_value("_stext") & ~KVBASE_MASK;
> machdep->identity_map_base = machdep->kvbase;
> machdep->is_kvaddr = arm_is_kvaddr;
> --
> 1.9.0
>
>
More information about the Crash-utility
mailing list