From: Jan Kiszka <jan.kiszka@siemens.com> To: Avi Kivity <avi@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com> Cc: kvm@vger.kernel.org, qemu-devel@nongnu.org, Huang Ying <ying.huang@intel.com>, Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>, Jin Dongming <jin.dongming@np.css.fujitsu.com> Subject: [PATCH 03/13] x86: Small cleanups of MCE helpers Date: Tue, 15 Feb 2011 09:23:27 +0100 [thread overview] Message-ID: <a475fa630d264a079f484be09634dfbda0049c8e.1297758211.git.jan.kiszka@siemens.com> (raw) In-Reply-To: <cover.1297758211.git.jan.kiszka@siemens.com> In-Reply-To: <cover.1297758211.git.jan.kiszka@siemens.com> Fix some code style issues, use proper headers, and align to cpu_x86 naming scheme. No functional changes. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> CC: Huang Ying <ying.huang@intel.com> CC: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> CC: Jin Dongming <jin.dongming@np.css.fujitsu.com> --- cpu-all.h | 4 ---- monitor.c | 2 +- target-i386/cpu.h | 5 +++++ target-i386/helper.c | 41 ++++++++++++++++++++++++----------------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/cpu-all.h b/cpu-all.h index 87b0f86..caf5e6c 100644 --- a/cpu-all.h +++ b/cpu-all.h @@ -971,8 +971,4 @@ void dump_exec_info(FILE *f, fprintf_function cpu_fprintf); int cpu_memory_rw_debug(CPUState *env, target_ulong addr, uint8_t *buf, int len, int is_write); -void cpu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, - uint64_t mcg_status, uint64_t addr, uint64_t misc, - int broadcast); - #endif /* CPU_ALL_H */ diff --git a/monitor.c b/monitor.c index 22ae3bb..45b0cc2 100644 --- a/monitor.c +++ b/monitor.c @@ -2713,7 +2713,7 @@ static void do_inject_mce(Monitor *mon, const QDict *qdict) for (cenv = first_cpu; cenv != NULL; cenv = cenv->next_cpu) { if (cenv->cpu_index == cpu_index && cenv->mcg_cap) { - cpu_inject_x86_mce(cenv, bank, status, mcg_status, addr, misc, + cpu_x86_inject_mce(cenv, bank, status, mcg_status, addr, misc, broadcast); break; } diff --git a/target-i386/cpu.h b/target-i386/cpu.h index 75156e7..52bb48e 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -986,4 +986,9 @@ static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, void do_cpu_init(CPUState *env); void do_cpu_sipi(CPUState *env); + +void cpu_x86_inject_mce(CPUState *cenv, int bank, uint64_t status, + uint64_t mcg_status, uint64_t addr, uint64_t misc, + int broadcast); + #endif /* CPU_I386_H */ diff --git a/target-i386/helper.c b/target-i386/helper.c index f41416f..ba3bed9 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -28,6 +28,9 @@ #include "qemu-common.h" #include "kvm.h" #include "kvm_x86.h" +#ifndef CONFIG_USER_ONLY +#include "sysemu.h" +#endif //#define DEBUG_MMU @@ -1063,11 +1066,9 @@ static void breakpoint_handler(CPUState *env) prev_debug_excp_handler(env); } -/* This should come from sysemu.h - if we could include it here... */ -void qemu_system_reset_request(void); - -static void qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, - uint64_t mcg_status, uint64_t addr, uint64_t misc) +static void +qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, + uint64_t mcg_status, uint64_t addr, uint64_t misc) { uint64_t mcg_cap = cenv->mcg_cap; uint64_t *banks = cenv->mce_banks; @@ -1077,15 +1078,17 @@ static void qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, * reporting is disabled */ if ((status & MCI_STATUS_UC) && (mcg_cap & MCG_CTL_P) && - cenv->mcg_ctl != ~(uint64_t)0) + cenv->mcg_ctl != ~(uint64_t)0) { return; + } banks += 4 * bank; /* * if MSR_MCi_CTL is not all 1s, the uncorrected error * reporting is disabled for the bank */ - if ((status & MCI_STATUS_UC) && banks[0] != ~(uint64_t)0) + if ((status & MCI_STATUS_UC) && banks[0] != ~(uint64_t)0) { return; + } if (status & MCI_STATUS_UC) { if ((cenv->mcg_status & MCG_STATUS_MCIP) || !(cenv->cr[4] & CR4_MCE_MASK)) { @@ -1095,8 +1098,9 @@ static void qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, qemu_system_reset_request(); return; } - if (banks[1] & MCI_STATUS_VAL) + if (banks[1] & MCI_STATUS_VAL) { status |= MCI_STATUS_OVER; + } banks[2] = addr; banks[3] = misc; cenv->mcg_status = mcg_status; @@ -1104,16 +1108,18 @@ static void qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, cpu_interrupt(cenv, CPU_INTERRUPT_MCE); } else if (!(banks[1] & MCI_STATUS_VAL) || !(banks[1] & MCI_STATUS_UC)) { - if (banks[1] & MCI_STATUS_VAL) + if (banks[1] & MCI_STATUS_VAL) { status |= MCI_STATUS_OVER; + } banks[2] = addr; banks[3] = misc; banks[1] = status; - } else + } else { banks[1] |= MCI_STATUS_OVER; + } } -void cpu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, +void cpu_x86_inject_mce(CPUState *cenv, int bank, uint64_t status, uint64_t mcg_status, uint64_t addr, uint64_t misc, int broadcast) { @@ -1155,15 +1161,16 @@ void cpu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, static void mce_init(CPUX86State *cenv) { - unsigned int bank, bank_num; + unsigned int bank; - if (((cenv->cpuid_version >> 8)&0xf) >= 6 - && (cenv->cpuid_features&(CPUID_MCE|CPUID_MCA)) == (CPUID_MCE|CPUID_MCA)) { + if (((cenv->cpuid_version >> 8) & 0xf) >= 6 + && (cenv->cpuid_features & (CPUID_MCE | CPUID_MCA)) == + (CPUID_MCE | CPUID_MCA)) { cenv->mcg_cap = MCE_CAP_DEF | MCE_BANKS_DEF; cenv->mcg_ctl = ~(uint64_t)0; - bank_num = MCE_BANKS_DEF; - for (bank = 0; bank < bank_num; bank++) - cenv->mce_banks[bank*4] = ~(uint64_t)0; + for (bank = 0; bank < MCE_BANKS_DEF; bank++) { + cenv->mce_banks[bank * 4] = ~(uint64_t)0; + } } } -- 1.7.1
WARNING: multiple messages have this Message-ID (diff)
From: Jan Kiszka <jan.kiszka@siemens.com> To: Avi Kivity <avi@redhat.com>, Marcelo Tosatti <mtosatti@redhat.com> Cc: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>, Jin Dongming <jin.dongming@np.css.fujitsu.com>, qemu-devel@nongnu.org, kvm@vger.kernel.org, Huang Ying <ying.huang@intel.com> Subject: [Qemu-devel] [PATCH 03/13] x86: Small cleanups of MCE helpers Date: Tue, 15 Feb 2011 09:23:27 +0100 [thread overview] Message-ID: <a475fa630d264a079f484be09634dfbda0049c8e.1297758211.git.jan.kiszka@siemens.com> (raw) In-Reply-To: <cover.1297758211.git.jan.kiszka@siemens.com> In-Reply-To: <cover.1297758211.git.jan.kiszka@siemens.com> Fix some code style issues, use proper headers, and align to cpu_x86 naming scheme. No functional changes. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> CC: Huang Ying <ying.huang@intel.com> CC: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com> CC: Jin Dongming <jin.dongming@np.css.fujitsu.com> --- cpu-all.h | 4 ---- monitor.c | 2 +- target-i386/cpu.h | 5 +++++ target-i386/helper.c | 41 ++++++++++++++++++++++++----------------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/cpu-all.h b/cpu-all.h index 87b0f86..caf5e6c 100644 --- a/cpu-all.h +++ b/cpu-all.h @@ -971,8 +971,4 @@ void dump_exec_info(FILE *f, fprintf_function cpu_fprintf); int cpu_memory_rw_debug(CPUState *env, target_ulong addr, uint8_t *buf, int len, int is_write); -void cpu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, - uint64_t mcg_status, uint64_t addr, uint64_t misc, - int broadcast); - #endif /* CPU_ALL_H */ diff --git a/monitor.c b/monitor.c index 22ae3bb..45b0cc2 100644 --- a/monitor.c +++ b/monitor.c @@ -2713,7 +2713,7 @@ static void do_inject_mce(Monitor *mon, const QDict *qdict) for (cenv = first_cpu; cenv != NULL; cenv = cenv->next_cpu) { if (cenv->cpu_index == cpu_index && cenv->mcg_cap) { - cpu_inject_x86_mce(cenv, bank, status, mcg_status, addr, misc, + cpu_x86_inject_mce(cenv, bank, status, mcg_status, addr, misc, broadcast); break; } diff --git a/target-i386/cpu.h b/target-i386/cpu.h index 75156e7..52bb48e 100644 --- a/target-i386/cpu.h +++ b/target-i386/cpu.h @@ -986,4 +986,9 @@ static inline void cpu_get_tb_cpu_state(CPUState *env, target_ulong *pc, void do_cpu_init(CPUState *env); void do_cpu_sipi(CPUState *env); + +void cpu_x86_inject_mce(CPUState *cenv, int bank, uint64_t status, + uint64_t mcg_status, uint64_t addr, uint64_t misc, + int broadcast); + #endif /* CPU_I386_H */ diff --git a/target-i386/helper.c b/target-i386/helper.c index f41416f..ba3bed9 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -28,6 +28,9 @@ #include "qemu-common.h" #include "kvm.h" #include "kvm_x86.h" +#ifndef CONFIG_USER_ONLY +#include "sysemu.h" +#endif //#define DEBUG_MMU @@ -1063,11 +1066,9 @@ static void breakpoint_handler(CPUState *env) prev_debug_excp_handler(env); } -/* This should come from sysemu.h - if we could include it here... */ -void qemu_system_reset_request(void); - -static void qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, - uint64_t mcg_status, uint64_t addr, uint64_t misc) +static void +qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, + uint64_t mcg_status, uint64_t addr, uint64_t misc) { uint64_t mcg_cap = cenv->mcg_cap; uint64_t *banks = cenv->mce_banks; @@ -1077,15 +1078,17 @@ static void qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, * reporting is disabled */ if ((status & MCI_STATUS_UC) && (mcg_cap & MCG_CTL_P) && - cenv->mcg_ctl != ~(uint64_t)0) + cenv->mcg_ctl != ~(uint64_t)0) { return; + } banks += 4 * bank; /* * if MSR_MCi_CTL is not all 1s, the uncorrected error * reporting is disabled for the bank */ - if ((status & MCI_STATUS_UC) && banks[0] != ~(uint64_t)0) + if ((status & MCI_STATUS_UC) && banks[0] != ~(uint64_t)0) { return; + } if (status & MCI_STATUS_UC) { if ((cenv->mcg_status & MCG_STATUS_MCIP) || !(cenv->cr[4] & CR4_MCE_MASK)) { @@ -1095,8 +1098,9 @@ static void qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, qemu_system_reset_request(); return; } - if (banks[1] & MCI_STATUS_VAL) + if (banks[1] & MCI_STATUS_VAL) { status |= MCI_STATUS_OVER; + } banks[2] = addr; banks[3] = misc; cenv->mcg_status = mcg_status; @@ -1104,16 +1108,18 @@ static void qemu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, cpu_interrupt(cenv, CPU_INTERRUPT_MCE); } else if (!(banks[1] & MCI_STATUS_VAL) || !(banks[1] & MCI_STATUS_UC)) { - if (banks[1] & MCI_STATUS_VAL) + if (banks[1] & MCI_STATUS_VAL) { status |= MCI_STATUS_OVER; + } banks[2] = addr; banks[3] = misc; banks[1] = status; - } else + } else { banks[1] |= MCI_STATUS_OVER; + } } -void cpu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, +void cpu_x86_inject_mce(CPUState *cenv, int bank, uint64_t status, uint64_t mcg_status, uint64_t addr, uint64_t misc, int broadcast) { @@ -1155,15 +1161,16 @@ void cpu_inject_x86_mce(CPUState *cenv, int bank, uint64_t status, static void mce_init(CPUX86State *cenv) { - unsigned int bank, bank_num; + unsigned int bank; - if (((cenv->cpuid_version >> 8)&0xf) >= 6 - && (cenv->cpuid_features&(CPUID_MCE|CPUID_MCA)) == (CPUID_MCE|CPUID_MCA)) { + if (((cenv->cpuid_version >> 8) & 0xf) >= 6 + && (cenv->cpuid_features & (CPUID_MCE | CPUID_MCA)) == + (CPUID_MCE | CPUID_MCA)) { cenv->mcg_cap = MCE_CAP_DEF | MCE_BANKS_DEF; cenv->mcg_ctl = ~(uint64_t)0; - bank_num = MCE_BANKS_DEF; - for (bank = 0; bank < bank_num; bank++) - cenv->mce_banks[bank*4] = ~(uint64_t)0; + for (bank = 0; bank < MCE_BANKS_DEF; bank++) { + cenv->mce_banks[bank * 4] = ~(uint64_t)0; + } } } -- 1.7.1
next prev parent reply other threads:[~2011-02-15 8:23 UTC|newest] Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-02-15 8:23 [PATCH 00/13] [uq/master] Patch queue, part IV (MCE edition) Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 01/13] x86: Account for MCE in cpu_has_work Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 02/13] x86: Perform implicit mcg_status reset Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` Jan Kiszka [this message] 2011-02-15 8:23 ` [Qemu-devel] [PATCH 03/13] x86: Small cleanups of MCE helpers Jan Kiszka 2011-02-15 8:23 ` [PATCH 04/13] x86: Refine error reporting of MCE injection services Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 05/13] x86: Optionally avoid injecting AO MCEs while others are pending Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 06/13] Synchronize VCPU states before reset Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 07/13] kvm: x86: Move MCE functions together Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 08/13] kvm: x86: Inject pending MCE events on state writeback Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-17 16:35 ` Marcelo Tosatti 2011-02-17 16:35 ` [Qemu-devel] " Marcelo Tosatti 2011-02-17 17:06 ` Jan Kiszka 2011-02-17 17:06 ` [Qemu-devel] " Jan Kiszka 2011-02-17 17:55 ` Marcelo Tosatti 2011-02-17 17:55 ` [Qemu-devel] " Marcelo Tosatti 2011-02-17 18:04 ` Jan Kiszka 2011-02-17 18:04 ` [Qemu-devel] " Jan Kiszka 2011-02-17 18:17 ` Marcelo Tosatti 2011-02-17 18:17 ` [Qemu-devel] " Marcelo Tosatti 2011-02-15 8:23 ` [PATCH 09/13] kvm: x86: Consolidate TCG and KVM MCE injection code Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-17 18:08 ` Marcelo Tosatti 2011-02-17 18:08 ` [Qemu-devel] " Marcelo Tosatti 2011-02-17 18:17 ` Jan Kiszka 2011-02-17 18:17 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 10/13] kvm: x86: Clean up kvm_setup_mce Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 11/13] kvm: x86: Fail kvm_arch_init_vcpu if MCE initialization fails Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 12/13] Add qemu_ram_remap Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka 2011-02-15 8:23 ` [PATCH 13/13] KVM, MCE, unpoison memory address across reboot Jan Kiszka 2011-02-15 8:23 ` [Qemu-devel] " Jan Kiszka
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=a475fa630d264a079f484be09634dfbda0049c8e.1297758211.git.jan.kiszka@siemens.com \ --to=jan.kiszka@siemens.com \ --cc=avi@redhat.com \ --cc=jin.dongming@np.css.fujitsu.com \ --cc=kvm@vger.kernel.org \ --cc=mtosatti@redhat.com \ --cc=qemu-devel@nongnu.org \ --cc=seto.hidetoshi@jp.fujitsu.com \ --cc=ying.huang@intel.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.