Home
last modified time | relevance | path

Searched full:mce (Results 1 – 25 of 425) sorted by relevance

12345678910>>...17

/kernel/linux/linux-5.10/arch/x86/kernel/cpu/mce/
Dgenpool.c3 * MCE event pool management in MCE context
15 * printk() is not safe in MCE context. This is a lock-less memory allocator
18 * This memory pool is only to be used to save MCE records in MCE context.
19 * MCE events are rare, so a fixed size memory pool should be enough. Use
20 * 2 pages to save MCE events for now (~80 MCE records at most).
35 struct mce *m1, *m2; in is_duplicate_mce_record()
37 m1 = &t->mce; in is_duplicate_mce_record()
40 m2 = &node->mce; in is_duplicate_mce_record()
49 * The system has panicked - we'd like to peruse the list of MCE records
78 struct mce *mce; in mce_gen_pool_process() local
[all …]
Dinternal.h6 #define pr_fmt(fmt) "mce: " fmt
9 #include <asm/mce.h>
32 struct mce mce; member
37 int mce_gen_pool_add(struct mce *mce);
41 extern int (*mce_severity)(struct mce *a, struct pt_regs *regs,
55 bool intel_filter_mce(struct mce *m);
64 static inline bool intel_filter_mce(struct mce *m) { return false; }; in intel_filter_mce()
70 int apei_write_mce(struct mce *m);
71 ssize_t apei_read_mce(struct mce *m, u64 *record_id);
75 static inline int apei_write_mce(struct mce *m) in apei_write_mce()
[all …]
Ddev-mcelog.c27 * Lockless MCE logging infrastructure.
39 struct mce *mce = (struct mce *)data; in dev_mce_log() local
42 if (mce->kflags & MCE_HANDLED_CEC) in dev_mce_log()
60 memcpy(mcelog->entry + entry, mce, sizeof(struct mce)); in dev_mce_log()
71 mce->kflags |= MCE_HANDLED_MCELOG; in dev_mce_log()
121 * mce_chrdev: Character device /dev/mcelog to read and clear the MCE log.
162 /* Collect MCE record of previous boot in persistent storage via APEI ERST. */
167 struct mce m; in __mce_read_apei()
169 if (usize < sizeof(struct mce)) in __mce_read_apei()
173 /* Error or no more MCE record */ in __mce_read_apei()
[all …]
Dinject.c10 * The AMD part (from mce_amd_inj.c): a simple MCE injection facility
30 #include <asm/mce.h>
39 static struct mce i_mce;
67 struct mce *m = (struct mce *)data; \
81 struct mce *m = (struct mce *)data; \
97 static void setup_inj_struct(struct mce *m) in setup_inj_struct()
99 memset(m, 0, sizeof(struct mce)); in setup_inj_struct()
107 /* Update fake mce registers on current CPU. */
108 static void inject_mce(struct mce *m) in inject_mce()
110 struct mce *i = &per_cpu(injectm, m->extcpu); in inject_mce()
[all …]
Dapei.c3 * Bridge between MCE and APEI
12 * For fatal MCE, save MCE record into persistent storage via ERST, so
13 * that the MCE record can be logged after reboot via ERST.
25 #include <asm/mce.h>
31 struct mce m; in apei_mce_report_mem_error()
68 struct mce mce; member
71 int apei_write_mce(struct mce *m) in apei_write_mce()
89 rcd.sec_hdr.section_offset = (void *)&rcd.mce - (void *)&rcd; in apei_write_mce()
90 rcd.sec_hdr.section_length = sizeof(rcd.mce); in apei_write_mce()
98 memcpy(&rcd.mce, m, sizeof(*m)); in apei_write_mce()
[all …]
Dcore.c52 #include <asm/mce.h>
62 #include <trace/events/mce.h>
77 /* One object for each MCE bank, shared by all CPUs */
100 static DEFINE_PER_CPU(struct mce, mces_seen);
124 static void (*quirk_no_way_out)(int bank, struct mce *m, struct pt_regs *regs);
128 * MCE errors in a human-readable form.
132 /* Do initial initialization of a struct mce */
133 noinstr void mce_setup(struct mce *m) in mce_setup()
135 memset(m, 0, sizeof(struct mce)); in mce_setup()
153 DEFINE_PER_CPU(struct mce, injectm);
[all …]
/kernel/linux/linux-6.6/arch/x86/kernel/cpu/mce/
Dgenpool.c3 * MCE event pool management in MCE context
15 * printk() is not safe in MCE context. This is a lock-less memory allocator
18 * This memory pool is only to be used to save MCE records in MCE context.
19 * MCE events are rare, so a fixed size memory pool should be enough. Use
20 * 2 pages to save MCE events for now (~80 MCE records at most).
35 struct mce *m1, *m2; in is_duplicate_mce_record()
37 m1 = &t->mce; in is_duplicate_mce_record()
40 m2 = &node->mce; in is_duplicate_mce_record()
49 * The system has panicked - we'd like to peruse the list of MCE records
78 struct mce *mce; in mce_gen_pool_process() local
[all …]
Dinternal.h6 #define pr_fmt(fmt) "mce: " fmt
9 #include <asm/mce.h>
29 struct mce mce; member
34 int mce_gen_pool_add(struct mce *mce);
38 int mce_severity(struct mce *a, struct pt_regs *regs, char **msg, bool is_excp);
51 bool intel_filter_mce(struct mce *m);
60 static inline bool intel_filter_mce(struct mce *m) { return false; } in intel_filter_mce()
66 int apei_write_mce(struct mce *m);
67 ssize_t apei_read_mce(struct mce *m, u64 *record_id);
71 static inline int apei_write_mce(struct mce *m) in apei_write_mce()
[all …]
Ddev-mcelog.c27 * Lockless MCE logging infrastructure.
39 struct mce *mce = (struct mce *)data; in dev_mce_log() local
42 if (mce->kflags & MCE_HANDLED_CEC) in dev_mce_log()
60 memcpy(mcelog->entry + entry, mce, sizeof(struct mce)); in dev_mce_log()
71 mce->kflags |= MCE_HANDLED_MCELOG; in dev_mce_log()
120 * mce_chrdev: Character device /dev/mcelog to read and clear the MCE log.
161 /* Collect MCE record of previous boot in persistent storage via APEI ERST. */
166 struct mce m; in __mce_read_apei()
168 if (usize < sizeof(struct mce)) in __mce_read_apei()
172 /* Error or no more MCE record */ in __mce_read_apei()
[all …]
Dinject.c10 * The AMD part (from mce_amd_inj.c): a simple MCE injection facility
30 #include <asm/mce.h>
41 static struct mce i_mce;
69 struct mce *m = (struct mce *)data; \
83 struct mce *m = (struct mce *)data; \
103 struct mce *m = (struct mce *)data; in inj_ipid_set()
115 static void setup_inj_struct(struct mce *m) in setup_inj_struct()
117 memset(m, 0, sizeof(struct mce)); in setup_inj_struct()
125 /* Update fake mce registers on current CPU. */
126 static void inject_mce(struct mce *m) in inject_mce()
[all …]
Dapei.c3 * Bridge between MCE and APEI
12 * For fatal MCE, save MCE record into persistent storage via ERST, so
13 * that the MCE record can be logged after reboot via ERST.
25 #include <asm/mce.h>
31 struct mce m; in apei_mce_report_mem_error()
70 struct mce m; in apei_smca_report_x86_error()
141 struct mce mce; member
144 int apei_write_mce(struct mce *m) in apei_write_mce()
162 rcd.sec_hdr.section_offset = (void *)&rcd.mce - (void *)&rcd; in apei_write_mce()
163 rcd.sec_hdr.section_length = sizeof(rcd.mce); in apei_write_mce()
[all …]
Dcore.c53 #include <asm/mce.h>
63 #include <trace/events/mce.h>
74 /* One object for each MCE bank, shared by all CPUs */
89 static DEFINE_PER_CPU(struct mce, mces_seen);
114 * MCE errors in a human-readable form.
118 /* Do initial initialization of a struct mce */
119 void mce_setup(struct mce *m) in mce_setup()
121 memset(m, 0, sizeof(struct mce)); in mce_setup()
134 DEFINE_PER_CPU(struct mce, injectm);
137 void mce_log(struct mce *m) in mce_log()
[all …]
/kernel/linux/linux-6.6/arch/powerpc/kernel/
Dmce.c10 #define pr_fmt(fmt) "mce: " fmt
25 #include <asm/mce.h>
49 static void mce_set_error_info(struct machine_check_event *mce, in mce_set_error_info() argument
52 mce->error_type = mce_err->error_type; in mce_set_error_info()
55 mce->u.ue_error.ue_error_type = mce_err->u.ue_error_type; in mce_set_error_info()
58 mce->u.slb_error.slb_error_type = mce_err->u.slb_error_type; in mce_set_error_info()
61 mce->u.erat_error.erat_error_type = mce_err->u.erat_error_type; in mce_set_error_info()
64 mce->u.tlb_error.tlb_error_type = mce_err->u.tlb_error_type; in mce_set_error_info()
67 mce->u.user_error.user_error_type = mce_err->u.user_error_type; in mce_set_error_info()
70 mce->u.ra_error.ra_error_type = mce_err->u.ra_error_type; in mce_set_error_info()
[all …]
/kernel/linux/linux-5.10/arch/powerpc/kernel/
Dmce.c10 #define pr_fmt(fmt) "mce: " fmt
22 #include <asm/mce.h>
28 /* Queue for delayed MCE events. */
32 /* Queue for delayed MCE UE events. */
66 static void mce_set_error_info(struct machine_check_event *mce, in mce_set_error_info() argument
69 mce->error_type = mce_err->error_type; in mce_set_error_info()
72 mce->u.ue_error.ue_error_type = mce_err->u.ue_error_type; in mce_set_error_info()
75 mce->u.slb_error.slb_error_type = mce_err->u.slb_error_type; in mce_set_error_info()
78 mce->u.erat_error.erat_error_type = mce_err->u.erat_error_type; in mce_set_error_info()
81 mce->u.tlb_error.tlb_error_type = mce_err->u.tlb_error_type; in mce_set_error_info()
[all …]
/kernel/linux/linux-6.6/drivers/acpi/nfit/
Dmce.c10 #include <asm/mce.h>
16 struct mce *mce = (struct mce *)data; in nfit_handle_mce() local
21 if (!mce_is_memory_error(mce) || mce_is_correctable(mce)) in nfit_handle_mce()
24 /* Verify the address reported in the MCE is valid. */ in nfit_handle_mce()
25 if (!mce_usable_address(mce)) in nfit_handle_mce()
29 * mce->addr contains the physical addr accessed that caused the in nfit_handle_mce()
35 unsigned int align = 1UL << MCI_MISC_ADDR_LSB(mce->misc); in nfit_handle_mce()
45 /* find the spa that covers the mce addr */ in nfit_handle_mce()
46 if (spa->address > mce->addr) in nfit_handle_mce()
48 if ((spa->address + spa->length - 1) < mce->addr) in nfit_handle_mce()
[all …]
/kernel/linux/linux-5.10/drivers/acpi/nfit/
Dmce.c10 #include <asm/mce.h>
16 struct mce *mce = (struct mce *)data; in nfit_handle_mce() local
21 if (!mce_is_memory_error(mce) || mce_is_correctable(mce)) in nfit_handle_mce()
24 /* Verify the address reported in the MCE is valid. */ in nfit_handle_mce()
25 if (!mce_usable_address(mce)) in nfit_handle_mce()
29 * mce->addr contains the physical addr accessed that caused the in nfit_handle_mce()
44 /* find the spa that covers the mce addr */ in nfit_handle_mce()
45 if (spa->address > mce->addr) in nfit_handle_mce()
47 if ((spa->address + spa->length - 1) < mce->addr) in nfit_handle_mce()
66 ALIGN(mce->addr, L1_CACHE_BYTES), in nfit_handle_mce()
[all …]
/kernel/linux/linux-6.6/drivers/edac/
Dskx_common.c21 #include <asm/mce.h>
534 const struct mce *m, in skx_mce_output_error()
612 static bool skx_error_in_1st_level_mem(const struct mce *m) in skx_error_in_1st_level_mem()
624 static bool skx_error_in_mem(const struct mce *m) in skx_error_in_mem()
636 struct mce *mce = (struct mce *)data; in skx_mce_check_error() local
641 if (mce->kflags & MCE_HANDLED_CEC) in skx_mce_check_error()
645 if (!skx_error_in_mem(mce) || !(mce->status & MCI_STATUS_ADDRV)) in skx_mce_check_error()
649 res.mce = mce; in skx_mce_check_error()
650 res.addr = mce->addr & MCI_ADDR_PHYSADDR; in skx_mce_check_error()
655 if (!(adxl_component_count && skx_adxl_decode(&res, skx_error_in_1st_level_mem(mce)))) in skx_mce_check_error()
[all …]
/kernel/linux/linux-5.10/drivers/edac/
Dskx_common.c21 #include <asm/mce.h>
476 const struct mce *m, in skx_mce_output_error()
571 struct mce *mce = (struct mce *)data; in skx_mce_check_error() local
576 if (mce->kflags & MCE_HANDLED_CEC) in skx_mce_check_error()
580 if ((mce->status & 0xefff) >> 7 != 1 || !(mce->status & MCI_STATUS_ADDRV)) in skx_mce_check_error()
584 res.addr = mce->addr; in skx_mce_check_error()
598 if (mce->mcgstatus & MCG_STATUS_MCIP) in skx_mce_check_error()
603 skx_mc_printk(mci, KERN_DEBUG, "HANDLING MCE MEMORY ERROR\n"); in skx_mce_check_error()
606 "Bank %d: 0x%llx\n", mce->extcpu, type, in skx_mce_check_error()
607 mce->mcgstatus, mce->bank, mce->status); in skx_mce_check_error()
[all …]
/kernel/linux/linux-5.10/Documentation/vm/
Dhwpoison.rst64 MCE subsystem)
160 * Architecture specific MCE injector
162 x86 has mce-inject, mce-test
164 Some portable hwpoison test programs in mce-test, see below.
169 http://halobates.de/mce-lc09-2.pdf
172 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git
175 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git
/kernel/linux/linux-6.6/Documentation/translations/zh_CN/mm/
Dhwpoison.rst143 x86 有 mce-inject, mce-test
150 http://halobates.de/mce-lc09-2.pdf
153 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git
156 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git
/kernel/linux/linux-6.6/Documentation/mm/
Dhwpoison.rst157 * Architecture specific MCE injector
159 x86 has mce-inject, mce-test
161 Some portable hwpoison test programs in mce-test, see below.
166 http://halobates.de/mce-lc09-2.pdf
169 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git
172 git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git
/kernel/linux/linux-6.6/arch/x86/include/asm/
Dmce.h5 #include <uapi/asm/mce.h>
136 /* mce.kflags flag bits for logging etc. */
145 * Indicates an MCE which has happened in kernel space but from
153 * Indicates an MCE that happened in kernel space while copying data
161 * This structure contains all data related to the MCE log. Also
171 unsigned recordlen; /* length of struct mce */
172 struct mce entry[];
222 void mce_setup(struct mce *m);
223 void mce_log(struct mce *m);
246 bool mce_is_memory_error(struct mce *m);
[all …]
/kernel/linux/linux-5.10/arch/x86/include/asm/
Dmce.h5 #include <uapi/asm/mce.h>
132 /* mce.kflags flag bits for logging etc. */
141 * Indicates an MCE which has happened in kernel space but from
149 * Indicates an MCE that happened in kernel space while copying data
157 * This structure contains all data related to the MCE log. Also
167 unsigned recordlen; /* length of struct mce */
168 struct mce entry[];
224 void mce_setup(struct mce *m);
225 void mce_log(struct mce *m);
248 bool mce_is_memory_error(struct mce *m);
[all …]
/kernel/linux/linux-5.10/Documentation/x86/x86_64/
Dboot-options.rst14 mce=off
16 mce=no_cmci
24 mce=dont_log_ce
29 mce=ignore_ce
38 mce=no_lmce
39 Do not opt-in to Local MCE delivery. Use legacy method
41 mce=bootlog
48 mce=nobootlog
50 mce=tolerancelevel[,monarchtimeout] (number,number)
61 mce=bios_cmci_threshold
[all …]
/kernel/linux/linux-6.6/Documentation/arch/x86/x86_64/
Dboot-options.rst14 mce=off
16 mce=no_cmci
24 mce=dont_log_ce
29 mce=ignore_ce
38 mce=no_lmce
39 Do not opt-in to Local MCE delivery. Use legacy method
41 mce=bootlog
48 mce=nobootlog
50 mce=monarchtimeout (number)
54 mce=bios_cmci_threshold
[all …]

12345678910>>...17