diff options
author | Shuai Xue <xueshuai@linux.alibaba.com> | 2022-08-19 21:54:04 +0800 |
---|---|---|
committer | Shuai Xue <xueshuai@linux.alibaba.com> | 2022-08-25 09:15:04 +0800 |
commit | 449c7138938b5e0ade28e8db73bcdb1e6bd144e2 (patch) | |
tree | ee0d51d8839f79bc1a0e7d21051d637455452f16 | |
parent | 9f1eadac8adb39918241865a53d624c32d6760d1 (diff) | |
download | ras-tools-449c7138938b5e0ade28e8db73bcdb1e6bd144e2.tar.gz |
einj_mem_uc: add a z flag to trigger write with an offset
On some platform, write to different offset within the poison cacheline
performs differently. Add a z flag so that we could trigger write with
an offset.
Signed-off-by: Shuai Xue <xueshuai@linux.alibaba.com>
-rw-r--r-- | einj_mem_uc.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/einj_mem_uc.c b/einj_mem_uc.c index 9dc254e..adfd630 100644 --- a/einj_mem_uc.c +++ b/einj_mem_uc.c @@ -362,10 +362,17 @@ int trigger_split(char *addr) return a[0]; } +/* + * parameters to the write tests. + */ +int write_offset = 0; /* where to hit after the poison addr */ + int trigger_write(char *addr) { PRINT_TRIGGERING; - addr[0] = 'a'; + char *target = addr + write_offset; + + target[0] = 'a'; return 0; } @@ -643,7 +650,7 @@ int main(int argc, char **argv) progname = argv[0]; pagesize = getpagesize(); - while ((c = getopt(argc, argv, "ac:d:fhim:S")) != -1) switch (c) { + while ((c = getopt(argc, argv, "ac:d:fhim:z:S")) != -1) switch (c) { case 'a': all_flag = 1; break; @@ -662,6 +669,9 @@ int main(int argc, char **argv) case 'm': parse_memcpy(optarg); break; + case 'z': + write_offset = strtod(optarg, NULL); + break; case 'S': Sflag = 1; break; |