Message ID | 156630277243.8896.14703161064045769922.stgit@hbathini.in.ibm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Add FADump support on PowerNV platform | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch next (c9633332103e55bc73d80d07ead28b95a22a85a3) |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 30 lines checked |
Hari Bathini <hbathini@linux.ibm.com> writes: > diff --git a/arch/powerpc/platforms/powernv/opal-fadump.c b/arch/powerpc/platforms/powernv/opal-fadump.c > index 10f6086..6a05d51 100644 > --- a/arch/powerpc/platforms/powernv/opal-fadump.c > +++ b/arch/powerpc/platforms/powernv/opal-fadump.c > @@ -71,6 +71,30 @@ static void opal_fadump_get_config(struct fw_dump *fadump_conf, > */ > fadump_conf->reserve_dump_area_start = fdm->rgn[0].dest; > > + /* > + * Rarely, but it can so happen that system crashes before all > + * boot memory regions are registered for MPIPL. In such > + * cases, warn that the vmcore may not be accurate and proceed > + * anyway as that is the best bet considering free pages, cache > + * pages, user pages, etc are usually filtered out. > + * > + * Hope the memory that could not be preserved only has pages > + * that are usually filtered out while saving the vmcore. > + */ > + if (fdm->region_cnt > fdm->registered_regions) { > + pr_warn("Not all memory regions are saved as system seems to have crashed before all the memory regions could be registered for MPIPL!\n"); That line is rather long, I mean the actual printed line not the source line. Also "seems to" is vague, I think better to just state what we know to be true, ie: "Not all memory regions were saved". > + pr_warn(" The below boot memory regions could not be saved:\n"); > + i = fdm->registered_regions; > + while (i < fdm->region_cnt) { > + pr_warn("\t%d. base: 0x%llx, size: 0x%llx\n", (i + 1), > + fdm->rgn[i].src, fdm->rgn[i].size); > + i++; > + } > + > + pr_warn(" Wishing for the above regions to have only pages that are usually filtered out (user pages, free pages, etc..) and proceeding anyway..\n"); > + pr_warn(" But the sanity of the '/proc/vmcore' file depends on whether the above region(s) have any kernel pages or not.\n"); Again those lines are too long for people on small consoles. And "Wishing" is not really what people want to see when their system has crashed :) You should say something more definite, eg: "If the unsaved regions only contain pages that are filtered out (eg. free/user pages), the vmcore should still be usable. If the unsaved regions contain kernel pages the vmcore will be corrupted." Or something like that. cheers
diff --git a/arch/powerpc/platforms/powernv/opal-fadump.c b/arch/powerpc/platforms/powernv/opal-fadump.c index 10f6086..6a05d51 100644 --- a/arch/powerpc/platforms/powernv/opal-fadump.c +++ b/arch/powerpc/platforms/powernv/opal-fadump.c @@ -71,6 +71,30 @@ static void opal_fadump_get_config(struct fw_dump *fadump_conf, */ fadump_conf->reserve_dump_area_start = fdm->rgn[0].dest; + /* + * Rarely, but it can so happen that system crashes before all + * boot memory regions are registered for MPIPL. In such + * cases, warn that the vmcore may not be accurate and proceed + * anyway as that is the best bet considering free pages, cache + * pages, user pages, etc are usually filtered out. + * + * Hope the memory that could not be preserved only has pages + * that are usually filtered out while saving the vmcore. + */ + if (fdm->region_cnt > fdm->registered_regions) { + pr_warn("Not all memory regions are saved as system seems to have crashed before all the memory regions could be registered for MPIPL!\n"); + pr_warn(" The below boot memory regions could not be saved:\n"); + i = fdm->registered_regions; + while (i < fdm->region_cnt) { + pr_warn("\t%d. base: 0x%llx, size: 0x%llx\n", (i + 1), + fdm->rgn[i].src, fdm->rgn[i].size); + i++; + } + + pr_warn(" Wishing for the above regions to have only pages that are usually filtered out (user pages, free pages, etc..) and proceeding anyway..\n"); + pr_warn(" But the sanity of the '/proc/vmcore' file depends on whether the above region(s) have any kernel pages or not.\n"); + } + opal_fadump_update_config(fadump_conf, fdm); }
If all kernel boot memory regions are not registered for MPIPL before system crashes, try processing the partial crashdump but warn the user before proceeding. Signed-off-by: Hari Bathini <hbathini@linux.ibm.com> --- arch/powerpc/platforms/powernv/opal-fadump.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)