* [PATCH 3/7] x86: memtest: cleanup memtest function
2009-02-13 14:46 [PATCH 0/7] " Andreas Herrmann
@ 2009-02-13 14:52 ` Andreas Herrmann
0 siblings, 0 replies; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-13 14:52 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
Impact: code cleanup
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
arch/x86/mm/memtest.c | 36 +++++++++++++++++++-----------------
1 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index a8a6c51..82321d9 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -21,6 +21,15 @@ static unsigned long patterns[] = {
#endif
};
+static void reserve_bad_mem(unsigned long pattern, unsigned long start_bad,
+ unsigned long end_bad)
+{
+ printk(KERN_CONT "\n %016lx bad mem addr "
+ "%010lx - %010lx reserved",
+ pattern, start_bad, end_bad);
+ reserve_early(start_bad, end_bad, "BAD RAM");
+}
+
static void __init memtest(unsigned long start_phys, unsigned long size,
unsigned long pattern)
{
@@ -42,25 +51,18 @@ static void __init memtest(unsigned long start_phys, unsigned long size,
for (i = 0; i < count; i++)
start[i] = pattern;
for (i = 0; i < count; i++, start++, start_phys_aligned += incr) {
- if (*start != pattern) {
- if (start_phys_aligned == last_bad + incr) {
- last_bad += incr;
- } else {
- if (start_bad) {
- printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved",
- pattern, start_bad,
- last_bad + incr);
- reserve_early(start_bad, last_bad + incr, "BAD RAM");
- }
- start_bad = last_bad = start_phys_aligned;
- }
+ if (*start == pattern)
+ continue;
+ if (start_phys_aligned == last_bad + incr) {
+ last_bad += incr;
+ continue;
}
+ if (start_bad)
+ reserve_bad_mem(pattern, start_bad, last_bad + incr);
+ start_bad = last_bad = start_phys_aligned;
}
- if (start_bad) {
- printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved",
- pattern, start_bad, last_bad + incr);
- reserve_early(start_bad, last_bad + incr, "BAD RAM");
- }
+ if (start_bad)
+ reserve_bad_mem(pattern, start_bad, last_bad + incr);
}
/* default is disabled */
--
1.6.1.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 0/7 v2] x86: memtest update
@ 2009-02-25 10:23 Andreas Herrmann
2009-02-25 10:26 ` [PATCH 1/7] x86: memtest: reuse test patterns when memtest parameter exceeds number of available patterns Andreas Herrmann
` (7 more replies)
0 siblings, 8 replies; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-25 10:23 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
Second try to cleanup the memtest code a little bit.
Addressing the issues with the first version of this patch set.
Please apply.
Thanks,
Andreas
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/7] x86: memtest: reuse test patterns when memtest parameter exceeds number of available patterns
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
@ 2009-02-25 10:26 ` Andreas Herrmann
2009-02-25 10:27 ` [PATCH 2/7] x86: memtest: introduce array to select memtest patterns Andreas Herrmann
` (6 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-25 10:26 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
Impact: fix unexpected behaviour when pattern number is out of range
Current implementation provides 4 patterns for memtest. The code doesn't
check whether the memtest parameter value exceeds the maximum pattern number.
Instead the memtest code pretends to test with non-existing patterns, e.g.
when booting with memtest=10 I've observed the following
...
early_memtest: pattern num 10
0000001000 - 0000006000 pattern 0
...
0000001000 - 0000006000 pattern 1
...
0000001000 - 0000006000 pattern 2
...
0000001000 - 0000006000 pattern 3
...
0000001000 - 0000006000 pattern 4
...
0000001000 - 0000006000 pattern 5
...
0000001000 - 0000006000 pattern 6
...
0000001000 - 0000006000 pattern 7
...
0000001000 - 0000006000 pattern 8
...
0000001000 - 0000006000 pattern 9
...
But in fact Linux didn't test anything for patterns > 4 as the default
case in memtest() is to leave the function.
I suggest to use the memtest parameter as the number of tests to be
performed and to re-iterate over all existing patterns.
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
arch/x86/mm/memtest.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 9cab18b..00b8bdc 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -9,6 +9,8 @@
#include <asm/e820.h>
+#define _MAX_MEM_PATTERNS 4
+
static void __init memtest(unsigned long start_phys, unsigned long size,
unsigned pattern)
{
@@ -21,6 +23,8 @@ static void __init memtest(unsigned long start_phys, unsigned long size,
unsigned long count;
unsigned long incr;
+ pattern = pattern % _MAX_MEM_PATTERNS;
+
switch (pattern) {
case 0:
val = 0UL;
@@ -110,8 +114,9 @@ void __init early_memtest(unsigned long start, unsigned long end)
t_size = end - t_start;
printk(KERN_CONT "\n %010llx - %010llx pattern %d",
- (unsigned long long)t_start,
- (unsigned long long)t_start + t_size, pattern);
+ (unsigned long long)t_start,
+ (unsigned long long)t_start + t_size,
+ pattern % _MAX_MEM_PATTERNS);
memtest(t_start, t_size, pattern);
--
1.6.1.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/7] x86: memtest: introduce array to select memtest patterns
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
2009-02-25 10:26 ` [PATCH 1/7] x86: memtest: reuse test patterns when memtest parameter exceeds number of available patterns Andreas Herrmann
@ 2009-02-25 10:27 ` Andreas Herrmann
2009-02-25 10:28 ` [PATCH 3/7] x86: memtest: cleanup memtest function Andreas Herrmann
` (5 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-25 10:27 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
Impact: code cleanup
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
arch/x86/mm/memtest.c | 65 +++++++++++++++++-------------------------------
1 files changed, 23 insertions(+), 42 deletions(-)
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 00b8bdc..827f940 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -9,48 +9,25 @@
#include <asm/e820.h>
-#define _MAX_MEM_PATTERNS 4
+static u64 patterns[] __initdata = {
+ 0,
+ 0xffffffffffffffffULL,
+ 0x5555555555555555ULL,
+ 0xaaaaaaaaaaaaaaaaULL,
+};
static void __init memtest(unsigned long start_phys, unsigned long size,
- unsigned pattern)
+ u64 pattern)
{
unsigned long i;
- unsigned long *start;
+ u64 *start;
unsigned long start_bad;
unsigned long last_bad;
- unsigned long val;
unsigned long start_phys_aligned;
unsigned long count;
unsigned long incr;
- pattern = pattern % _MAX_MEM_PATTERNS;
-
- switch (pattern) {
- case 0:
- val = 0UL;
- break;
- case 1:
- val = -1UL;
- break;
- case 2:
-#ifdef CONFIG_X86_64
- val = 0x5555555555555555UL;
-#else
- val = 0x55555555UL;
-#endif
- break;
- case 3:
-#ifdef CONFIG_X86_64
- val = 0xaaaaaaaaaaaaaaaaUL;
-#else
- val = 0xaaaaaaaaUL;
-#endif
- break;
- default:
- return;
- }
-
- incr = sizeof(unsigned long);
+ incr = sizeof(pattern);
start_phys_aligned = ALIGN(start_phys, incr);
count = (size - (start_phys_aligned - start_phys))/incr;
start = __va(start_phys_aligned);
@@ -58,15 +35,16 @@ static void __init memtest(unsigned long start_phys, unsigned long size,
last_bad = 0;
for (i = 0; i < count; i++)
- start[i] = val;
+ start[i] = pattern;
for (i = 0; i < count; i++, start++, start_phys_aligned += incr) {
- if (*start != val) {
+ if (*start != pattern) {
if (start_phys_aligned == last_bad + incr) {
last_bad += incr;
} else {
if (start_bad) {
- printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved",
- val, start_bad, last_bad + incr);
+ printk(KERN_CONT "\n %016llx bad mem addr %010lx - %010lx reserved",
+ (unsigned long long) pattern,
+ start_bad, last_bad + incr);
reserve_early(start_bad, last_bad + incr, "BAD RAM");
}
start_bad = last_bad = start_phys_aligned;
@@ -74,8 +52,9 @@ static void __init memtest(unsigned long start_phys, unsigned long size,
}
}
if (start_bad) {
- printk(KERN_CONT "\n %016lx bad mem addr %010lx - %010lx reserved",
- val, start_bad, last_bad + incr);
+ printk(KERN_CONT "\n %016llx bad mem addr %010lx - %010lx reserved",
+ (unsigned long long) pattern, start_bad,
+ last_bad + incr);
reserve_early(start_bad, last_bad + incr, "BAD RAM");
}
}
@@ -95,13 +74,16 @@ early_param("memtest", parse_memtest);
void __init early_memtest(unsigned long start, unsigned long end)
{
u64 t_start, t_size;
- unsigned pattern;
+ unsigned int i;
+ u64 pattern;
if (!memtest_pattern)
return;
printk(KERN_INFO "early_memtest: pattern num %d", memtest_pattern);
- for (pattern = 0; pattern < memtest_pattern; pattern++) {
+ for (i = 0; i < memtest_pattern; i++) {
+ unsigned int idx = i % ARRAY_SIZE(patterns);
+ pattern = patterns[idx];
t_start = start;
t_size = 0;
while (t_start < end) {
@@ -115,8 +97,7 @@ void __init early_memtest(unsigned long start, unsigned long end)
printk(KERN_CONT "\n %010llx - %010llx pattern %d",
(unsigned long long)t_start,
- (unsigned long long)t_start + t_size,
- pattern % _MAX_MEM_PATTERNS);
+ (unsigned long long)t_start + t_size, idx);
memtest(t_start, t_size, pattern);
--
1.6.1.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/7] x86: memtest: cleanup memtest function
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
2009-02-25 10:26 ` [PATCH 1/7] x86: memtest: reuse test patterns when memtest parameter exceeds number of available patterns Andreas Herrmann
2009-02-25 10:27 ` [PATCH 2/7] x86: memtest: introduce array to select memtest patterns Andreas Herrmann
@ 2009-02-25 10:28 ` Andreas Herrmann
2009-02-25 10:28 ` [PATCH 4/7] x86: memtest: adapt log messages Andreas Herrmann
` (4 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-25 10:28 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
Impact: code cleanup
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
arch/x86/mm/memtest.c | 37 +++++++++++++++++++------------------
1 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 827f940..01a72d6 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -16,6 +16,15 @@ static u64 patterns[] __initdata = {
0xaaaaaaaaaaaaaaaaULL,
};
+static void __init reserve_bad_mem(u64 pattern, unsigned long start_bad,
+ unsigned long end_bad)
+{
+ printk(KERN_CONT "\n %016llx bad mem addr "
+ "%010lx - %010lx reserved",
+ (unsigned long long) pattern, start_bad, end_bad);
+ reserve_early(start_bad, end_bad, "BAD RAM");
+}
+
static void __init memtest(unsigned long start_phys, unsigned long size,
u64 pattern)
{
@@ -37,26 +46,18 @@ static void __init memtest(unsigned long start_phys, unsigned long size,
for (i = 0; i < count; i++)
start[i] = pattern;
for (i = 0; i < count; i++, start++, start_phys_aligned += incr) {
- if (*start != pattern) {
- if (start_phys_aligned == last_bad + incr) {
- last_bad += incr;
- } else {
- if (start_bad) {
- printk(KERN_CONT "\n %016llx bad mem addr %010lx - %010lx reserved",
- (unsigned long long) pattern,
- start_bad, last_bad + incr);
- reserve_early(start_bad, last_bad + incr, "BAD RAM");
- }
- start_bad = last_bad = start_phys_aligned;
- }
+ if (*start == pattern)
+ continue;
+ if (start_phys_aligned == last_bad + incr) {
+ last_bad += incr;
+ continue;
}
+ if (start_bad)
+ reserve_bad_mem(pattern, start_bad, last_bad + incr);
+ start_bad = last_bad = start_phys_aligned;
}
- if (start_bad) {
- printk(KERN_CONT "\n %016llx bad mem addr %010lx - %010lx reserved",
- (unsigned long long) pattern, start_bad,
- last_bad + incr);
- reserve_early(start_bad, last_bad + incr, "BAD RAM");
- }
+ if (start_bad)
+ reserve_bad_mem(pattern, start_bad, last_bad + incr);
}
/* default is disabled */
--
1.6.1.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 4/7] x86: memtest: adapt log messages
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
` (2 preceding siblings ...)
2009-02-25 10:28 ` [PATCH 3/7] x86: memtest: cleanup memtest function Andreas Herrmann
@ 2009-02-25 10:28 ` Andreas Herrmann
2009-02-25 10:30 ` [PATCH 5/7] x86: memtest: wipe out test pattern from memory Andreas Herrmann
` (3 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-25 10:28 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
* print test pattern instead of pattern number,
* show pattern as stored in memory,
* use proper priority flags,
* consistent use of u64 throughout the code
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
arch/x86/mm/memtest.c | 36 ++++++++++++++++--------------------
1 files changed, 16 insertions(+), 20 deletions(-)
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 01a72d6..3232397 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -16,25 +16,22 @@ static u64 patterns[] __initdata = {
0xaaaaaaaaaaaaaaaaULL,
};
-static void __init reserve_bad_mem(u64 pattern, unsigned long start_bad,
- unsigned long end_bad)
+static void __init reserve_bad_mem(u64 pattern, u64 start_bad, u64 end_bad)
{
- printk(KERN_CONT "\n %016llx bad mem addr "
- "%010lx - %010lx reserved",
- (unsigned long long) pattern, start_bad, end_bad);
+ printk(KERN_INFO " %016llx bad mem addr %010llx - %010llx reserved\n",
+ (unsigned long long) pattern,
+ (unsigned long long) start_bad,
+ (unsigned long long) end_bad);
reserve_early(start_bad, end_bad, "BAD RAM");
}
-static void __init memtest(unsigned long start_phys, unsigned long size,
- u64 pattern)
+static void __init memtest(u64 pattern, u64 start_phys, u64 size)
{
- unsigned long i;
+ u64 i, count;
u64 *start;
- unsigned long start_bad;
- unsigned long last_bad;
- unsigned long start_phys_aligned;
- unsigned long count;
- unsigned long incr;
+ u64 start_bad, last_bad;
+ u64 start_phys_aligned;
+ size_t incr;
incr = sizeof(pattern);
start_phys_aligned = ALIGN(start_phys, incr);
@@ -81,7 +78,7 @@ void __init early_memtest(unsigned long start, unsigned long end)
if (!memtest_pattern)
return;
- printk(KERN_INFO "early_memtest: pattern num %d", memtest_pattern);
+ printk(KERN_INFO "early_memtest: # of tests: %d\n", memtest_pattern);
for (i = 0; i < memtest_pattern; i++) {
unsigned int idx = i % ARRAY_SIZE(patterns);
pattern = patterns[idx];
@@ -96,14 +93,13 @@ void __init early_memtest(unsigned long start, unsigned long end)
if (t_start + t_size > end)
t_size = end - t_start;
- printk(KERN_CONT "\n %010llx - %010llx pattern %d",
- (unsigned long long)t_start,
- (unsigned long long)t_start + t_size, idx);
-
- memtest(t_start, t_size, pattern);
+ printk(KERN_INFO " %010llx - %010llx pattern %016llx\n",
+ (unsigned long long) t_start,
+ (unsigned long long) t_start + t_size,
+ (unsigned long long) cpu_to_be64(pattern));
+ memtest(pattern, t_start, t_size);
t_start += t_size;
}
}
- printk(KERN_CONT "\n");
}
--
1.6.1.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 5/7] x86: memtest: wipe out test pattern from memory
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
` (3 preceding siblings ...)
2009-02-25 10:28 ` [PATCH 4/7] x86: memtest: adapt log messages Andreas Herrmann
@ 2009-02-25 10:30 ` Andreas Herrmann
2009-02-25 10:30 ` [PATCH 6/7] x86: update description for memtest boot parameter Andreas Herrmann
` (2 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-25 10:30 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
arch/x86/mm/memtest.c | 56 ++++++++++++++++++++++++++++--------------------
1 files changed, 33 insertions(+), 23 deletions(-)
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 3232397..9c52ef1 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -57,6 +57,29 @@ static void __init memtest(u64 pattern, u64 start_phys, u64 size)
reserve_bad_mem(pattern, start_bad, last_bad + incr);
}
+static void __init do_one_pass(u64 pattern, u64 start, u64 end)
+{
+ u64 size = 0;
+
+ while (start < end) {
+ start = find_e820_area_size(start, &size, 1);
+
+ /* done ? */
+ if (start >= end)
+ break;
+ if (start + size > end)
+ size = end - start;
+
+ printk(KERN_INFO " %010llx - %010llx pattern %016llx\n",
+ (unsigned long long) start,
+ (unsigned long long) start + size,
+ (unsigned long long) cpu_to_be64(pattern));
+ memtest(pattern, start, size);
+
+ start += size;
+ }
+}
+
/* default is disabled */
static int memtest_pattern __initdata;
@@ -71,35 +94,22 @@ early_param("memtest", parse_memtest);
void __init early_memtest(unsigned long start, unsigned long end)
{
- u64 t_start, t_size;
unsigned int i;
- u64 pattern;
+ unsigned int idx = 0;
if (!memtest_pattern)
return;
printk(KERN_INFO "early_memtest: # of tests: %d\n", memtest_pattern);
for (i = 0; i < memtest_pattern; i++) {
- unsigned int idx = i % ARRAY_SIZE(patterns);
- pattern = patterns[idx];
- t_start = start;
- t_size = 0;
- while (t_start < end) {
- t_start = find_e820_area_size(t_start, &t_size, 1);
-
- /* done ? */
- if (t_start >= end)
- break;
- if (t_start + t_size > end)
- t_size = end - t_start;
-
- printk(KERN_INFO " %010llx - %010llx pattern %016llx\n",
- (unsigned long long) t_start,
- (unsigned long long) t_start + t_size,
- (unsigned long long) cpu_to_be64(pattern));
- memtest(pattern, t_start, t_size);
-
- t_start += t_size;
- }
+ idx = i % ARRAY_SIZE(patterns);
+ do_one_pass(patterns[idx], start, end);
+ }
+
+ if (idx > 0) {
+ printk(KERN_INFO "early_memtest: wipe out "
+ "test pattern from memory\n");
+ /* additional test with pattern 0 will do this */
+ do_one_pass(0, start, end);
}
}
--
1.6.1.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 6/7] x86: update description for memtest boot parameter
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
` (4 preceding siblings ...)
2009-02-25 10:30 ` [PATCH 5/7] x86: memtest: wipe out test pattern from memory Andreas Herrmann
@ 2009-02-25 10:30 ` Andreas Herrmann
2009-02-25 10:31 ` [PATCH 7/7] x86: memtest: add additional (regular) test patterns Andreas Herrmann
2009-02-25 11:20 ` [PATCH 0/7 v2] x86: memtest update Ingo Molnar
7 siblings, 0 replies; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-25 10:30 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
Documentation/kernel-parameters.txt | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 319785b..8cc4518 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1308,8 +1308,13 @@ and is between 256 and 4096 characters. It is defined in the file
memtest= [KNL,X86] Enable memtest
Format: <integer>
- range: 0,4 : pattern number
default : 0 <disable>
+ Specifies the number of memtest passes to be
+ performed. Each pass selects another test
+ pattern from a given set of patterns. Memtest
+ fills the memory with this pattern, validates
+ memory contents and reserves bad memory
+ regions that are detected.
meye.*= [HW] Set MotionEye Camera parameters
See Documentation/video4linux/meye.txt.
--
1.6.1.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 7/7] x86: memtest: add additional (regular) test patterns
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
` (5 preceding siblings ...)
2009-02-25 10:30 ` [PATCH 6/7] x86: update description for memtest boot parameter Andreas Herrmann
@ 2009-02-25 10:31 ` Andreas Herrmann
2009-02-25 11:20 ` Ingo Molnar
2009-02-25 11:20 ` [PATCH 0/7 v2] x86: memtest update Ingo Molnar
7 siblings, 1 reply; 11+ messages in thread
From: Andreas Herrmann @ 2009-02-25 10:31 UTC (permalink / raw)
To: Ingo Molnar, Thomas Gleixner, H. Peter Anvin; +Cc: linux-kernel
Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
---
arch/x86/mm/memtest.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
index 9c52ef1..0bcd788 100644
--- a/arch/x86/mm/memtest.c
+++ b/arch/x86/mm/memtest.c
@@ -14,6 +14,19 @@ static u64 patterns[] __initdata = {
0xffffffffffffffffULL,
0x5555555555555555ULL,
0xaaaaaaaaaaaaaaaaULL,
+ 0x1111111111111111ULL,
+ 0x2222222222222222ULL,
+ 0x4444444444444444ULL,
+ 0x8888888888888888ULL,
+ 0x3333333333333333ULL,
+ 0x6666666666666666ULL,
+ 0x9999999999999999ULL,
+ 0xccccccccccccccccULL,
+ 0x7777777777777777ULL,
+ 0xbbbbbbbbbbbbbbbbULL,
+ 0xddddddddddddddddULL,
+ 0xeeeeeeeeeeeeeeeeULL,
+ 0x7a6c7258554e494cULL, /* yeah ;-) */
};
static void __init reserve_bad_mem(u64 pattern, u64 start_bad, u64 end_bad)
--
1.6.1.3
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 0/7 v2] x86: memtest update
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
` (6 preceding siblings ...)
2009-02-25 10:31 ` [PATCH 7/7] x86: memtest: add additional (regular) test patterns Andreas Herrmann
@ 2009-02-25 11:20 ` Ingo Molnar
7 siblings, 0 replies; 11+ messages in thread
From: Ingo Molnar @ 2009-02-25 11:20 UTC (permalink / raw)
To: Andreas Herrmann, Yinghai Lu
Cc: Thomas Gleixner, H. Peter Anvin, linux-kernel
* Andreas Herrmann <andreas.herrmann3@amd.com> wrote:
> Second try to cleanup the memtest code a little bit.
> Addressing the issues with the first version of this patch
> set.
>
> Please apply.
Applied to tip:x86/memtest, thanks Andreas!
Ingo
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 7/7] x86: memtest: add additional (regular) test patterns
2009-02-25 10:31 ` [PATCH 7/7] x86: memtest: add additional (regular) test patterns Andreas Herrmann
@ 2009-02-25 11:20 ` Ingo Molnar
0 siblings, 0 replies; 11+ messages in thread
From: Ingo Molnar @ 2009-02-25 11:20 UTC (permalink / raw)
To: Andreas Herrmann; +Cc: Thomas Gleixner, H. Peter Anvin, linux-kernel
* Andreas Herrmann <andreas.herrmann3@amd.com> wrote:
>
> Signed-off-by: Andreas Herrmann <andreas.herrmann3@amd.com>
> ---
> arch/x86/mm/memtest.c | 13 +++++++++++++
> 1 files changed, 13 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/mm/memtest.c b/arch/x86/mm/memtest.c
> index 9c52ef1..0bcd788 100644
> --- a/arch/x86/mm/memtest.c
> +++ b/arch/x86/mm/memtest.c
> @@ -14,6 +14,19 @@ static u64 patterns[] __initdata = {
> 0xffffffffffffffffULL,
> 0x5555555555555555ULL,
> 0xaaaaaaaaaaaaaaaaULL,
> + 0x1111111111111111ULL,
> + 0x2222222222222222ULL,
> + 0x4444444444444444ULL,
> + 0x8888888888888888ULL,
> + 0x3333333333333333ULL,
> + 0x6666666666666666ULL,
> + 0x9999999999999999ULL,
> + 0xccccccccccccccccULL,
> + 0x7777777777777777ULL,
> + 0xbbbbbbbbbbbbbbbbULL,
> + 0xddddddddddddddddULL,
> + 0xeeeeeeeeeeeeeeeeULL,
> + 0x7a6c7258554e494cULL, /* yeah ;-) */
it indeed does ;-)
Ingo
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2009-02-25 11:20 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-25 10:23 [PATCH 0/7 v2] x86: memtest update Andreas Herrmann
2009-02-25 10:26 ` [PATCH 1/7] x86: memtest: reuse test patterns when memtest parameter exceeds number of available patterns Andreas Herrmann
2009-02-25 10:27 ` [PATCH 2/7] x86: memtest: introduce array to select memtest patterns Andreas Herrmann
2009-02-25 10:28 ` [PATCH 3/7] x86: memtest: cleanup memtest function Andreas Herrmann
2009-02-25 10:28 ` [PATCH 4/7] x86: memtest: adapt log messages Andreas Herrmann
2009-02-25 10:30 ` [PATCH 5/7] x86: memtest: wipe out test pattern from memory Andreas Herrmann
2009-02-25 10:30 ` [PATCH 6/7] x86: update description for memtest boot parameter Andreas Herrmann
2009-02-25 10:31 ` [PATCH 7/7] x86: memtest: add additional (regular) test patterns Andreas Herrmann
2009-02-25 11:20 ` Ingo Molnar
2009-02-25 11:20 ` [PATCH 0/7 v2] x86: memtest update Ingo Molnar
-- strict thread matches above, loose matches on Subject: below --
2009-02-13 14:46 [PATCH 0/7] " Andreas Herrmann
2009-02-13 14:52 ` [PATCH 3/7] x86: memtest: cleanup memtest function Andreas Herrmann
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.