* [PATCH] x86: use round_jiffies() for the corruption check timer
@ 2008-09-21 3:35 Arjan van de Ven
2008-09-22 8:29 ` Ingo Molnar
2008-09-22 21:04 ` [PATCH 1/2] corruption check: move the corruption checks into their own file Arjan van de Ven
0 siblings, 2 replies; 8+ messages in thread
From: Arjan van de Ven @ 2008-09-21 3:35 UTC (permalink / raw)
To: mingo; +Cc: linux-kernel, Hugh Dickins, Jeremy Fitzhardinge
From: Arjan van de Ven <arjan@linux.intel.com>
Date: Sat, 20 Sep 2008 20:32:43 -0700
Subject: [PATCH] x86: use round_jiffies() for the corruption check timer
the exact timing of the corruption check isn't too important (it's once a
minute timer), use round_jiffies() to align it and avoid extra wakeups.
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
CC: Hugh Dickins <hugh@veritas.com>
CC: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
---
arch/x86/kernel/setup.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index d5bd679..a9998cb 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -715,7 +715,7 @@ void check_for_bios_corruption(void)
static void periodic_check_for_corruption(unsigned long data)
{
check_for_bios_corruption();
- mod_timer(&periodic_check_timer, jiffies + corruption_check_period*HZ);
+ mod_timer(&periodic_check_timer, round_jiffies(jiffies + corruption_check_period*HZ));
}
void start_periodic_check_for_corruption(void)
--
1.5.5.1
--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] x86: use round_jiffies() for the corruption check timer
2008-09-21 3:35 [PATCH] x86: use round_jiffies() for the corruption check timer Arjan van de Ven
@ 2008-09-22 8:29 ` Ingo Molnar
2008-09-22 21:04 ` [PATCH 1/2] corruption check: move the corruption checks into their own file Arjan van de Ven
1 sibling, 0 replies; 8+ messages in thread
From: Ingo Molnar @ 2008-09-22 8:29 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: linux-kernel, Hugh Dickins, Jeremy Fitzhardinge
* Arjan van de Ven <arjan@infradead.org> wrote:
>
> From: Arjan van de Ven <arjan@linux.intel.com>
> Date: Sat, 20 Sep 2008 20:32:43 -0700
> Subject: [PATCH] x86: use round_jiffies() for the corruption check timer
>
> the exact timing of the corruption check isn't too important (it's once a
> minute timer), use round_jiffies() to align it and avoid extra wakeups.
>
> Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
> CC: Hugh Dickins <hugh@veritas.com>
> CC: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
applied to tip/x86/memory-corruption-check, thanks Arjan!
Ingo
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] corruption check: move the corruption checks into their own file
2008-09-21 3:35 [PATCH] x86: use round_jiffies() for the corruption check timer Arjan van de Ven
2008-09-22 8:29 ` Ingo Molnar
@ 2008-09-22 21:04 ` Arjan van de Ven
2008-09-22 21:05 ` [PATCH 2/2] corruption check: run the corruption checks from a work queue Arjan van de Ven
1 sibling, 1 reply; 8+ messages in thread
From: Arjan van de Ven @ 2008-09-22 21:04 UTC (permalink / raw)
To: linux-kernel; +Cc: Arjan van de Ven, mingo, Hugh Dickins, Jeremy Fitzhardinge
From: Arjan van de Ven <arjan@linux.intel.com>
Date: Mon, 22 Sep 2008 09:35:06 -0700
Subject: [PATCH] corruption check: move the corruption checks into their own file
The corruption check code is rather sizable and it's likely to grow over time when
we add checks for more types of corruptions (there's a few candidates in kerneloops.org
that I want to add checks for)... so lets move it to its own file
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
---
arch/x86/kernel/Makefile | 1 +
arch/x86/kernel/corruptioncheck.c | 156 +++++++++++++++++++++++++++++++++++++
arch/x86/kernel/setup.c | 151 -----------------------------------
include/asm-x86/setup.h | 4 +
4 files changed, 161 insertions(+), 151 deletions(-)
create mode 100644 arch/x86/kernel/corruptioncheck.c
diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
index 8db0877..29f9ef2 100644
--- a/arch/x86/kernel/Makefile
+++ b/arch/x86/kernel/Makefile
@@ -36,6 +36,7 @@ obj-y += bootflag.o e820.o
obj-y += pci-dma.o quirks.o i8237.o topology.o kdebugfs.o
obj-y += alternative.o i8253.o pci-nommu.o
obj-y += tsc.o io_delay.o rtc.o
+obj-y += corruptioncheck.o
obj-$(CONFIG_X86_TRAMPOLINE) += trampoline.o
obj-y += process.o
diff --git a/arch/x86/kernel/corruptioncheck.c b/arch/x86/kernel/corruptioncheck.c
new file mode 100644
index 0000000..a7e80ed
--- /dev/null
+++ b/arch/x86/kernel/corruptioncheck.c
@@ -0,0 +1,156 @@
+#include <linux/module.h>
+#include <linux/sched.h>
+
+#include <asm/e820.h>
+#include <asm/proto.h>
+
+/*
+ * Some BIOSes seem to corrupt the low 64k of memory during events
+ * like suspend/resume and unplugging an HDMI cable. Reserve all
+ * remaining free memory in that area and fill it with a distinct
+ * pattern.
+ */
+#ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION
+#define MAX_SCAN_AREAS 8
+
+static int __read_mostly memory_corruption_check = -1;
+
+static unsigned __read_mostly corruption_check_size = 64*1024;
+static unsigned __read_mostly corruption_check_period = 60; /* seconds */
+
+static struct e820entry scan_areas[MAX_SCAN_AREAS];
+static int num_scan_areas;
+
+
+static int set_corruption_check(char *arg)
+{
+ char *end;
+
+ memory_corruption_check = simple_strtol(arg, &end, 10);
+
+ return (*end == 0) ? 0 : -EINVAL;
+}
+early_param("memory_corruption_check", set_corruption_check);
+
+static int set_corruption_check_period(char *arg)
+{
+ char *end;
+
+ corruption_check_period = simple_strtoul(arg, &end, 10);
+
+ return (*end == 0) ? 0 : -EINVAL;
+}
+early_param("memory_corruption_check_period", set_corruption_check_period);
+
+static int set_corruption_check_size(char *arg)
+{
+ char *end;
+ unsigned size;
+
+ size = memparse(arg, &end);
+
+ if (*end == '\0')
+ corruption_check_size = size;
+
+ return (size == corruption_check_size) ? 0 : -EINVAL;
+}
+early_param("memory_corruption_check_size", set_corruption_check_size);
+
+
+void __init setup_bios_corruption_check(void)
+{
+ u64 addr = PAGE_SIZE; /* assume first page is reserved anyway */
+
+ if (memory_corruption_check == -1) {
+ memory_corruption_check =
+#ifdef CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
+ 1
+#else
+ 0
+#endif
+ ;
+ }
+
+ if (corruption_check_size == 0)
+ memory_corruption_check = 0;
+
+ if (!memory_corruption_check)
+ return;
+
+ corruption_check_size = round_up(corruption_check_size, PAGE_SIZE);
+
+ while(addr < corruption_check_size && num_scan_areas < MAX_SCAN_AREAS) {
+ u64 size;
+ addr = find_e820_area_size(addr, &size, PAGE_SIZE);
+
+ if (addr == 0)
+ break;
+
+ if ((addr + size) > corruption_check_size)
+ size = corruption_check_size - addr;
+
+ if (size == 0)
+ break;
+
+ e820_update_range(addr, size, E820_RAM, E820_RESERVED);
+ scan_areas[num_scan_areas].addr = addr;
+ scan_areas[num_scan_areas].size = size;
+ num_scan_areas++;
+
+ /* Assume we've already mapped this early memory */
+ memset(__va(addr), 0, size);
+
+ addr += size;
+ }
+
+ printk(KERN_INFO "Scanning %d areas for low memory corruption\n",
+ num_scan_areas);
+ update_e820();
+}
+
+static struct timer_list periodic_check_timer;
+
+void check_for_bios_corruption(void)
+{
+ int i;
+ int corruption = 0;
+
+ if (!memory_corruption_check)
+ return;
+
+ for(i = 0; i < num_scan_areas; i++) {
+ unsigned long *addr = __va(scan_areas[i].addr);
+ unsigned long size = scan_areas[i].size;
+
+ for(; size; addr++, size -= sizeof(unsigned long)) {
+ if (!*addr)
+ continue;
+ printk(KERN_ERR "Corrupted low memory at %p (%lx phys) = %08lx\n",
+ addr, __pa(addr), *addr);
+ corruption = 1;
+ *addr = 0;
+ }
+ }
+
+ WARN(corruption, KERN_ERR "Memory corruption detected in low memory\n");
+}
+
+static void periodic_check_for_corruption(unsigned long data)
+{
+ check_for_bios_corruption();
+ mod_timer(&periodic_check_timer, round_jiffies(jiffies + corruption_check_period*HZ));
+}
+
+void start_periodic_check_for_corruption(void)
+{
+ if (!memory_corruption_check || corruption_check_period == 0)
+ return;
+
+ printk(KERN_INFO "Scanning for low memory corruption every %d seconds\n",
+ corruption_check_period);
+
+ init_timer(&periodic_check_timer);
+ periodic_check_timer.function = &periodic_check_for_corruption;
+ periodic_check_for_corruption(0);
+}
+#endif
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index a9998cb..8fa04e8 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -581,157 +581,6 @@ static struct x86_quirks default_x86_quirks __initdata;
struct x86_quirks *x86_quirks __initdata = &default_x86_quirks;
-/*
- * Some BIOSes seem to corrupt the low 64k of memory during events
- * like suspend/resume and unplugging an HDMI cable. Reserve all
- * remaining free memory in that area and fill it with a distinct
- * pattern.
- */
-#ifdef CONFIG_X86_CHECK_BIOS_CORRUPTION
-#define MAX_SCAN_AREAS 8
-
-static int __read_mostly memory_corruption_check = -1;
-
-static unsigned __read_mostly corruption_check_size = 64*1024;
-static unsigned __read_mostly corruption_check_period = 60; /* seconds */
-
-static struct e820entry scan_areas[MAX_SCAN_AREAS];
-static int num_scan_areas;
-
-
-static int set_corruption_check(char *arg)
-{
- char *end;
-
- memory_corruption_check = simple_strtol(arg, &end, 10);
-
- return (*end == 0) ? 0 : -EINVAL;
-}
-early_param("memory_corruption_check", set_corruption_check);
-
-static int set_corruption_check_period(char *arg)
-{
- char *end;
-
- corruption_check_period = simple_strtoul(arg, &end, 10);
-
- return (*end == 0) ? 0 : -EINVAL;
-}
-early_param("memory_corruption_check_period", set_corruption_check_period);
-
-static int set_corruption_check_size(char *arg)
-{
- char *end;
- unsigned size;
-
- size = memparse(arg, &end);
-
- if (*end == '\0')
- corruption_check_size = size;
-
- return (size == corruption_check_size) ? 0 : -EINVAL;
-}
-early_param("memory_corruption_check_size", set_corruption_check_size);
-
-
-static void __init setup_bios_corruption_check(void)
-{
- u64 addr = PAGE_SIZE; /* assume first page is reserved anyway */
-
- if (memory_corruption_check == -1) {
- memory_corruption_check =
-#ifdef CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK
- 1
-#else
- 0
-#endif
- ;
- }
-
- if (corruption_check_size == 0)
- memory_corruption_check = 0;
-
- if (!memory_corruption_check)
- return;
-
- corruption_check_size = round_up(corruption_check_size, PAGE_SIZE);
-
- while(addr < corruption_check_size && num_scan_areas < MAX_SCAN_AREAS) {
- u64 size;
- addr = find_e820_area_size(addr, &size, PAGE_SIZE);
-
- if (addr == 0)
- break;
-
- if ((addr + size) > corruption_check_size)
- size = corruption_check_size - addr;
-
- if (size == 0)
- break;
-
- e820_update_range(addr, size, E820_RAM, E820_RESERVED);
- scan_areas[num_scan_areas].addr = addr;
- scan_areas[num_scan_areas].size = size;
- num_scan_areas++;
-
- /* Assume we've already mapped this early memory */
- memset(__va(addr), 0, size);
-
- addr += size;
- }
-
- printk(KERN_INFO "Scanning %d areas for low memory corruption\n",
- num_scan_areas);
- update_e820();
-}
-
-static struct timer_list periodic_check_timer;
-
-void check_for_bios_corruption(void)
-{
- int i;
- int corruption = 0;
-
- if (!memory_corruption_check)
- return;
-
- for(i = 0; i < num_scan_areas; i++) {
- unsigned long *addr = __va(scan_areas[i].addr);
- unsigned long size = scan_areas[i].size;
-
- for(; size; addr++, size -= sizeof(unsigned long)) {
- if (!*addr)
- continue;
- printk(KERN_ERR "Corrupted low memory at %p (%lx phys) = %08lx\n",
- addr, __pa(addr), *addr);
- corruption = 1;
- *addr = 0;
- }
- }
-
- WARN(corruption, KERN_ERR "Memory corruption detected in low memory\n");
-}
-
-static void periodic_check_for_corruption(unsigned long data)
-{
- check_for_bios_corruption();
- mod_timer(&periodic_check_timer, round_jiffies(jiffies + corruption_check_period*HZ));
-}
-
-void start_periodic_check_for_corruption(void)
-{
- if (!memory_corruption_check || corruption_check_period == 0)
- return;
-
- printk(KERN_INFO "Scanning for low memory corruption every %d seconds\n",
- corruption_check_period);
-
- init_timer(&periodic_check_timer);
- periodic_check_timer.function = &periodic_check_for_corruption;
- periodic_check_for_corruption(0);
-}
-#endif
-
static int __init dmi_low_memory_corruption(const struct dmi_system_id *d)
{
printk(KERN_NOTICE
diff --git a/include/asm-x86/setup.h b/include/asm-x86/setup.h
index 11b6cc1..5c55fc1 100644
--- a/include/asm-x86/setup.h
+++ b/include/asm-x86/setup.h
@@ -8,6 +8,10 @@
/* Interrupt control for vSMPowered x86_64 systems */
void vsmp_init(void);
+
+void setup_bios_corruption_check(void);
+
+
#ifdef CONFIG_X86_VISWS
extern void visws_early_detect(void);
extern int is_visws_box(void);
--
1.5.5.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] corruption check: run the corruption checks from a work queue
2008-09-22 21:04 ` [PATCH 1/2] corruption check: move the corruption checks into their own file Arjan van de Ven
@ 2008-09-22 21:05 ` Arjan van de Ven
2008-09-22 23:24 ` Arjan van de Ven
0 siblings, 1 reply; 8+ messages in thread
From: Arjan van de Ven @ 2008-09-22 21:05 UTC (permalink / raw)
To: linux-kernel; +Cc: Arjan van de Ven, mingo, Hugh Dickins, Jeremy Fitzhardinge
From: Arjan van de Ven <arjan@linux.intel.com>
Date: Mon, 22 Sep 2008 13:42:15 -0700
Subject: [PATCH] corruption check: run the corruption checks from a work queue
the corruption checks are better off run from a work queue; there's nothing
time critical about them and this way the amount of interrupt-context work
is reduced (including interrupt latency)
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
---
arch/x86/kernel/corruptioncheck.c | 21 +++++++++++++++++----
arch/x86/mm/init_32.c | 2 --
arch/x86/mm/init_64.c | 2 --
include/linux/kernel.h | 2 +-
4 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/arch/x86/kernel/corruptioncheck.c b/arch/x86/kernel/corruptioncheck.c
index a7e80ed..cd89219 100644
--- a/arch/x86/kernel/corruptioncheck.c
+++ b/arch/x86/kernel/corruptioncheck.c
@@ -1,5 +1,6 @@
#include <linux/module.h>
#include <linux/sched.h>
+#include <linux/kthread.h>
#include <asm/e820.h>
#include <asm/proto.h>
@@ -135,22 +136,34 @@ void check_for_bios_corruption(void)
WARN(corruption, KERN_ERR "Memory corruption detected in low memory\n");
}
-static void periodic_check_for_corruption(unsigned long data)
+static void check_corruption(struct work_struct *dummy)
{
check_for_bios_corruption();
+}
+
+static void periodic_check_for_corruption(unsigned long data)
+{
+ static DECLARE_WORK(corruptioncheck_work, check_corruption);
+ schedule_work(&corruptioncheck_work);
mod_timer(&periodic_check_timer, round_jiffies(jiffies + corruption_check_period*HZ));
}
-void start_periodic_check_for_corruption(void)
+
+
+int start_periodic_check_for_corruption(void)
{
if (!memory_corruption_check || corruption_check_period == 0)
- return;
+ return 0;
printk(KERN_INFO "Scanning for low memory corruption every %d seconds\n",
corruption_check_period);
init_timer(&periodic_check_timer);
periodic_check_timer.function = &periodic_check_for_corruption;
- periodic_check_for_corruption(0);
+ mod_timer(&periodic_check_timer, round_jiffies(jiffies + corruption_check_period*HZ));
+// periodic_check_for_corruption(0);
+ return 0;
}
+
+module_init(start_periodic_check_for_corruption);
#endif
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index b4c3a92..16ea9d0 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -905,8 +905,6 @@ void __init mem_init(void)
int codesize, reservedpages, datasize, initsize;
int tmp;
- start_periodic_check_for_corruption();
-
#ifdef CONFIG_FLATMEM
BUG_ON(!mem_map);
#endif
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index b565721..b65492e 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -822,8 +822,6 @@ void __init mem_init(void)
{
long codesize, reservedpages, datasize, initsize;
- start_periodic_check_for_corruption();
-
pci_iommu_alloc();
/* clear_bss() already clear the empty_zero_page */
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index a5afee2..01085d2 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -260,7 +260,7 @@ extern int root_mountflags;
* able to scatter it around anywhere in the kernel.
*/
void check_for_bios_corruption(void);
-void start_periodic_check_for_corruption(void);
+int start_periodic_check_for_corruption(void);
#else
static inline void check_for_bios_corruption(void)
{
--
1.5.5.1
--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] corruption check: run the corruption checks from a work queue
2008-09-22 21:05 ` [PATCH 2/2] corruption check: run the corruption checks from a work queue Arjan van de Ven
@ 2008-09-22 23:24 ` Arjan van de Ven
2008-09-22 23:28 ` Randy.Dunlap
0 siblings, 1 reply; 8+ messages in thread
From: Arjan van de Ven @ 2008-09-22 23:24 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: linux-kernel, mingo, Hugh Dickins, Jeremy Fitzhardinge
eh a stray debug // snuck in; update attached
From: Arjan van de Ven <arjan@linux.intel.com>
Date: Mon, 22 Sep 2008 13:42:15 -0700
Subject: [PATCH] corruption check: run the corruption checks from a work queue
the corruption checks are better off run from a work queue; there's nothing
time critical about them and this way the amount of interrupt-context work
is reduced.
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
---
arch/x86/kernel/corruptioncheck.c | 21 +++++++++++++++++----
arch/x86/mm/init_32.c | 2 --
arch/x86/mm/init_64.c | 2 --
include/linux/kernel.h | 2 +-
4 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/arch/x86/kernel/corruptioncheck.c b/arch/x86/kernel/corruptioncheck.c
index a7e80ed..cd89219 100644
--- a/arch/x86/kernel/corruptioncheck.c
+++ b/arch/x86/kernel/corruptioncheck.c
@@ -1,5 +1,6 @@
#include <linux/module.h>
#include <linux/sched.h>
+#include <linux/kthread.h>
#include <asm/e820.h>
#include <asm/proto.h>
@@ -135,22 +136,34 @@ void check_for_bios_corruption(void)
WARN(corruption, KERN_ERR "Memory corruption detected in low memory\n");
}
-static void periodic_check_for_corruption(unsigned long data)
+static void check_corruption(struct work_struct *dummy)
{
check_for_bios_corruption();
+}
+
+static void periodic_check_for_corruption(unsigned long data)
+{
+ static DECLARE_WORK(corruptioncheck_work, check_corruption);
+ schedule_work(&corruptioncheck_work);
mod_timer(&periodic_check_timer, round_jiffies(jiffies + corruption_check_period*HZ));
}
-void start_periodic_check_for_corruption(void)
+
+
+int start_periodic_check_for_corruption(void)
{
if (!memory_corruption_check || corruption_check_period == 0)
- return;
+ return 0;
printk(KERN_INFO "Scanning for low memory corruption every %d seconds\n",
corruption_check_period);
init_timer(&periodic_check_timer);
periodic_check_timer.function = &periodic_check_for_corruption;
- periodic_check_for_corruption(0);
+ mod_timer(&periodic_check_timer, round_jiffies(jiffies + corruption_check_period*HZ));
+
+ return 0;
}
+
+module_init(start_periodic_check_for_corruption);
#endif
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index b4c3a92..16ea9d0 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -905,8 +905,6 @@ void __init mem_init(void)
int codesize, reservedpages, datasize, initsize;
int tmp;
- start_periodic_check_for_corruption();
-
#ifdef CONFIG_FLATMEM
BUG_ON(!mem_map);
#endif
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
index b565721..b65492e 100644
--- a/arch/x86/mm/init_64.c
+++ b/arch/x86/mm/init_64.c
@@ -822,8 +822,6 @@ void __init mem_init(void)
{
long codesize, reservedpages, datasize, initsize;
- start_periodic_check_for_corruption();
-
pci_iommu_alloc();
/* clear_bss() already clear the empty_zero_page */
diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index a5afee2..01085d2 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -260,7 +260,7 @@ extern int root_mountflags;
* able to scatter it around anywhere in the kernel.
*/
void check_for_bios_corruption(void);
-void start_periodic_check_for_corruption(void);
+int start_periodic_check_for_corruption(void);
#else
static inline void check_for_bios_corruption(void)
{
--
1.5.5.1
--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] corruption check: run the corruption checks from a work queue
2008-09-22 23:24 ` Arjan van de Ven
@ 2008-09-22 23:28 ` Randy.Dunlap
2008-09-22 23:39 ` Arjan van de Ven
0 siblings, 1 reply; 8+ messages in thread
From: Randy.Dunlap @ 2008-09-22 23:28 UTC (permalink / raw)
To: Arjan van de Ven; +Cc: linux-kernel, mingo, Hugh Dickins, Jeremy Fitzhardinge
On Mon, 22 Sep 2008, Arjan van de Ven wrote:
> eh a stray debug // snuck in; update attached
In that case, patch 1/2 contains "for(" and "while(". :(
--
~Randy
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] corruption check: run the corruption checks from a work queue
2008-09-22 23:28 ` Randy.Dunlap
@ 2008-09-22 23:39 ` Arjan van de Ven
2008-09-23 11:33 ` Ingo Molnar
0 siblings, 1 reply; 8+ messages in thread
From: Arjan van de Ven @ 2008-09-22 23:39 UTC (permalink / raw)
To: Randy.Dunlap; +Cc: linux-kernel, mingo, Hugh Dickins, Jeremy Fitzhardinge
On Mon, 22 Sep 2008 16:28:23 -0700 (PDT)
"Randy.Dunlap" <rdunlap@xenotime.net> wrote:
> On Mon, 22 Sep 2008, Arjan van de Ven wrote:
>
> > eh a stray debug // snuck in; update attached
>
> In that case, patch 1/2 contains "for(" and "while(". :(
>
that's a dillema case.
I'm just moving code around in patch 1/2; I personally consider it bad
form to also change it at the same time.....
(and it confuses git change tracking)
--
Arjan van de Ven Intel Open Source Technology Centre
For development, discussion and tips for power savings,
visit http://www.lesswatts.org
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] corruption check: run the corruption checks from a work queue
2008-09-22 23:39 ` Arjan van de Ven
@ 2008-09-23 11:33 ` Ingo Molnar
0 siblings, 0 replies; 8+ messages in thread
From: Ingo Molnar @ 2008-09-23 11:33 UTC (permalink / raw)
To: Arjan van de Ven
Cc: Randy.Dunlap, linux-kernel, Hugh Dickins, Jeremy Fitzhardinge
* Arjan van de Ven <arjan@infradead.org> wrote:
> On Mon, 22 Sep 2008 16:28:23 -0700 (PDT)
> "Randy.Dunlap" <rdunlap@xenotime.net> wrote:
>
> > On Mon, 22 Sep 2008, Arjan van de Ven wrote:
> >
> > > eh a stray debug // snuck in; update attached
> >
> > In that case, patch 1/2 contains "for(" and "while(". :(
> >
>
> that's a dillema case.
> I'm just moving code around in patch 1/2; I personally consider it bad
> form to also change it at the same time.....
>
> (and it confuses git change tracking)
correct. The right solution in this case (where code is moved around) to
do a separate patch for the style errors Randy reported, once the code
has been moved over.
Ingo
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-09-23 11:33 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-21 3:35 [PATCH] x86: use round_jiffies() for the corruption check timer Arjan van de Ven
2008-09-22 8:29 ` Ingo Molnar
2008-09-22 21:04 ` [PATCH 1/2] corruption check: move the corruption checks into their own file Arjan van de Ven
2008-09-22 21:05 ` [PATCH 2/2] corruption check: run the corruption checks from a work queue Arjan van de Ven
2008-09-22 23:24 ` Arjan van de Ven
2008-09-22 23:28 ` Randy.Dunlap
2008-09-22 23:39 ` Arjan van de Ven
2008-09-23 11:33 ` Ingo Molnar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox