Skip to content

Commit

Permalink
RAS/CEC: Add CONFIG_RAS_CEC_DEBUG and move CEC debug features there
Browse files Browse the repository at this point in the history
The pfn and array files in (debugfs)/ras/cec are intended for debugging
the CEC code itself. They are not needed on production systems, so the
default setting for this CONFIG option is "n".

 [ bp: Have it with less ifdeffery by using IS_ENABLED(). ]

Signed-off-by: Tony Luck <[email protected]>
Signed-off-by: Borislav Petkov <[email protected]>
  • Loading branch information
aegl authored and suryasaimadhu committed Jun 8, 2019
1 parent f57518c commit 60fd42d
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 12 deletions.
10 changes: 10 additions & 0 deletions arch/x86/ras/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,13 @@ config RAS_CEC

Bear in mind that this is absolutely useless if your platform doesn't
have ECC DIMMs and doesn't have DRAM ECC checking enabled in the BIOS.

config RAS_CEC_DEBUG
bool "CEC debugging machinery"
default n
depends on RAS_CEC
help
Add extra files to (debugfs)/ras/cec to test the correctable error
collector feature. "pfn" is a writable file that allows user to
simulate an error in a particular page frame. "array" is a read-only
file that dumps out the current state of all pages logged so far.
26 changes: 14 additions & 12 deletions drivers/ras/cec.c
Original file line number Diff line number Diff line change
Expand Up @@ -486,18 +486,6 @@ static int __init create_debugfs_nodes(void)
return -1;
}

pfn = debugfs_create_file("pfn", S_IRUSR | S_IWUSR, d, &dfs_pfn, &pfn_ops);
if (!pfn) {
pr_warn("Error creating pfn debugfs node!\n");
goto err;
}

array = debugfs_create_file("array", S_IRUSR, d, NULL, &array_ops);
if (!array) {
pr_warn("Error creating array debugfs node!\n");
goto err;
}

decay = debugfs_create_file("decay_interval", S_IRUSR | S_IWUSR, d,
&decay_interval, &decay_interval_ops);
if (!decay) {
Expand All @@ -512,6 +500,20 @@ static int __init create_debugfs_nodes(void)
goto err;
}

if (!IS_ENABLED(CONFIG_RAS_CEC_DEBUG))
return 0;

pfn = debugfs_create_file("pfn", S_IRUSR | S_IWUSR, d, &dfs_pfn, &pfn_ops);
if (!pfn) {
pr_warn("Error creating pfn debugfs node!\n");
goto err;
}

array = debugfs_create_file("array", S_IRUSR, d, NULL, &array_ops);
if (!array) {
pr_warn("Error creating array debugfs node!\n");
goto err;
}

return 0;

Expand Down

0 comments on commit 60fd42d

Please sign in to comment.