Message ID | 158444819283.31599.12155058652686614304.stgit@jupiter (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ppc/spapr: Set the effective address provided flag in mc error log. | expand |
Patchew URL: https://patchew.org/QEMU/158444819283.31599.12155058652686614304.stgit@jupiter/ Hi, This series seems to have some coding style problems. See output below for more information: Subject: [PATCH] ppc/spapr: Set the effective address provided flag in mc error log. Message-id: 158444819283.31599.12155058652686614304.stgit@jupiter Type: series === TEST SCRIPT BEGIN === #!/bin/bash git rev-parse base > /dev/null || exit 0 git config --local diff.renamelimit 0 git config --local diff.renames True git config --local diff.algorithm histogram ./scripts/checkpatch.pl --mailback base.. === TEST SCRIPT END === Switched to a new branch 'test' 62d8ada ppc/spapr: Set the effective address provided flag in mc error log. === OUTPUT BEGIN === ERROR: code indent should never use tabs #57: FILE: hw/ppc/spapr_events.c:739: +^Iswitch (ext_elog->mc.error_type) {$ ERROR: code indent should never use tabs #58: FILE: hw/ppc/spapr_events.c:740: +^Icase RTAS_LOG_V6_MC_TYPE_UE:$ ERROR: code indent should never use tabs #59: FILE: hw/ppc/spapr_events.c:741: +^I^Iext_elog->mc.sub_err_type |= RTAS_LOG_V6_MC_UE_EA_ADDR_PROVIDED;$ ERROR: code indent should never use tabs #60: FILE: hw/ppc/spapr_events.c:742: +^I^Ibreak;$ ERROR: code indent should never use tabs #61: FILE: hw/ppc/spapr_events.c:743: +^Icase RTAS_LOG_V6_MC_TYPE_SLB:$ ERROR: code indent should never use tabs #62: FILE: hw/ppc/spapr_events.c:744: +^Icase RTAS_LOG_V6_MC_TYPE_ERAT:$ ERROR: code indent should never use tabs #63: FILE: hw/ppc/spapr_events.c:745: +^Icase RTAS_LOG_V6_MC_TYPE_TLB:$ ERROR: code indent should never use tabs #64: FILE: hw/ppc/spapr_events.c:746: +^I^Iext_elog->mc.sub_err_type |= RTAS_LOG_V6_MC_EA_ADDR_PROVIDED;$ ERROR: code indent should never use tabs #65: FILE: hw/ppc/spapr_events.c:747: +^I^Ibreak;$ ERROR: code indent should never use tabs #66: FILE: hw/ppc/spapr_events.c:748: +^Idefault:$ ERROR: code indent should never use tabs #67: FILE: hw/ppc/spapr_events.c:749: +^I^Ibreak;$ ERROR: code indent should never use tabs #68: FILE: hw/ppc/spapr_events.c:750: +^I}$ total: 12 errors, 0 warnings, 50 lines checked Commit 62d8adac0688 (ppc/spapr: Set the effective address provided flag in mc error log.) has style problems, please review. If any of these errors are false positives report them to the maintainer, see CHECKPATCH in MAINTAINERS. === OUTPUT END === Test command exited with code: 1 The full log is available at http://patchew.org/logs/158444819283.31599.12155058652686614304.stgit@jupiter/testing.checkpatch/?type=message. --- Email generated automatically by Patchew [https://patchew.org/]. Please send your feedback to patchew-devel@redhat.com
On Tue, 17 Mar 2020 08:51:50 -0700 (PDT) no-reply@patchew.org wrote: > Patchew URL: https://patchew.org/QEMU/158444819283.31599.12155058652686614304.stgit@jupiter/ > > > > Hi, > > This series seems to have some coding style problems. See output below for > more information: > > Subject: [PATCH] ppc/spapr: Set the effective address provided flag in mc error log. > Message-id: 158444819283.31599.12155058652686614304.stgit@jupiter > Type: series > > === TEST SCRIPT BEGIN === > #!/bin/bash > git rev-parse base > /dev/null || exit 0 > git config --local diff.renamelimit 0 > git config --local diff.renames True > git config --local diff.algorithm histogram > ./scripts/checkpatch.pl --mailback base.. > === TEST SCRIPT END === > > Switched to a new branch 'test' > 62d8ada ppc/spapr: Set the effective address provided flag in mc error log. > > === OUTPUT BEGIN === > ERROR: code indent should never use tabs > #57: FILE: hw/ppc/spapr_events.c:739: > +^Iswitch (ext_elog->mc.error_type) {$ > Yeah no tabs allowed in the QEMU code (see CODING_STYLE.rst). If your editor is emacs, you can consider setting these: (setq indent-tabs-mode nil) (setq c-basic-offset 4)) > ERROR: code indent should never use tabs > #58: FILE: hw/ppc/spapr_events.c:740: > +^Icase RTAS_LOG_V6_MC_TYPE_UE:$ > > ERROR: code indent should never use tabs > #59: FILE: hw/ppc/spapr_events.c:741: > +^I^Iext_elog->mc.sub_err_type |= RTAS_LOG_V6_MC_UE_EA_ADDR_PROVIDED;$ > > ERROR: code indent should never use tabs > #60: FILE: hw/ppc/spapr_events.c:742: > +^I^Ibreak;$ > > ERROR: code indent should never use tabs > #61: FILE: hw/ppc/spapr_events.c:743: > +^Icase RTAS_LOG_V6_MC_TYPE_SLB:$ > > ERROR: code indent should never use tabs > #62: FILE: hw/ppc/spapr_events.c:744: > +^Icase RTAS_LOG_V6_MC_TYPE_ERAT:$ > > ERROR: code indent should never use tabs > #63: FILE: hw/ppc/spapr_events.c:745: > +^Icase RTAS_LOG_V6_MC_TYPE_TLB:$ > > ERROR: code indent should never use tabs > #64: FILE: hw/ppc/spapr_events.c:746: > +^I^Iext_elog->mc.sub_err_type |= RTAS_LOG_V6_MC_EA_ADDR_PROVIDED;$ > > ERROR: code indent should never use tabs > #65: FILE: hw/ppc/spapr_events.c:747: > +^I^Ibreak;$ > > ERROR: code indent should never use tabs > #66: FILE: hw/ppc/spapr_events.c:748: > +^Idefault:$ > > ERROR: code indent should never use tabs > #67: FILE: hw/ppc/spapr_events.c:749: > +^I^Ibreak;$ > > ERROR: code indent should never use tabs > #68: FILE: hw/ppc/spapr_events.c:750: > +^I}$ > > total: 12 errors, 0 warnings, 50 lines checked > > Commit 62d8adac0688 (ppc/spapr: Set the effective address provided flag in mc error log.) has style problems, please review. If any of these errors > are false positives report them to the maintainer, see > CHECKPATCH in MAINTAINERS. > === OUTPUT END === > > Test command exited with code: 1 > > > The full log is available at > http://patchew.org/logs/158444819283.31599.12155058652686614304.stgit@jupiter/testing.checkpatch/?type=message. > --- > Email generated automatically by Patchew [https://patchew.org/]. > Please send your feedback to patchew-devel@redhat.com
On 2020-03-17 17:11:22 Tue, Greg Kurz wrote: > On Tue, 17 Mar 2020 08:51:50 -0700 (PDT) > no-reply@patchew.org wrote: > > > Patchew URL: https://patchew.org/QEMU/158444819283.31599.12155058652686614304.stgit@jupiter/ > > > > > > > > Hi, > > > > This series seems to have some coding style problems. See output below for > > more information: > > > > Subject: [PATCH] ppc/spapr: Set the effective address provided flag in mc error log. > > Message-id: 158444819283.31599.12155058652686614304.stgit@jupiter > > Type: series > > > > === TEST SCRIPT BEGIN === > > #!/bin/bash > > git rev-parse base > /dev/null || exit 0 > > git config --local diff.renamelimit 0 > > git config --local diff.renames True > > git config --local diff.algorithm histogram > > ./scripts/checkpatch.pl --mailback base.. > > === TEST SCRIPT END === > > > > Switched to a new branch 'test' > > 62d8ada ppc/spapr: Set the effective address provided flag in mc error log. > > > > === OUTPUT BEGIN === > > ERROR: code indent should never use tabs > > #57: FILE: hw/ppc/spapr_events.c:739: > > +^Iswitch (ext_elog->mc.error_type) {$ > > > > Yeah no tabs allowed in the QEMU code (see CODING_STYLE.rst). > > If your editor is emacs, you can consider setting these: > > (setq indent-tabs-mode nil) > (setq c-basic-offset 4)) My bad. Will fix it and respin v2. Thanks, -Mahesh.
diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index 8b32b7eea5..98a32a2e2e 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -243,6 +243,14 @@ struct rtas_event_log_v6_mc { #define RTAS_LOG_V6_MC_TLB_PARITY 1 #define RTAS_LOG_V6_MC_TLB_MULTIHIT 2 #define RTAS_LOG_V6_MC_TLB_INDETERMINATE 3 +/* + * Per PAPR, + * For UE error type, set bit 1 of sub_err_type to indicate effective addr is + * provided. For other error types (SLB/ERAT/TLB), set bit 0 to indicate + * same. + */ +#define RTAS_LOG_V6_MC_UE_EA_ADDR_PROVIDED 0x40 +#define RTAS_LOG_V6_MC_EA_ADDR_PROVIDED 0x80 uint8_t reserved_1[6]; uint64_t effective_address; uint64_t logical_address; @@ -726,6 +734,22 @@ void spapr_hotplug_req_remove_by_count_indexed(SpaprDrcType drc_type, RTAS_LOG_V6_HP_ACTION_REMOVE, drc_type, &drc_id); } +static void spapr_mc_set_ea_provided_flag(struct mc_extended_log *ext_elog) +{ + switch (ext_elog->mc.error_type) { + case RTAS_LOG_V6_MC_TYPE_UE: + ext_elog->mc.sub_err_type |= RTAS_LOG_V6_MC_UE_EA_ADDR_PROVIDED; + break; + case RTAS_LOG_V6_MC_TYPE_SLB: + case RTAS_LOG_V6_MC_TYPE_ERAT: + case RTAS_LOG_V6_MC_TYPE_TLB: + ext_elog->mc.sub_err_type |= RTAS_LOG_V6_MC_EA_ADDR_PROVIDED; + break; + default: + break; + } +} + static uint32_t spapr_mce_get_elog_type(PowerPCCPU *cpu, bool recovered, struct mc_extended_log *ext_elog) { @@ -751,6 +775,7 @@ static uint32_t spapr_mce_get_elog_type(PowerPCCPU *cpu, bool recovered, ext_elog->mc.sub_err_type = mc_derror_table[i].error_subtype; if (mc_derror_table[i].dar_valid) { ext_elog->mc.effective_address = cpu_to_be64(env->spr[SPR_DAR]); + spapr_mc_set_ea_provided_flag(ext_elog); } summary |= mc_derror_table[i].initiator @@ -769,6 +794,7 @@ static uint32_t spapr_mce_get_elog_type(PowerPCCPU *cpu, bool recovered, ext_elog->mc.sub_err_type = mc_ierror_table[i].error_subtype; if (mc_ierror_table[i].nip_valid) { ext_elog->mc.effective_address = cpu_to_be64(env->nip); + spapr_mc_set_ea_provided_flag(ext_elog); } summary |= mc_ierror_table[i].initiator
Per PAPR, it is expected to set effective address provided flag in sub_err_type member of mc extended error log (i.e rtas_event_log_v6_mc.sub_err_type). This somehow got missed in original fwnmi-mce patch series. Hence guest fails to extract effective address from mce rtas log. This patch fixes that. Without this patch guest MCE logs fails print DAR value: [ 11.933608] Disabling lock debugging due to kernel taint [ 11.933773] MCE: CPU0: machine check (Severe) Host TLB Multihit [Recovered] [ 11.933979] MCE: CPU0: NIP: [c000000000090b34] radix__flush_tlb_range_psize+0x194/0xf00 [ 11.934223] MCE: CPU0: Initiator CPU [ 11.934341] MCE: CPU0: Unknown After the change: [ 22.454149] Disabling lock debugging due to kernel taint [ 22.454316] MCE: CPU0: machine check (Severe) Host TLB Multihit DAR: deadbeefdeadbeef [Recovered] [ 22.454605] MCE: CPU0: NIP: [c0000000003e5804] kmem_cache_alloc+0x84/0x330 [ 22.454820] MCE: CPU0: Initiator CPU [ 22.454944] MCE: CPU0: Unknown Signed-off-by: Mahesh Salgaonkar <mahesh@linux.ibm.com> --- hw/ppc/spapr_events.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)