aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJin Dongming <jin.dongming@np.css.fujitsu.com>2009-06-16 09:48:50 +0900
committerHuang Ying <ying.huang@intel.com>2009-06-18 11:19:12 +0800
commited1f37fe9fa36e174fc1e8dcbf14f61a39e033ed (patch)
tree5e5d17424838c1eebefe1165625e5fb50e03455b
parente74ae992bf2398ece6ac4eb425168b944d9b8983 (diff)
downloadmce-test-ed1f37fe9fa36e174fc1e8dcbf14f61a39e033ed.tar.gz
Update some of the document of MCE test tool
Update some of the document which is out of date. And add some new document of the test case which does not have document. - modified soft-inj_non-panic.txt - modified soft-inj_panic.txt - modified soft-inj_panic_npcc.txt - add soft-inj_panic_noser.txt - add soft-inj_panic_ucr.txt - add soft-inj_poll_ucr.txt Signed-off-by: Jin Dongming <jin.dongming@np.css.fujitsu.com>
-rw-r--r--doc/cases/soft-inj_non-panic.txt2
-rw-r--r--doc/cases/soft-inj_panic.txt90
-rw-r--r--doc/cases/soft-inj_panic_noser.txt83
-rw-r--r--doc/cases/soft-inj_panic_npcc.txt92
-rw-r--r--doc/cases/soft-inj_panic_ucr.txt79
-rw-r--r--doc/cases/soft-inj_poll_ucr.txt29
6 files changed, 320 insertions, 55 deletions
diff --git a/doc/cases/soft-inj_non-panic.txt b/doc/cases/soft-inj_non-panic.txt
index 0d5b7d8..df89dfb 100644
--- a/doc/cases/soft-inj_non-panic.txt
+++ b/doc/cases/soft-inj_non-panic.txt
@@ -1,4 +1,4 @@
-Overall:
+Overall:(4 cases)
- Test method
* Preparation
diff --git a/doc/cases/soft-inj_panic.txt b/doc/cases/soft-inj_panic.txt
index a588ad9..f068d8d 100644
--- a/doc/cases/soft-inj_panic.txt
+++ b/doc/cases/soft-inj_panic.txt
@@ -1,4 +1,4 @@
-Overall:
+Overall: (9 cases)
- Test method
* Add cases/soft-inj/panic/cases.sh into configuration file, and invoke
@@ -14,10 +14,10 @@ Overall:
* Test synchronization between monarch and subject
* Test logic to recognize a fatal (PCC) MCE
- Code path tested:
- * do_machine_check() until mce_sync_monarch/subject()
- * mce_sync_monarch()
- * mce_sync_subject()
- * mce_reign() until mce_panic("Fatal machine check",)
+ * do_machine_check()
+ * mce_start()
+ * mce_end()
+ * mce_reign() until mce_panic("Fatal Machine check",)
* mce_severity()
* mce_timeout() except if (*t <= 0) branch
* mce_panic()
@@ -25,86 +25,101 @@ Overall:
* mce_log()
- Reference:
* Inject data file: cases/soft-inj/panic/data/fatal
- * Reference MCE records: cases/soft-inj/panic/refer/fatal
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Fatal machine check"
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Processor context corrupt"
2. fatal timeout
- Objective:
* Test logic of timeout during monarch/subject synchronization
+ * Test logic to recognize a fatal (PCC) MCE
- Code path tested:
- * do_machine_check() from mce_sync_monarch/subject() to
- mce_panic("Machine check",);
+ * do_machine_check()
+ * mce_start()
* mce_timeout() if (*t <= 0) branch
+ * mce_severity()
+ * mce_panic("Fatal machine check on current CPU",);
+ * print_mce()
+ * mce_log()
- Reference:
* Inject data file: cases/soft-inj/panic/data/fatal_timeout
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Machine check"
- * Timeout message in kernel log
+ * Kernel panic message is "Fatal machine check on current CPU"
+ * Exception message is "Processor context corrupt"
+ * Timeout message is "Some CPUs didn't answer in synchronization"
3. fatal in irq
- Objective:
* Test fatal MCE occur in IRQ context
+ * Test logic to recognize a fatal (PCC) MCE
- Code path tested:
* Same as fatal
- Reference:
- * Inject data file: cases/soft-inj/panic/fatal_irq
+ * Inject data file: cases/soft-inj/panic/data/fatal_irq
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Fatal machine check"
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Processor context corrupt"
4. fatal with RIPV
- Objective:
* Test combination of PCC and RIPV
+ * Test logic to recognize a fatal (PCC) MCE
- Code path tested:
* MCG_STATUS_RIPV branch of switch(m.mcgstatus) in do_machine_check
+ * Others are same as fatal
- Reference:
* Inject data file: cases/soft-inj/panic/data/fatal_ripv
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Fatal machine check"
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Processor context corrupt"
5. fatal timeout with RIPV
- Objective:
* Test timeout logic of combination of PCC and RIPV
+ * Test logic to recognize a fatal (PCC) MCE
- Code path tested:
- * same as "fatal with RIPV", except timeout during sychronizing.
+ * MCG_STATUS_RIPV branch of switch(m.mcgstatus) in do_machine_check
+ * Others are same as fatal_timeout
- Reference:
* Inject data file: cases/soft-inj/panic/data/fatal_timeout_ripv
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Machine check"
- * Timeout message in kernel log
+ * Kernel panic message is "Fatal machine check on current CPU"
+ * Exception message is "Processor context corrupt"
+ * Timeout message is "Some CPUs didn't answer in synchronization"
6. fatal with OVER
- Objective:
* Test OVER flag in MCI_STATUS processing
+ * Test logic to recognize a fatal (PCC) MCE
- Code path tested:
* Same as fatal
- Reference:
* Inject data file: cases/soft-inj/panic/data/fatal_over
- * Reference MCE records: cases/soft-inj/panic/refer/fatal_over
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Fatal machine check"
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Processor context corrupt"
7. fatal and UC without EN
@@ -112,6 +127,7 @@ Overall:
- Objective:
* Test no EN processing. Only one MCE can be injected on one CPU, so
a MCE without EN are injected on other CPU.
+ * Test logic to recognize a fatal (PCC) MCE
- Code path tested:
* Same as fatal except no EN branch in do_machine_check()
- Reference:
@@ -120,4 +136,38 @@ Overall:
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Fatal machine check"
+ * Kernel panic message is "Machine check from unknown source"
+ * No exception message
+
+8. fatal with EIPV
+
+- Objective:
+ * Test combination of PCC and EIPV
+ * Test logic to recognize a fatal (PCC) MCE
+- Code path tested:
+ * Same as fatal
+- Reference:
+ * Inject data file: cases/soft-inj/panic/data/fatal_eipv
+- Expected result:
+ * No warning or bug during kernel processing.
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Processor context corrupt"
+
+
+9. fatal in userspace
+
+- Objective:
+ * Test of PCC in userspace
+ * Test logic to recognize a fatal (PCC) MCE
+- Code path tested:
+ * Same as fatal
+- Reference:
+ * Inject data file: cases/soft-inj/panic/data/fatal_eipv
+- Expected result:
+ * No warning or bug during kernel processing.
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Processor context corrupt"
+
+
diff --git a/doc/cases/soft-inj_panic_noser.txt b/doc/cases/soft-inj_panic_noser.txt
new file mode 100644
index 0000000..27a5735
--- /dev/null
+++ b/doc/cases/soft-inj_panic_noser.txt
@@ -0,0 +1,83 @@
+Overall: (3 cases)
+
+- Test method
+ * Add cases/soft-inj/panic_noser/cases.sh into configuration file, and invoke
+ a test driver on it.
+- Common
+ * Test script of test cases in this file can be found in
+ cases/soft-inj/panic_noser/cases.sh
+
+1. uc_over
+
+- Objective:
+ * Test MSR read logic of MCE handler
+ * Test synchronization between monarch and subject
+ * Test logic of uncorrected with UC and OVER
+- Code path tested:
+ * do_machine_check()
+ * mce_start()
+ * mce_timeout() except if (*t <= 0) branch
+ * mce_log()
+ * mce_end()
+ * mce_severity()
+ * mce_reign() until mce_panic("Fatal Machine check",)
+ * mce_panic()
+ * print_mce()
+- Reference:
+ * Inject data file: cases/soft-inj/panic_noser/data/uc_over
+- Expected result:
+ * No warning or bug during kernel processing.
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Overflowed uncorrected"
+
+
+2. uc_over_corrected
+
+- Objective:
+ * Test synchronization between monarch and subject
+ * Test logic of uncorrected and corrected
+ * Test logic of uncorrected with UC and OVER
+ * Test logic of corrected with EXCP
+- Code path tested:
+ * do_machine_check()
+ * mce_start()
+ * mce_timeout() except if (*t <= 0) branch
+ * mce_log()
+ * mce_end()
+ * mce_severity()
+ * mce_reign() until mce_panic("Fatal Machine check",)
+ * mce_panic()
+ * print_mce()
+- Reference:
+ * Inject data file: cases/soft-inj/panic_noser/data/uc_over_corrected
+- Expected result:
+ * No warning or bug during kernel processing.
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Overflowed uncorrected"
+
+
+3. uc_over_timeout
+
+- Objective:
+ * Test logic of timeout during monarch/subject synchronization
+ * Test logic of uncorrected with UC and OVER
+- Code path tested:
+ * do_machine_check()
+ * mce_start()
+ * mce_timeout() if (*t <= 0) branch
+ * mce_log()
+ * mce_severity()
+ * mce_panic("Fatal machine check on current CPU",)
+ * print_mce()
+- Reference:
+ * Inject data file: cases/soft-inj/panic_noser/data/uc_over_timeout
+- Expected result:
+ * No warning or bug during kernel processing.
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal machine check on current CPU"
+ * Exception message is "Overflowed uncorrected"
+ * Timeout message is "Some CPUs didn't answer in synchronization"
+
+
diff --git a/doc/cases/soft-inj_panic_npcc.txt b/doc/cases/soft-inj_panic_npcc.txt
index 063c058..fa4b5a1 100644
--- a/doc/cases/soft-inj_panic_npcc.txt
+++ b/doc/cases/soft-inj_panic_npcc.txt
@@ -1,4 +1,4 @@
-Overall:
+Overall:(8 cases)
- Test method
* Preparation
@@ -15,14 +15,21 @@ Overall:
- Objective:
* Test severity comparison logic of MCE handler
- Code path tested:
+ * do_machine_check()
+ * mce_start()
+ * mce_end()
* mce_severity()
- * mce_regin(), for_each_cpu_mask() loops
+ * mce_regin() for_each_possible_loops loops(check mce-severity message)
+ * mce_panic()
+ * mce_log()
+ * print_mce()
- Reference:
- * Inject data file: cases/soft-inj/panic_npcc/fatal_severity
+ * Inject data file: cases/soft-inj/panic_npcc/data/fatal_severity
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Fatal machine check"
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Processor context corrupt"
2. uncorrected
@@ -30,82 +37,97 @@ Overall:
- Objective:
* Test MCE handler logic for EIPV MCE in kernel space
- Code path tested:
- * do_machine_check(), mce_panic("Uncorrected machine check",) branch
+ * Same as falta severity
- Reference:
- * Inject data file: cases/soft-inj/panic_npcc/uncorrected
+ * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Uncorrected machine check"
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "In kernel and no restart IP"
-3. uncorrected + RIPV
+3. uncorrected timeout
- Objective:
- * Test MCE handler logic for EIPV|RIPV MCE in kernel space
+ * Test MCE handler timeout logic for EIPV MCE in kernel space
- Code path tested:
- * Same as uncorrected
+ * do_machine_check()
+ * mce_start() until timeout
+ * mce_severity()
+ * mce_panic("Fatal machine check on current CPU", )
+ * mce_log()
+ * print_mce()
- Reference:
- * Inject data file: cases/soft-inj/panic_npcc/uncorrected_ripv
+ * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_timeout
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Uncorrected machine check"
+ * Kernel panic message is "Fatal machine check on current CPU"
+ * Exception message is "In kernel and no restart IP"
+ * Timeout message is "Some CPUs didn't answer in synchronization"
-4. uncorrected timeout
+4. uncorrected without MCIP
- Objective:
- * Test MCE handler timeout logic for EIPV MCE in kernel space
+ * Test MCE handler logic for MCE without PCC, MCIP, EIPV and RIPV
- Code path tested:
- * that of uncorrected, but will timeout in mce_sync_monarch/subject
+ * Same as fatal severity
- Reference:
- * Inject data file: cases/soft-inj/panic_npcc/uncorrected_timeout
+ * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_no_mcip
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Uncorrected machine check"
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "MCIP not set in MCA handler"
-5. uncorrected + RIPV timeout
+5. uncorrect timeout without MCIP
- Objective:
- * Test MCE handler timout logic for EIPV|RIPV MCE in kernel space
+ * Test MCE handler timeout logic for MCE without PCC, MCIP, EIPV and RIPV
- Code path tested:
- * that of uncorrected, but will timeout in mce_sync_monarch/subject
+ * Same as uncorrected timeout
- Reference:
- * Inject data file: cases/soft-inj/panic_npcc/uncorrected_timeout_ripv
+ * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_no_mcip_timeout
- Expected result:
* No warning or bug during kernel processing.
* MCE records collected via kernel panic log is same as reference ones.
- * Kernel panic message is "Uncorrected machine check"
+ * Kernel panic message is "Fatal machine check on current CPU"
+ * Kernel panic message is "MCIP not set in MCA handler"
+ * Timeout message is "Some CPUs didn't answer in synchronization"
-6. general
+6. uncorrected without EIPV and RIPV
- Objective:
- * Test MCE handler logic for MCE without PCC, EIPV and RIPV
+ * Test MCE handler logic for EIPV and RIPV MCE in kernel space
- Code path tested:
- * do_machine_check(), mce_panic("Machine check",) branch
+ * Same as uncorrected
- Reference:
- * Inject data file: cases/soft-inj/panic_npcc/general
- * Reference MCE records: cases/soft-inj/panic_npcc/refer/general
+ * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_no_eripv
- Expected result:
* No warning or bug during kernel processing.
- * Kernel panic message is "Machine check"
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Neither restart nor error IP"
-7. general timeout
+7. uncorrected timeout without EIPV and RIPV
- Objective:
- * Test MCE handler timeout logic for MCE without PCC, EIPV and RIPV
+ * Test MCE handler timout logic for EIPV|RIPV MCE in kernel space
- Code path tested:
- * that of general, but will timeout in mce_sync_monarch/subject
+ * Same as uncorrected timeout
- Reference:
- * Inject data file: cases/soft-inj/panic_npcc/general_timeout
+ * Inject data file: cases/soft-inj/panic_npcc/data/uncorrected_no_eripv_timeout
- Expected result:
* No warning or bug during kernel processing.
- * Kernel panic message is "Machine check"
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "In kernel and no restart IP"
+ * Timeout message is "Some CPUs didn't answer in synchronization"
8. unknown
@@ -114,8 +136,10 @@ Overall:
* Test logic for MCE from unknown source (external?)
- Code path tested:
* mce_reign(), mce_panic("Machine check from unknown source") branch
+ * Others are same as fatal severity
- Reference:
- * Inject data file: cases/soft-inj/panic_npcc/unknown
+ * Inject data file: cases/soft-inj/panic_npcc/data/unknown
- Expected result:
* No warning or bug during kernel processing.
* Kernel panic message is "Machine check from unknown source"
+ * No exception and timeout message.
diff --git a/doc/cases/soft-inj_panic_ucr.txt b/doc/cases/soft-inj_panic_ucr.txt
new file mode 100644
index 0000000..d0ad836
--- /dev/null
+++ b/doc/cases/soft-inj_panic_ucr.txt
@@ -0,0 +1,79 @@
+Overall: (3 cases)
+
+- Test method
+ * Add cases/soft-inj/panic_ucr/cases.sh into configuration file, and invoke
+ a test driver on it.
+- Common
+ * Test script of test cases in this file can be found in
+ cases/soft-inj/panic_ucr/cases.sh
+
+1. s0_ar1
+
+- Objective:
+ * Test MSR read logic of MCE handler
+ * Test synchronization between monarch and subject
+- Code path tested:
+ * do_machine_check()
+ * mce_start()
+ * mce_timeout() except if (*t <= 0) branch
+ * mce_log()
+ * mce_end()
+ * mce_severity()
+ * mce_reign() until mce_panic("Fatal Machine check",)
+ * mce_panic()
+ * print_mce()
+- Reference:
+ * Inject data file: cases/soft-inj/panic_ucr/data/s0_ar1
+- Expected result:
+ * No warning or bug during kernel processing.
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Illegal combination (UCNA with AR=1)"
+
+
+2. srar_over
+
+- Objective:
+ * Test logic of timeout during monarch/subject synchronization
+- Code path tested:
+ * do_machine_check()
+ * mce_start()
+ * mce_timeout() except if (*t <= 0) branch
+ * mce_log()
+ * mce_end()
+ * mce_severity()
+ * mce_reign() until mce_panic("Fatal Machine check",)
+ * mce_panic();
+ * print_mce()
+- Reference:
+ * Inject data file: cases/soft-inj/panic_ucr/data/srar_over
+- Expected result:
+ * No warning or bug during kernel processing.
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Action required with lost events"
+
+
+3. srar_unknown
+
+- Objective:
+ * Test fatal MCE occur in IRQ context
+- Code path tested:
+ * do_machine_check()
+ * mce_start()
+ * mce_timeout() except if (*t <= 0) branch
+ * mce_log()
+ * mce_end()
+ * mce_severity()
+ * mce_reign() until mce_panic("Fatal Machine check",)
+ * mce_panic()
+ * print_mce()
+- Reference:
+ * Inject data file: cases/soft-inj/panic_ucr/data/srar_unknown
+- Expected result:
+ * No warning or bug during kernel processing.
+ * MCE records collected via kernel panic log is same as reference ones.
+ * Kernel panic message is "Fatal Machine check"
+ * Exception message is "Action required; unknown MCACOD"
+
+
diff --git a/doc/cases/soft-inj_poll_ucr.txt b/doc/cases/soft-inj_poll_ucr.txt
new file mode 100644
index 0000000..b32b80c
--- /dev/null
+++ b/doc/cases/soft-inj_poll_ucr.txt
@@ -0,0 +1,29 @@
+Overall:(1 cases)
+
+- Test method
+ * Preparation
+ + Disable mcelog cron job
+ * Add cases/soft-inj/panic_ucr/cases.sh into configuration file, and invoke
+ a test driver on it.
+- Common
+ * Test script of test cases in this file can be found in
+ cases/soft-inj/panic_ucr/cases.sh
+
+
+1. ucna
+
+- Objective:
+ * Test severity comparison logic of MCE handler
+ * Test logic of uncorrected with POLL
+- Code path tested:
+ * machine_check_poll() except
+ if (!(flags & MCP_UC) &&
+ (m.status & (mce_ser ? MCI_STATUS_S : MCI_STATUS_UC))
+ * mce_log()
+- Reference:
+ * Inject data file: cases/soft-inj/poll_ucr/data/ucna
+- Expected result:
+ * MCE records collected via kernel panic log is same as reference ones.
+ * No warning or bug during kernel processing.
+
+