From: "La Monte H.P. Yarroll" <piggy@timesys.com>
To: William Lee Irwin III <wli@holomorphy.com>
Cc: Joe Korty <joe.korty@ccur.com>,
linux-kernel@vger.kernel.org, Greg Weeks <greg.weeks@timesys.com>,
Scott Wood <scott@timesys.com>
Subject: Re: preempt-timing-2.6.8-rc1
Date: Tue, 13 Jul 2004 11:05:55 -0400 [thread overview]
Message-ID: <40F3FA53.2010907@timesys.com> (raw)
In-Reply-To: <20040713144028.GH21066@holomorphy.com>
[-- Attachment #1: Type: text/plain, Size: 1277 bytes --]
William Lee Irwin III wrote:
>On Tue, Jul 13, 2004 at 05:28:05AM -0700, William Lee Irwin III wrote:
>
>
>>>This patch uses the preemption counter increments and decrements to time
>>>non-preemptible critical sections.
>>>This is an instrumentation patch intended to help determine the causes of
>>>scheduling latency related to long non-preemptible critical sections.
>>>Changes from 2.6.7-based patch:
>>>(1) fix unmap_vmas() check correctly this time
>>>(2) add touch_preempt_timing() to cond_resched_lock()
>>>(3) depend on preempt until it's worked out wtf goes wrong without it
>>>
>>>
>
>On Tue, Jul 13, 2004 at 10:36:00AM -0400, Joe Korty wrote:
>
>
>>You preemption-block hold times will improve *enormously* if you move all
>>softirq processing down to the daemon (and possibly raise the daemon to
>>one of the higher SCHED_RR priorities, to compensate for softirq processing
>>no longer happening at interrupt level).
>>
>>
>
>Plausible. Got a patch?
>
>
How about this? It moves softirqs to a thread but keeps the old spill
thread.
This is a patch against 2.6.6 written primarily by Scott Wood.
Signed-off-by: La Monte H.P. Yarroll <piggy@timesys.com> under TS0058
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell's sig
[-- Attachment #2: softirq.patch --]
[-- Type: text/x-patch, Size: 18604 bytes --]
--- linux-orig/include/asm-alpha/hardirq.h
+++ linux/include/asm-alpha/hardirq.h
@@ -86,14 +86,18 @@
#define in_atomic() (preempt_count() != 0)
#define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
# endif
-#define irq_exit() \
-do { \
- preempt_count() -= IRQ_EXIT_OFFSET; \
- if (!in_interrupt() && \
- softirq_pending(smp_processor_id())) \
- do_softirq(); \
- preempt_enable_no_resched(); \
+
+#ifndef CONFIG_SOFTIRQ_THREADS
+#define irq_exit() \
+do { \
+ preempt_count() -= IRQ_EXIT_OFFSET; \
+ if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+ do_softirq(); \
+ preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-arm/hardirq.h
+++ linux/include/asm-arm/hardirq.h
@@ -81,6 +81,7 @@
extern asmlinkage void __do_softirq(void);
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -88,6 +89,9 @@
__do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#define synchronize_irq(irq) barrier()
#else
--- linux-orig/include/asm-arm26/hardirq.h
+++ linux/include/asm-arm26/hardirq.h
@@ -76,6 +76,8 @@
#endif
#ifndef CONFIG_SMP
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= HARDIRQ_OFFSET; \
@@ -83,6 +85,9 @@
__asm__("bl%? __do_softirq": : : "lr");/* out of line */\
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#define synchronize_irq(irq) barrier()
#else
--- linux-orig/include/asm-cris/hardirq.h
+++ linux/include/asm-cris/hardirq.h
@@ -84,6 +84,9 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -91,6 +94,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-h8300/hardirq.h
+++ linux/include/asm-h8300/hardirq.h
@@ -82,6 +82,8 @@
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -89,6 +91,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-i386/hardirq.h
+++ linux/include/asm-i386/hardirq.h
@@ -84,6 +84,8 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -91,6 +93,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-m68k/hardirq.h
+++ linux/include/asm-m68k/hardirq.h
@@ -78,6 +78,8 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -85,6 +87,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-m68knommu/hardirq.h
+++ linux/include/asm-m68knommu/hardirq.h
@@ -86,6 +86,7 @@
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -93,6 +94,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-mips/hardirq.h
+++ linux/include/asm-mips/hardirq.h
@@ -87,13 +87,18 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
-#define irq_exit() \
-do { \
- preempt_count() -= IRQ_EXIT_OFFSET; \
- if (!in_interrupt() && softirq_pending(smp_processor_id())) \
- do_softirq(); \
- preempt_enable_no_resched(); \
+
+#ifndef CONFIG_SOFTIRQ_THREADS
+#define irq_exit() \
+do { \
+ preempt_count() -= IRQ_EXIT_OFFSET; \
+ if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+ do_softirq(); \
+ preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-parisc/hardirq.h
+++ linux/include/asm-parisc/hardirq.h
@@ -96,13 +96,17 @@
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
-#define irq_exit() \
-do { \
- preempt_count() -= IRQ_EXIT_OFFSET; \
- if (!in_interrupt() && softirq_pending(smp_processor_id())) \
- do_softirq(); \
- preempt_enable_no_resched(); \
+#ifndef CONFIG_SOFTIRQ_THREADS
+#define irq_exit() \
+do { \
+ preempt_count() -= IRQ_EXIT_OFFSET; \
+ if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+ do_softirq(); \
+ preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifdef CONFIG_SMP
extern void synchronize_irq (unsigned int irq);
--- linux-orig/include/asm-ppc/hardirq.h
+++ linux/include/asm-ppc/hardirq.h
@@ -88,13 +88,18 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
-do { \
+do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
if (!in_interrupt() && softirq_pending(smp_processor_id())) \
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-ppc64/hardirq.h
+++ linux/include/asm-ppc64/hardirq.h
@@ -87,6 +87,8 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -94,6 +96,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-sh/hardirq.h
+++ linux/include/asm-sh/hardirq.h
@@ -81,6 +81,8 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -88,6 +90,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-sparc/hardirq.h
+++ linux/include/asm-sparc/hardirq.h
@@ -87,13 +87,18 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
-#define irq_exit() \
-do { \
- preempt_count() -= IRQ_EXIT_OFFSET; \
- if (!in_interrupt() && softirq_pending(smp_processor_id())) \
- do_softirq(); \
- preempt_enable_no_resched(); \
+
+#ifndef CONFIG_SOFTIRQ_THREADS
+#define irq_exit() \
+do { \
+ preempt_count() -= IRQ_EXIT_OFFSET; \
+ if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+ do_softirq(); \
+ preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-sparc64/hardirq.h
+++ linux/include/asm-sparc64/hardirq.h
@@ -86,6 +86,8 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -93,6 +95,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-v850/hardirq.h
+++ linux/include/asm-v850/hardirq.h
@@ -80,13 +80,17 @@
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
-#define irq_exit() \
-do { \
- preempt_count() -= IRQ_EXIT_OFFSET; \
- if (!in_interrupt() && softirq_pending(smp_processor_id())) \
- do_softirq(); \
- preempt_enable_no_resched(); \
+#ifndef CONFIG_SOFTIRQ_THREADS
+#define irq_exit() \
+do { \
+ preempt_count() -= IRQ_EXIT_OFFSET; \
+ if (!in_interrupt() && softirq_pending(smp_processor_id())) \
+ do_softirq(); \
+ preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/asm-x86_64/hardirq.h
+++ linux/include/asm-x86_64/hardirq.h
@@ -85,6 +85,8 @@
# define in_atomic() (preempt_count() != 0)
# define IRQ_EXIT_OFFSET HARDIRQ_OFFSET
#endif
+
+#ifndef CONFIG_SOFTIRQ_THREADS
#define irq_exit() \
do { \
preempt_count() -= IRQ_EXIT_OFFSET; \
@@ -92,6 +94,9 @@
do_softirq(); \
preempt_enable_no_resched(); \
} while (0)
+#else
+#define irq_exit() (preempt_count() -= HARDIRQ_OFFSET)
+#endif
#ifndef CONFIG_SMP
# define synchronize_irq(irq) barrier()
--- linux-orig/include/linux/interrupt.h
+++ linux/include/linux/interrupt.h
@@ -59,6 +59,8 @@
#endif
/* SoftIRQ primitives. */
+#ifndef CONFIG_SOFTIRQ_THREADS
+
#define local_bh_disable() \
do { preempt_count() += SOFTIRQ_OFFSET; barrier(); } while (0)
#define __local_bh_enable() \
@@ -66,6 +68,27 @@
extern void local_bh_enable(void);
+#else
+
+/* As far as I can tell, local_bh_disable() didn't stop ksoftirqd
+ from running before. Since all softirqs now run from one of
+ the ksoftirqds, this shouldn't be necessary. */
+
+static inline void local_bh_disable(void)
+{
+}
+
+static inline void __local_bh_enable(void)
+{
+}
+
+static inline void local_bh_enable(void)
+{
+}
+
+#endif
+
+
/* PLEASE, avoid to allocate new softirqs, if you need not _really_ high
frequency threaded job scheduling. For almost all the purposes
tasklets are more than enough. F.e. all serial device BHs et
--- linux-orig/include/linux/sched.h
+++ linux/include/linux/sched.h
@@ -541,6 +541,11 @@
#define PF_LESS_THROTTLE 0x00100000 /* Throttle me less: I clean memory */
#define PF_SYNCWRITE 0x00200000 /* I am doing a sync write */
+/* Thread is an IRQ handler. This is used to determine which softirq
+ thread to wake. */
+
+#define PF_IRQHANDLER 0x10000000
+
#ifdef CONFIG_SMP
extern int set_cpus_allowed(task_t *p, cpumask_t new_mask);
#else
@@ -916,6 +921,9 @@
extern void signal_wake_up(struct task_struct *t, int resume_stopped);
+asmlinkage long sys_sched_setscheduler(pid_t pid, int policy,
+ struct sched_param __user *param);
+
/*
* Wrappers for p->thread_info->cpu access. No-op on UP.
*/
--- linux-orig/init/Kconfig
+++ linux/init/Kconfig
@@ -265,6 +265,18 @@
If unsure, say N.
+config SOFTIRQ_THREADS
+ bool "Run all softirqs in threads"
+ depends on PREEMPT
+ help
+ This option creates a second softirq thread per CPU, which
+ runs at high real-time priority, to replace the softirqs
+ which were previously run immediately. This allows these
+ softirqs to be prioritized, so as to avoid preempting
+ very high priority real-time tasks. This also allows
+ certain spinlocks to be converted into sleeping mutexes,
+ for futher reduction of scheduling latency.
+
endmenu # General setup
--- linux-orig/kernel/softirq.c
+++ linux/kernel/softirq.c
@@ -15,6 +15,11 @@
#include <linux/percpu.h>
#include <linux/cpu.h>
#include <linux/kthread.h>
+#include <asm/uaccess.h>
+
+#ifdef CONFIG_SOFTIRQ_THREADS
+static const int softirq_prio = MAX_USER_RT_PRIO - 3;
+#endif
#include <asm/irq.h>
/*
@@ -44,6 +49,10 @@
static DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
+#ifdef CONFIG_SOFTIRQ_THREADS
+static DEFINE_PER_CPU(struct task_struct *, ksoftirqd_high_prio);
+#endif
+
/*
* we cannot loop indefinitely here to avoid userspace starvation,
* but we also don't want to introduce a worst case 1/HZ latency
@@ -59,6 +68,19 @@
wake_up_process(tsk);
}
+#ifdef CONFIG_SOFTIRQ_THREADS
+
+static inline void wakeup_softirqd_high_prio(void)
+{
+ /* Interrupts are disabled: no need to stop preemption */
+ struct task_struct *tsk = __get_cpu_var(ksoftirqd_high_prio);
+
+ if (tsk && tsk->state != TASK_RUNNING)
+ wake_up_process(tsk);
+}
+
+#endif
+
/*
* We restart softirq processing MAX_SOFTIRQ_RESTART times,
* and we fall back to softirqd after that.
@@ -113,8 +135,13 @@
__u32 pending;
unsigned long flags;
+#ifdef CONFIG_SOFTIRQ_THREADS
+ if (in_interrupt())
+ BUG();
+#else
if (in_interrupt())
return;
+#endif
local_irq_save(flags);
@@ -130,17 +157,20 @@
#endif
+#ifndef CONFIG_SOFTIRQ_THREADS
+
void local_bh_enable(void)
{
__local_bh_enable();
WARN_ON(irqs_disabled());
- if (unlikely(!in_interrupt() &&
- local_softirq_pending()))
+ if (unlikely(!in_interrupt() && local_softirq_pending()))
invoke_softirq();
preempt_check_resched();
}
EXPORT_SYMBOL(local_bh_enable);
+#endif
+
/*
* This function must run with irqs disabled!
*/
@@ -157,8 +187,19 @@
* Otherwise we wake up ksoftirqd to make sure we
* schedule the softirq soon.
*/
+#ifdef CONFIG_SOFTIRQ_THREADS
+
+ if (in_interrupt() || (current->flags & PF_IRQHANDLER))
+ wakeup_softirqd_high_prio();
+ else
+ wakeup_softirqd();
+
+#else
+
if (!in_interrupt())
wakeup_softirqd();
+
+#endif
}
EXPORT_SYMBOL(raise_softirq_irqoff);
@@ -320,6 +361,47 @@
open_softirq(HI_SOFTIRQ, tasklet_hi_action, NULL);
}
+#ifdef CONFIG_SOFTIRQ_THREADS
+
+static int ksoftirqd_high_prio(void *__bind_cpu)
+{
+ int cpu = (int)(long)__bind_cpu;
+ struct sched_param param = { .sched_priority = softirq_prio };
+
+ /* Yuck. Thanks for separating the implementation from the
+ user API. */
+
+ set_fs(KERNEL_DS);
+ sys_sched_setscheduler(0, SCHED_FIFO, ¶m);
+
+ current->flags |= PF_NOFREEZE;
+
+ /* Migrate to the right CPU */
+ set_cpus_allowed(current, cpumask_of_cpu(cpu));
+ BUG_ON(smp_processor_id() != cpu);
+
+ __set_current_state(TASK_INTERRUPTIBLE);
+ mb();
+
+ __get_cpu_var(ksoftirqd_high_prio) = current;
+
+ for (;;) {
+ if (!local_softirq_pending())
+ schedule();
+
+ __set_current_state(TASK_RUNNING);
+
+ while (local_softirq_pending()) {
+ do_softirq();
+ cond_resched();
+ }
+
+ __set_current_state(TASK_INTERRUPTIBLE);
+ }
+}
+
+#endif
+
static int ksoftirqd(void * __bind_cpu)
{
set_user_nice(current, 19);
@@ -425,15 +507,28 @@
case CPU_UP_PREPARE:
BUG_ON(per_cpu(tasklet_vec, hotcpu).list);
BUG_ON(per_cpu(tasklet_hi_vec, hotcpu).list);
- p = kthread_create(ksoftirqd, hcpu, "ksoftirqd/%d", hotcpu);
+ p = kthread_create(ksoftirqd, hcpu, "ksoftirqd/l%d", hotcpu);
if (IS_ERR(p)) {
- printk("ksoftirqd for %i failed\n", hotcpu);
+ printk("ksoftirqd/l%i failed\n", hotcpu);
return NOTIFY_BAD;
}
kthread_bind(p, hotcpu);
per_cpu(ksoftirqd, hotcpu) = p;
+#ifdef CONFIG_SOFTIRQ_THREADS
+ p = kthread_create(ksoftirqd_high_prio, hcpu, "ksoftirqd/h%d", hotcpu);
+ if (IS_ERR(p)) {
+ printk("ksoftirqd/h%i failed\n", hotcpu);
+ return NOTIFY_BAD;
+ }
+ per_cpu(ksoftirqd_high_prio, hotcpu) = p;
+ kthread_bind(p, hotcpu);
+ per_cpu(ksoftirqd_high_prio, hotcpu) = p;
+#endif
break;
case CPU_ONLINE:
+#ifdef CONFIG_SOFTIRQ_THREADS
+ wake_up_process(per_cpu(ksoftirqd_high_prio, hotcpu));
+#endif
wake_up_process(per_cpu(ksoftirqd, hotcpu));
break;
#ifdef CONFIG_HOTPLUG_CPU
--- linux-orig/kernel/timer.c
+++ linux/kernel/timer.c
@@ -910,12 +910,16 @@
void do_timer(struct pt_regs *regs)
{
jiffies_64++;
+ update_times();
+
#ifndef CONFIG_SMP
/* SMP process accounting uses the local APIC timer */
+ // Do this after update_times(), so that the softirq thread
+ // is not counted as running all the time.
+
update_process_times(user_mode(regs));
#endif
- update_times();
}
#if !defined(__alpha__) && !defined(__ia64__)
--- linux-orig/mm/slab.c
+++ linux/mm/slab.c
@@ -2593,7 +2593,7 @@
{
struct list_head *walk;
-#if DEBUG
+#if DEBUG && !defined(CONFIG_SOFTIRQ_THREADS)
BUG_ON(!in_interrupt());
BUG_ON(in_irq());
#endif
--- linux-orig/net/ipv4/ipconfig.c
+++ linux/net/ipv4/ipconfig.c
@@ -1085,8 +1085,13 @@
jiff = jiffies + (d->next ? CONF_INTER_TIMEOUT : timeout);
while (time_before(jiffies, jiff) && !ic_got_reply) {
- barrier();
- cpu_relax();
+ // Wait queues are apparently too hard
+ // for the ipconfig people, but we
+ // need to drop the BKL here to allow
+ // preemption.
+
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(1);
}
#ifdef IPCONFIG_DHCP
/* DHCP isn't done until we get a DHCPACK. */
next prev parent reply other threads:[~2004-07-13 15:06 UTC|newest]
Thread overview: 450+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-13 12:28 preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-13 12:51 ` preempt-timing-2.6.8-rc1 Nick Piggin
2004-07-13 12:53 ` preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-13 12:57 ` preempt-timing-2.6.8-rc1 Nick Piggin
2004-07-13 13:04 ` preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-13 13:10 ` preempt-timing-2.6.8-rc1 Nick Piggin
2004-07-13 13:19 ` preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-13 14:13 ` preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-13 14:24 ` preempt-timing-2.6.8-rc1 Lenar Lõhmus
2004-07-13 14:39 ` preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-13 15:00 ` preempt-timing-2.6.8-rc1 bert hubert
2004-07-13 15:32 ` preempt-timing-2.6.8-rc1 Lenar Lõhmus
2004-07-13 22:16 ` preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-14 7:59 ` preempt-timing-2.6.8-rc1 Lenar Lõhmus
2004-07-14 10:29 ` preempt-timing-2.6.8-rc1 Takashi Iwai
2004-07-14 10:33 ` preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-25 5:15 ` preempt-timing-2.6.8-rc1 Lee Revell
2004-07-25 22:49 ` preempt-timing-2.6.8-rc1 Lee Revell
2004-07-26 8:23 ` preempt-timing-2.6.8-rc1 Ingo Molnar
2004-07-26 8:29 ` preempt-timing-2.6.8-rc1 Lee Revell
2004-07-26 8:35 ` [patch] voluntary-preempt-2.6.8-rc2-J3 Ingo Molnar
2004-07-26 9:00 ` Lee Revell
2004-07-26 12:40 ` Ingo Molnar
2004-07-26 20:47 ` [patch] voluntary-preempt-2.6.8-rc2-J7 Ingo Molnar
2004-07-27 16:27 ` [patch] voluntary-preempt-2.6.8-rc2-L2, preemptable hardirqs Ingo Molnar
2004-07-27 22:30 ` Felipe Alfaro Solana
2004-07-28 4:55 ` Ingo Molnar
2004-07-27 22:47 ` Lee Revell
2004-07-28 5:05 ` Ingo Molnar
2004-07-28 11:44 ` Thomas Charbonnel
2004-07-28 14:26 ` Ingo Molnar
2004-07-28 15:08 ` Thomas Charbonnel
2004-07-28 20:03 ` Lee Revell
2004-07-28 21:50 ` Lee Revell
2004-07-28 22:32 ` Bill Huey
2004-07-29 1:08 ` Lee Revell
2004-07-29 1:56 ` Lee Revell
2004-07-29 18:04 ` Ingo Molnar
2004-07-29 19:43 ` Lee Revell
2004-07-27 22:57 ` Lee Revell
2004-07-28 4:59 ` Ingo Molnar
2004-07-28 6:18 ` Lee Revell
2004-07-27 23:32 ` Lee Revell
2004-07-27 23:41 ` Dmitry Torokhov
2004-07-28 4:51 ` Ingo Molnar
2004-07-28 1:57 ` Lee Revell
2004-07-29 22:26 ` [patch] voluntary-preempt-2.6.8-rc2-M5 Ingo Molnar
2004-07-29 22:53 ` Lee Revell
2004-07-30 6:44 ` Ingo Molnar
2004-07-30 17:43 ` Lee Revell
2004-07-30 22:54 ` Lee Revell
2004-07-31 0:35 ` Lee Revell
2004-08-01 11:28 ` Ingo Molnar
2004-08-01 18:08 ` Lee Revell
2004-08-01 23:37 ` Lee Revell
2004-08-02 0:46 ` Lee Revell
2004-08-02 7:39 ` Ingo Molnar
2004-08-02 7:58 ` Lee Revell
2004-08-02 8:27 ` Lee Revell
2004-08-02 9:28 ` Ingo Molnar
2004-08-02 10:08 ` [patch] preempt-timing-on-2.6.8-rc2-O2 Ingo Molnar
2004-08-02 10:18 ` William Lee Irwin III
2004-08-02 10:35 ` Ingo Molnar
2004-08-02 10:51 ` Ingo Molnar
2004-08-02 10:56 ` William Lee Irwin III
2004-08-08 2:31 ` Lee Revell
2004-08-08 2:33 ` William Lee Irwin III
2004-08-08 2:36 ` Lee Revell
2004-08-08 2:39 ` William Lee Irwin III
2004-08-08 2:47 ` Lee Revell
2004-08-08 2:48 ` William Lee Irwin III
2004-08-08 4:21 ` Lee Revell
2004-08-02 10:53 ` William Lee Irwin III
2004-08-02 15:19 ` [patch] voluntary-preempt-2.6.8-rc2-M5 Takashi Iwai
2004-08-07 2:54 ` Lee Revell
2004-08-16 10:38 ` Takashi Iwai
2004-08-16 10:43 ` Lee Revell
2004-08-16 10:48 ` Ingo Molnar
2004-08-16 10:52 ` Lee Revell
2004-08-16 11:08 ` Lee Revell
2004-08-16 15:33 ` [Jackit-devel] " Jack O'Quin
2004-08-17 1:00 ` Lee Revell
2004-07-30 8:13 ` [patch] voluntary-preempt-2.6.8-rc2-mm1-M5 Ingo Molnar
2004-07-30 22:00 ` Muli Ben-Yehuda
2004-07-30 22:47 ` Alan Cox
2004-08-01 16:16 ` [patch] voluntary-preempt-2.6.8-rc2-M5 Thomas Charbonnel
2004-08-01 19:30 ` [patch] voluntary-preempt-2.6.8-rc2-O2 Ingo Molnar
2004-08-01 22:40 ` Felipe Alfaro Solana
2004-08-01 23:20 ` Daniel Schmitt
2004-08-02 6:21 ` Felipe Alfaro Solana
2004-08-01 23:44 ` Matt Heler
2004-08-02 6:26 ` Felipe Alfaro Solana
2004-08-02 7:47 ` Ingo Molnar
2004-08-02 1:45 ` Lee Revell
2004-08-02 2:14 ` Lee Revell
2004-08-02 7:56 ` Ingo Molnar
2004-08-02 7:01 ` [patch] voluntary-preempt-2.6.8-rc2-O2 didn't link Helge Hafting
2004-08-02 7:52 ` Ingo Molnar
2004-08-02 13:42 ` [patch] voluntary-preempt-2.6.8-rc2-O2 Lenar Lõhmus
2004-08-09 10:46 ` [patch] voluntary-preempt-2.6.8-rc3-O4 Ingo Molnar
2004-08-09 13:05 ` Ingo Molnar
2004-08-09 17:02 ` Florian Schmidt
2004-08-09 17:06 ` Lee Revell
2004-08-10 7:51 ` Ingo Molnar
2004-08-10 17:58 ` Lee Revell
2004-08-10 2:06 ` Lee Revell
2004-08-10 5:52 ` Lee Revell
2004-08-10 7:53 ` Ingo Molnar
2004-08-10 14:16 ` Lee Revell
2004-08-10 15:04 ` Florian Schmidt
2004-08-10 15:08 ` Lee Revell
2004-08-10 8:09 ` Ingo Molnar
2004-08-10 8:17 ` Lee Revell
2004-08-10 10:12 ` Ingo Molnar
2004-08-10 10:20 ` [patch] preempt-timing-on-2.6.8-rc3-O4.patch William Lee Irwin III
2004-08-10 10:32 ` William Lee Irwin III
2004-08-10 8:49 ` [patch] voluntary-preempt-2.6.8-rc3-O4 Ingo Molnar
2004-08-10 8:58 ` Ingo Molnar
2004-08-10 9:22 ` Ingo Molnar
2004-08-10 11:33 ` Alan Cox
2004-08-10 12:40 ` Ingo Molnar
2004-08-10 16:03 ` Lee Revell
2004-08-16 13:31 ` Takashi Iwai
2004-08-10 17:10 ` Lee Revell
2004-08-10 16:25 ` Alan Cox
2004-08-10 17:37 ` Dave Jones
2004-08-10 21:03 ` Lee Revell
2004-08-11 2:49 ` Tim Wright
2004-08-10 17:12 ` Ingo Molnar
2004-08-10 17:13 ` Lee Revell
2004-08-10 19:16 ` Lee Revell
2004-08-10 22:46 ` Lee Revell
2004-08-10 17:33 ` Dave Jones
2004-08-10 17:41 ` Lee Revell
2004-08-10 11:20 ` Florian Schmidt
2004-08-10 13:26 ` [patch] voluntary-preempt-2.6.8-rc3-O5 Ingo Molnar
2004-08-10 18:25 ` Peter Zijlstra
2004-08-10 21:56 ` Lee Revell
2004-08-10 23:18 ` Florian Schmidt
2004-08-11 7:31 ` Ingo Molnar
2004-08-11 7:42 ` Ingo Molnar
2004-08-11 7:52 ` Lee Revell
2004-08-11 8:25 ` Ingo Molnar
2004-08-11 8:27 ` Ingo Molnar
2004-08-11 11:48 ` Linh Dang
2004-08-12 0:04 ` Lee Revell
2004-08-12 2:55 ` Linh Dang
2004-08-11 9:06 ` Ingo Molnar
2004-08-11 12:16 ` Florian Schmidt
2004-08-11 12:43 ` Ingo Molnar
2004-08-11 13:44 ` Florian Schmidt
2004-08-11 19:18 ` Florian Schmidt
2004-08-11 23:55 ` Lee Revell
2004-08-12 7:21 ` Ingo Molnar
2004-08-12 21:54 ` Lee Revell
2004-08-13 0:04 ` Lee Revell
2004-08-13 0:27 ` Lee Revell
2004-08-13 0:55 ` Florian Schmidt
2004-08-13 0:55 ` Lee Revell
2004-08-13 1:18 ` Florian Schmidt
2004-08-13 1:12 ` Lee Revell
2004-08-13 1:17 ` [Jackit-devel] " Lee Revell
2004-08-13 10:07 ` Ingo Molnar
2004-08-12 22:16 ` Lee Revell
2004-08-10 21:59 ` Lee Revell
2004-08-12 23:51 ` [patch] Latency Tracer, voluntary-preempt-2.6.8-rc4-O6 Ingo Molnar
2004-08-13 1:25 ` Lee Revell
2004-08-13 1:31 ` Lee Revell
2004-08-13 2:39 ` Lee Revell
2004-08-13 3:54 ` Lee Revell
2004-08-13 4:23 ` Lee Revell
2004-08-13 4:35 ` Roland Dreier
2004-08-13 4:41 ` Lee Revell
2004-08-13 4:46 ` Roland Dreier
2004-08-13 10:21 ` Ingo Molnar
2004-08-13 10:16 ` Ingo Molnar
2004-08-13 4:49 ` Matt Heler
2004-08-13 9:53 ` Peter Zijlstra
2004-08-13 10:19 ` Ingo Molnar
2004-08-13 10:23 ` Peter Zijlstra
2004-08-13 4:58 ` Lee Revell
2004-08-13 10:22 ` Ingo Molnar
2004-08-13 18:57 ` Lee Revell
2004-08-13 5:27 ` Lee Revell
2004-08-13 5:41 ` Lee Revell
2004-08-13 10:31 ` Ingo Molnar
2004-08-13 19:47 ` Lee Revell
2004-08-16 23:46 ` Lee Revell
2004-08-17 7:48 ` Ingo Molnar
2004-08-17 7:56 ` Lee Revell
2004-08-17 19:18 ` Theodore Ts'o
2004-08-19 10:54 ` Lee Revell
2004-08-19 11:19 ` Lee Revell
2004-08-19 19:30 ` Theodore Ts'o
2004-08-19 22:32 ` Lee Revell
2004-08-19 22:50 ` Lee Revell
2004-08-20 0:10 ` Lee Revell
2004-08-13 7:40 ` Lee Revell
2004-08-13 10:48 ` [patch] voluntary-preempt-2.6.8-rc4-O7 Ingo Molnar
2004-08-13 11:41 ` Florian Schmidt
2004-08-13 11:35 ` Ingo Molnar
2004-08-13 20:18 ` Lee Revell
2004-08-13 21:35 ` Lee Revell
2004-08-14 7:20 ` [patch] voluntary-preempt-2.6.8-rc4-O8 Ingo Molnar
2004-08-14 7:51 ` Sam Ravnborg
2004-08-14 9:35 ` Lee Revell
2004-08-14 11:45 ` Ingo Molnar
2004-08-14 11:42 ` Ingo Molnar
2004-08-14 9:24 ` Lee Revell
2004-08-15 11:56 ` [patch] voluntary-preempt-2.6.8.1-P0 Ingo Molnar
2004-08-15 14:01 ` Peter Zijlstra
2004-08-15 17:33 ` Lee Revell
2004-08-15 18:29 ` Peter Zijlstra
2004-08-15 19:17 ` Ingo Molnar
2004-08-15 23:24 ` Lee Revell
2004-08-16 8:07 ` Roger Luethi
2004-08-16 22:53 ` Lee Revell
2004-08-17 20:52 ` Roger Luethi
2004-08-17 21:00 ` Lee Revell
2004-08-19 7:57 ` Ingo Molnar
2004-08-18 0:01 ` Lee Revell
2004-08-18 20:34 ` Roger Luethi
2004-08-15 23:51 ` Lee Revell
2004-08-16 0:25 ` Florian Schmidt
2004-08-16 0:20 ` Lee Revell
2004-08-16 0:33 ` Florian Schmidt
2004-08-16 2:08 ` Lee Revell
2004-08-16 2:36 ` Ingo Molnar
2004-08-16 2:43 ` Lee Revell
2004-08-16 2:48 ` Lee Revell
2004-08-16 2:50 ` Ingo Molnar
2004-08-16 2:58 ` Ingo Molnar
2004-08-16 3:03 ` Lee Revell
2004-08-16 3:06 ` Ingo Molnar
2004-08-16 3:11 ` Lee Revell
2004-08-16 3:14 ` Ingo Molnar
2004-08-16 3:15 ` Lee Revell
2004-08-16 3:20 ` Ingo Molnar
2004-08-16 3:26 ` Lee Revell
2004-08-16 3:18 ` Lee Revell
2004-08-16 3:26 ` Ingo Molnar
2004-08-16 3:00 ` Ingo Molnar
2004-08-16 3:33 ` Lee Revell
2004-08-16 3:28 ` Ingo Molnar
2004-08-16 3:36 ` Ingo Molnar
2004-08-16 3:41 ` Lee Revell
2004-08-16 3:46 ` Ingo Molnar
2004-08-16 3:54 ` Lee Revell
2004-08-16 4:01 ` Ingo Molnar
2004-08-16 4:11 ` Lee Revell
2004-08-16 4:05 ` [patch] voluntary-preempt-2.6.8.1-P1 Ingo Molnar
2004-08-16 4:22 ` Lee Revell
2004-08-16 4:33 ` Ingo Molnar
2004-08-16 4:57 ` Lee Revell
2004-08-16 5:02 ` Ingo Molnar
2004-08-16 5:48 ` Lee Revell
2004-08-16 5:06 ` Lee Revell
2004-08-16 5:42 ` Lee Revell
2004-08-16 10:45 ` Ingo Molnar
2004-08-16 11:44 ` Hugh Dickins
2004-08-16 6:48 ` Lee Revell
2004-08-16 11:13 ` Thomas Charbonnel
2004-08-16 11:31 ` Ingo Molnar
2004-08-16 12:09 ` [patch] voluntary-preempt-2.6.8.1-P2 Ingo Molnar
2004-08-16 13:26 ` Thomas Charbonnel
2004-08-16 14:12 ` Thomas Charbonnel
2004-08-16 14:50 ` Thomas Charbonnel
2004-08-16 14:58 ` Ingo Molnar
2004-08-16 15:10 ` Thomas Charbonnel
2004-08-16 15:37 ` Ingo Molnar
2004-08-16 16:14 ` Thomas Charbonnel
2004-08-17 0:04 ` Lee Revell
2004-08-17 4:24 ` Lee Revell
2004-08-17 7:30 ` Ingo Molnar
2004-08-17 7:33 ` Lee Revell
2004-08-17 8:06 ` Lee Revell
2004-08-17 8:05 ` [patch] voluntary-preempt-2.6.8.1-P3 Ingo Molnar
2004-08-18 12:12 ` Florian Schmidt
2004-08-18 12:27 ` Ingo Molnar
2004-08-18 13:01 ` Florian Schmidt
2004-08-18 21:29 ` Elladan
2004-08-19 9:54 ` Florian Schmidt
2004-08-19 9:57 ` Lee Revell
2004-08-19 7:32 ` [patch] voluntary-preempt-2.6.8.1-P4 Ingo Molnar
2004-08-19 8:00 ` Lee Revell
2004-08-19 8:40 ` Ingo Molnar
2004-08-19 8:45 ` Lee Revell
2004-08-19 8:48 ` Ingo Molnar
2004-08-19 8:56 ` Ingo Molnar
2004-08-19 10:29 ` Lee Revell
2004-08-19 10:38 ` Lee Revell
2004-08-19 10:43 ` Lee Revell
2004-08-19 10:51 ` Lee Revell
2004-08-19 9:26 ` William Lee Irwin III
2004-08-19 11:28 ` Florian Schmidt
2004-08-19 11:23 ` Lee Revell
2004-08-19 14:32 ` Ingo Molnar
2004-08-19 16:47 ` Matthew Frost
2004-08-19 18:08 ` karl.vogel
2004-08-19 20:37 ` karl.vogel
2004-08-20 7:16 ` Lee Revell
2004-08-20 16:19 ` [patch] intel8x0 latency fix karl.vogel
2004-08-24 17:27 ` Takashi Iwai
2004-08-20 3:35 ` [patch] voluntary-preempt-2.6.8.1-P4 Lee Revell
2004-08-20 8:13 ` Ingo Molnar
2004-08-20 9:14 ` Lee Revell
2004-08-20 10:27 ` Ingo Molnar
2004-08-20 10:33 ` Lee Revell
2004-08-20 10:41 ` Ingo Molnar
2004-08-20 10:55 ` Lee Revell
2004-08-20 11:14 ` Lee Revell
2004-08-20 11:52 ` Lee Revell
2004-08-20 13:30 ` [patch] voluntary-preempt-2.6.8.1-P5 Ingo Molnar
2004-08-20 14:37 ` K.R. Foley
2004-08-20 17:04 ` Ingo Molnar
2004-08-20 18:37 ` K.R. Foley
2004-08-20 18:56 ` Ingo Molnar
2004-08-20 20:06 ` Lee Revell
2004-08-21 0:51 ` Linh Dang
2004-08-20 19:55 ` [patch] voluntary-preempt-2.6.8.1-P6 Ingo Molnar
2004-08-21 0:43 ` Lee Revell
2004-08-21 0:51 ` Lee Revell
2004-08-21 3:43 ` Lee Revell
2004-08-21 9:10 ` Ingo Molnar
2004-08-21 9:46 ` Ingo Molnar
2004-08-21 9:26 ` Ingo Molnar
2004-08-21 14:02 ` Karl Vogel
2004-08-21 14:05 ` [patch] voluntary-preempt-2.6.8.1-P7 Ingo Molnar
2004-08-21 21:56 ` Lee Revell
2004-08-22 0:06 ` K.R. Foley
2004-08-22 0:16 ` Lee Revell
2004-08-22 2:22 ` K.R. Foley
2004-08-22 6:35 ` Ingo Molnar
2004-08-22 12:57 ` K.R. Foley
2004-08-22 7:49 ` Lee Revell
2004-08-23 17:38 ` Lee Revell
2004-08-23 19:43 ` Ingo Molnar
2004-08-23 23:49 ` Lee Revell
2004-08-23 22:09 ` Lee Revell
2004-08-22 14:57 ` R. J. Wysocki
2004-08-22 16:18 ` K.R. Foley
2004-08-23 21:01 ` [patch] voluntary-preempt-2.6.8.1-P8 Ingo Molnar
2004-08-23 22:41 ` Lee Revell
2004-08-23 22:52 ` Ingo Molnar
2004-08-23 23:04 ` Lee Revell
2004-08-28 17:40 ` Lee Revell
2004-08-23 23:31 ` Lee Revell
2004-08-24 1:49 ` Lee Revell
2004-08-24 3:56 ` K.R. Foley
2004-08-24 5:02 ` Lee Revell
2004-08-24 6:09 ` Ingo Molnar
2004-08-24 11:17 ` K.R. Foley
2004-08-24 5:41 ` Ingo Molnar
2004-08-24 5:46 ` Lee Revell
2004-08-24 6:03 ` Ingo Molnar
2004-08-24 13:48 ` K.R. Foley
2004-08-24 17:17 ` Lee Revell
2004-08-24 17:50 ` K.R. Foley
2004-08-23 21:03 ` [patch] voluntary-preempt-2.6.8.1-P7 K.R. Foley
2004-08-21 17:09 ` [patch] voluntary-preempt-2.6.8.1-P6 -- False positive?! Karl Vogel
2004-08-21 20:47 ` Karl Vogel
2004-08-21 2:51 ` [patch] voluntary-preempt-2.6.8.1-P5 Lee Revell
2004-08-21 3:23 ` Lee Revell
2004-08-21 9:13 ` Ingo Molnar
2004-08-21 9:15 ` Lee Revell
2004-08-21 9:18 ` Ingo Molnar
2004-08-21 9:18 ` Lee Revell
2004-08-21 9:23 ` Lee Revell
2004-08-21 9:31 ` Ingo Molnar
2004-08-21 9:37 ` Lee Revell
2004-08-21 10:46 ` Ingo Molnar
2004-08-21 12:41 ` Karl Vogel
2004-08-17 11:26 ` [patch] voluntary-preempt-2.6.8.1-P2 Thomas Charbonnel
2004-08-19 7:49 ` Ingo Molnar
2004-08-18 12:22 ` Thomas Charbonnel
2004-08-18 13:30 ` Takashi Iwai
2004-08-18 15:26 ` Thomas Charbonnel
2004-08-18 15:46 ` Takashi Iwai
2004-08-18 16:53 ` Thomas Charbonnel
2004-08-19 7:47 ` Ingo Molnar
2004-08-16 19:20 ` [patch] voluntary-preempt-2.6.8.1-P1 Hans Reiser
2004-08-16 20:38 ` Lee Revell
2004-08-17 8:14 ` Hans Reiser
2004-08-16 11:13 ` Florian Schmidt
2004-08-16 11:17 ` Lee Revell
2004-08-16 13:07 ` Florian Schmidt
2004-08-17 0:14 ` Florian Schmidt
2004-08-17 0:07 ` Lee Revell
2004-08-17 7:39 ` Ingo Molnar
2004-08-17 8:18 ` Ingo Molnar
2004-08-18 0:34 ` Lee Revell
2004-08-18 12:22 ` Thomas Charbonnel
2004-08-16 3:36 ` [patch] voluntary-preempt-2.6.8.1-P0 Lee Revell
2004-08-16 2:43 ` Ingo Molnar
2004-08-16 2:45 ` Lee Revell
2004-08-16 3:08 ` Ingo Molnar
2004-08-16 4:19 ` Lee Revell
2004-08-16 4:26 ` Ingo Molnar
2004-08-16 4:30 ` Lee Revell
2004-08-16 4:51 ` Ingo Molnar
2004-08-16 5:15 ` Lee Revell
2004-08-16 4:38 ` Lee Revell
2004-08-16 5:01 ` Lee Revell
2004-08-16 5:04 ` Ingo Molnar
2004-08-13 22:35 ` [patch] voluntary-preempt-2.6.8-rc4-O7 Lee Revell
2004-08-14 1:17 ` Lee Revell
2004-08-14 12:42 ` Ingo Molnar
2004-08-14 4:46 ` Lee Revell
2004-08-14 6:39 ` Ingo Molnar
2004-08-13 10:42 ` [patch] Latency Tracer, voluntary-preempt-2.6.8-rc4-O6 Florian Schmidt
2004-08-13 10:54 ` Ingo Molnar
2004-08-13 12:03 ` Florian Schmidt
2004-08-13 12:03 ` Ingo Molnar
[not found] ` <20040813145510.60e9e0f3@mango.fruits.de>
2004-08-14 8:57 ` Ingo Molnar
2004-08-14 11:28 ` James Courtier-Dutton
2004-08-14 11:51 ` Ingo Molnar
2004-08-14 12:19 ` James Courtier-Dutton
2004-08-14 12:32 ` Ingo Molnar
2004-08-14 16:52 ` James Courtier-Dutton
2004-08-19 9:10 ` Ingo Molnar
2004-08-19 9:07 ` Ingo Molnar
2004-08-10 14:21 ` [patch] voluntary-preempt-2.6.8-rc3-O4 Florian Schmidt
2004-07-26 10:01 ` [patch] voluntary-preempt-2.6.8-rc2-J4 Ingo Molnar
2004-07-26 10:15 ` Ingo Molnar
2004-07-26 20:42 ` no luck with max_sectors_kb (Re: voluntary-preempt-2.6.8-rc2-J4) Rudo Thomas
2004-07-26 20:57 ` Ingo Molnar
2004-07-26 20:59 ` Ingo Molnar
2004-07-26 22:50 ` Rudo Thomas
2004-07-27 6:43 ` Ingo Molnar
2004-07-27 8:06 ` Ingo Molnar
2004-07-27 11:21 ` Rudo Thomas
2004-07-27 5:33 ` [patch] voluntary-preempt-2.6.8-rc2-J4 Jens Axboe
2004-07-27 8:01 ` Ingo Molnar
2004-07-27 6:23 ` Jens Axboe
2004-07-27 10:18 ` Ingo Molnar
2004-07-27 8:17 ` Ingo Molnar
2004-07-26 19:57 ` [patch] voluntary-preempt-2.6.8-rc2-J3 Andrew Morton
2004-07-26 20:36 ` Ingo Molnar
2004-07-26 21:11 ` Andrew Morton
[not found] ` <fa.h4elqom.kjeer4@ifi.uio.no>
2004-07-27 8:28 ` Junio C Hamano
2004-07-26 21:59 ` Lee Revell
2004-07-30 2:31 ` Eric St-Laurent
2004-07-30 3:51 ` Lee Revell
2004-07-13 14:36 ` preempt-timing-2.6.8-rc1 Joe Korty
2004-07-13 14:40 ` preempt-timing-2.6.8-rc1 William Lee Irwin III
2004-07-13 14:52 ` preempt-timing-2.6.8-rc1 Nick Piggin
2004-07-13 15:05 ` La Monte H.P. Yarroll [this message]
2004-07-13 15:08 ` preempt-timing-2.6.8-rc1 Joe Korty
2004-07-13 17:48 ` [PATCH] fix arbitrarily long preemption lockout times [was: re: preempt-timing-2.6.8-rc1] Joe Korty
2004-07-14 14:22 ` preempt-timing-2.6.8-rc1 Lenar Lõhmus
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40F3FA53.2010907@timesys.com \
--to=piggy@timesys.com \
--cc=greg.weeks@timesys.com \
--cc=joe.korty@ccur.com \
--cc=linux-kernel@vger.kernel.org \
--cc=scott@timesys.com \
--cc=wli@holomorphy.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.