aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2022-06-27 13:29:31 -0700
committerTony Luck <tony.luck@intel.com>2022-06-27 13:29:31 -0700
commitb936d417a8cc27e17ef018b645c931ecc4e94c6f (patch)
tree03f70619f5504fe942116ca710ae7644d33968f0
parent3ce2baf651389b55e93be986bc0da549a2496053 (diff)
downloadras-tools-b936d417a8cc27e17ef018b645c931ecc4e94c6f.tar.gz
ras-tools: Add count argument to rep_ce_page
Optional argument to rep_ce_page for how many times to inject a corrected error to the target page. Signed-off-by: Tony Luck <tony.luck@intel.com>
-rw-r--r--rep_ce_page.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/rep_ce_page.c b/rep_ce_page.c
index 4eacd60..e073f6e 100644
--- a/rep_ce_page.c
+++ b/rep_ce_page.c
@@ -50,8 +50,12 @@ int main(int argc, char **argv)
{
char *addr = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED|MAP_ANONYMOUS, -1, 0);
unsigned long long paddr;
+ int tries = MAX_TRIES;
int i;
+ if (argc == 2)
+ tries = atoi(argv[1]);
+
if (addr == MAP_FAILED) {
perror("mmap");
return 1;
@@ -64,7 +68,7 @@ int main(int argc, char **argv)
*addr = '*';
paddr = vtop((unsigned long long)addr);
- for (i = 0; i < MAX_TRIES; i++) {
+ for (i = 0; i < tries; i++) {
printf("%d: Inject to vaddr=%p paddr=0x%llx\n", i, addr, paddr);
wfile(EINJ_ADDR, paddr);
wfile(EINJ_DOIT, 1);
@@ -75,7 +79,7 @@ int main(int argc, char **argv)
break;
}
- if (i == MAX_TRIES) {
+ if (i == tries) {
fprintf(stderr, "FAIL: Page was not offline after %d errors\n", i);
return 1;
}