Re: [PATCH 3/3] [x86, next] Add mce_sys_info interface for debug.

From: Borislav Petkov
Date: Fri Oct 29 2010 - 03:28:36 EST


On Fri, Oct 29, 2010 at 01:42:23PM +0900, Jin Dongming wrote:
> Add mce_sys_info interface for testing mce.
>
> Following is the reason why the interface is needed:
> 1. Sometimes before testing mce, we want to know the basic
> information of mce on the test machine. Though there are
> some provided interfaces, there are some kernel variables
> which could not be known still.
> 2. When we inject mce data to test mce, the value of some
> interfaces may be changed. It is hard for everybody to confirm
> all the information of mce on the system.
>
> This interface could help us know what has happened and make mce test
> become easier.
>
> The content of mce_sys_info will be like following:
>
> MCE status: Original/(Current) Value
> mce_disabled: N
>
> mce_ser: 0/1
> tolerant: 1/1
> panic_on_oops: 0/0
> monarch_timeout: 1000000/1000000 us
> mce_ignore_ce: 0/0
> mce_cmci_disabled: N/N
>
> MCG Register:
> CAP_Reg_Val BANKS EXT_CNT FUNCTIONS
> 0x0000000000000806 0x06 0x00 TES
>
> Please note that it is used for testing only.
>
> I tested this patch on Intel64 next-tree.
>
> Signe-off-by: Jin Dongming <jin.dongming@xxxxxxxxxxxxxxxxxx>
> ---
> arch/x86/kernel/cpu/mcheck/mce.c | 126 ++++++++++++++++++++++++++++++++++++++
> 1 files changed, 126 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
> index ed10e76..91108db 100644
> --- a/arch/x86/kernel/cpu/mcheck/mce.c
> +++ b/arch/x86/kernel/cpu/mcheck/mce.c
> @@ -97,6 +97,25 @@ static DECLARE_WAIT_QUEUE_HEAD(mce_wait);
> static DEFINE_PER_CPU(struct mce, mces_seen);
> static int cpu_missing;
>
> +#ifdef CONFIG_DEBUG_FS
> +struct mce_sys_info {
> + int mce_disabled;
> +
> + u64 mcg_cap_register;
> +
> + int mce_ser;
> + int tolerant;
> + int panic_on_oops;
> + int monarch_timeout;
> + int mce_cmci_disable;
> + int mce_ignore_ce;
> + int mce_cmci_disabled;

Most of those could be put in a flags vector, thus saving a bunch of
space. Or a bitfield...

--
Regards/Gruss,
Boris.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/