[ANNOUNCE] 3.2.23-rt37
Dear RT Folks, I'm pleased to announce the 3.2.23-rt37 stable release. You can get this release via the git tree at: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git Head SHA1: 32a32ba43387e6ad9dd74f38b79ad411c6c1c4e6 Or to build 3.2.23-rt37 directly, the following patches should be applied: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.2.23.xz http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.23-rt37.patch.xz You can also build from 3.2.23-rt36 by applying the incremental patch: http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.23-rt36-rt37.patch.xz Enjoy, -- Steve Changes from 3.2.23-rt36: --- Steven Rostedt (5): cpu/rt: Rework cpu down for PREEMPT_RT cpu/rt: Fix cpu_hotplug variable initialization workqueue: Revert workqueue: Fix PF_THREAD_BOUND abuse workqueue: Revert workqueue: Fix cpuhotplug trainwreck Linux 3.2.23-rt37 include/linux/cpu.h |6 +- include/linux/sched.h |7 + include/linux/workqueue.h |5 +- kernel/cpu.c | 240 +++ kernel/sched.c| 82 ++- kernel/workqueue.c| 578 - localversion-rt |2 +- 7 files changed, 704 insertions(+), 216 deletions(-) --- diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 72e90bb..c46ec3e 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h @@ -66,10 +66,8 @@ enum { /* migration should happen before other stuff but after perf */ CPU_PRI_PERF= 20, CPU_PRI_MIGRATION = 10, - - CPU_PRI_WORKQUEUE_ACTIVE= 5, /* prepare workqueues for others */ - CPU_PRI_NORMAL = 0, - CPU_PRI_WORKQUEUE_INACTIVE = -5, /* flush workqueues after others */ + /* prepare workqueues for other notifiers */ + CPU_PRI_WORKQUEUE = 5, }; #define CPU_ONLINE 0x0002 /* CPU (unsigned)v is up */ diff --git a/include/linux/sched.h b/include/linux/sched.h index 0174e3a..9ca3172 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1933,6 +1933,10 @@ extern void do_set_cpus_allowed(struct task_struct *p, extern int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask); +int migrate_me(void); +void tell_sched_cpu_down_begin(int cpu); +void tell_sched_cpu_down_done(int cpu); + #else static inline void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) @@ -1945,6 +1949,9 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p, return -EINVAL; return 0; } +static inline int migrate_me(void) { return 0; } +static inline void tell_sched_cpu_down_begin(int cpu) { } +static inline void tell_sched_cpu_down_done(int cpu) { } #endif #ifndef CONFIG_CPUMASK_OFFSTACK diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 3d8ac9d..e228ca9 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -254,10 +254,9 @@ enum { WQ_MEM_RECLAIM = 1 << 3, /* may be used for memory reclaim */ WQ_HIGHPRI = 1 << 4, /* high priority */ WQ_CPU_INTENSIVE= 1 << 5, /* cpu instensive workqueue */ - WQ_NON_AFFINE = 1 << 6, /* free to move works around cpus */ - WQ_DRAINING = 1 << 7, /* internal: workqueue is draining */ - WQ_RESCUER = 1 << 8, /* internal: workqueue has rescuer */ + WQ_DRAINING = 1 << 6, /* internal: workqueue is draining */ + WQ_RESCUER = 1 << 7, /* internal: workqueue has rescuer */ WQ_MAX_ACTIVE = 512,/* I like 512, better ideas? */ WQ_MAX_UNBOUND_PER_CPU = 4, /* 4 * #cpus for unbound wq */ diff --git a/kernel/cpu.c b/kernel/cpu.c index 66dfb74..8f87b72 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -46,12 +46,7 @@ static int cpu_hotplug_disabled; static struct { struct task_struct *active_writer; -#ifdef CONFIG_PREEMPT_RT_FULL - /* Makes the lock keep the task's state */ - spinlock_t lock; -#else struct mutex lock; /* Synchronizes accesses to refcount, */ -#endif /* * Also blocks the new readers during * an ongoing cpu hotplug operation. @@ -59,28 +54,46 @@ static struct { int refcount; } cpu_hotplug = { .active_writer = NULL, -#ifdef CONFIG_PREEMPT_RT_FULL - .lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock), -#else .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock), -#endif .refcount = 0, }; -#ifdef CONFIG_PREEMPT_RT_FULL -# define hotplug_lock() rt_spin_lock(_hotplug.lock) -# define hotplug_unlock() rt_spin_unlock(_hotplug.lock) -#else -# define
[ANNOUNCE] 3.2.23-rt37
Dear RT Folks, I'm pleased to announce the 3.2.23-rt37 stable release. You can get this release via the git tree at: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git Head SHA1: 32a32ba43387e6ad9dd74f38b79ad411c6c1c4e6 Or to build 3.2.23-rt37 directly, the following patches should be applied: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.2.23.xz http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.23-rt37.patch.xz You can also build from 3.2.23-rt36 by applying the incremental patch: http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.23-rt36-rt37.patch.xz Enjoy, -- Steve Changes from 3.2.23-rt36: --- Steven Rostedt (5): cpu/rt: Rework cpu down for PREEMPT_RT cpu/rt: Fix cpu_hotplug variable initialization workqueue: Revert workqueue: Fix PF_THREAD_BOUND abuse workqueue: Revert workqueue: Fix cpuhotplug trainwreck Linux 3.2.23-rt37 include/linux/cpu.h |6 +- include/linux/sched.h |7 + include/linux/workqueue.h |5 +- kernel/cpu.c | 240 +++ kernel/sched.c| 82 ++- kernel/workqueue.c| 578 - localversion-rt |2 +- 7 files changed, 704 insertions(+), 216 deletions(-) --- diff --git a/include/linux/cpu.h b/include/linux/cpu.h index 72e90bb..c46ec3e 100644 --- a/include/linux/cpu.h +++ b/include/linux/cpu.h @@ -66,10 +66,8 @@ enum { /* migration should happen before other stuff but after perf */ CPU_PRI_PERF= 20, CPU_PRI_MIGRATION = 10, - - CPU_PRI_WORKQUEUE_ACTIVE= 5, /* prepare workqueues for others */ - CPU_PRI_NORMAL = 0, - CPU_PRI_WORKQUEUE_INACTIVE = -5, /* flush workqueues after others */ + /* prepare workqueues for other notifiers */ + CPU_PRI_WORKQUEUE = 5, }; #define CPU_ONLINE 0x0002 /* CPU (unsigned)v is up */ diff --git a/include/linux/sched.h b/include/linux/sched.h index 0174e3a..9ca3172 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1933,6 +1933,10 @@ extern void do_set_cpus_allowed(struct task_struct *p, extern int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask); +int migrate_me(void); +void tell_sched_cpu_down_begin(int cpu); +void tell_sched_cpu_down_done(int cpu); + #else static inline void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) @@ -1945,6 +1949,9 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p, return -EINVAL; return 0; } +static inline int migrate_me(void) { return 0; } +static inline void tell_sched_cpu_down_begin(int cpu) { } +static inline void tell_sched_cpu_down_done(int cpu) { } #endif #ifndef CONFIG_CPUMASK_OFFSTACK diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h index 3d8ac9d..e228ca9 100644 --- a/include/linux/workqueue.h +++ b/include/linux/workqueue.h @@ -254,10 +254,9 @@ enum { WQ_MEM_RECLAIM = 1 3, /* may be used for memory reclaim */ WQ_HIGHPRI = 1 4, /* high priority */ WQ_CPU_INTENSIVE= 1 5, /* cpu instensive workqueue */ - WQ_NON_AFFINE = 1 6, /* free to move works around cpus */ - WQ_DRAINING = 1 7, /* internal: workqueue is draining */ - WQ_RESCUER = 1 8, /* internal: workqueue has rescuer */ + WQ_DRAINING = 1 6, /* internal: workqueue is draining */ + WQ_RESCUER = 1 7, /* internal: workqueue has rescuer */ WQ_MAX_ACTIVE = 512,/* I like 512, better ideas? */ WQ_MAX_UNBOUND_PER_CPU = 4, /* 4 * #cpus for unbound wq */ diff --git a/kernel/cpu.c b/kernel/cpu.c index 66dfb74..8f87b72 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -46,12 +46,7 @@ static int cpu_hotplug_disabled; static struct { struct task_struct *active_writer; -#ifdef CONFIG_PREEMPT_RT_FULL - /* Makes the lock keep the task's state */ - spinlock_t lock; -#else struct mutex lock; /* Synchronizes accesses to refcount, */ -#endif /* * Also blocks the new readers during * an ongoing cpu hotplug operation. @@ -59,28 +54,46 @@ static struct { int refcount; } cpu_hotplug = { .active_writer = NULL, -#ifdef CONFIG_PREEMPT_RT_FULL - .lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock), -#else .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock), -#endif .refcount = 0, }; -#ifdef CONFIG_PREEMPT_RT_FULL -# define hotplug_lock() rt_spin_lock(cpu_hotplug.lock) -# define hotplug_unlock() rt_spin_unlock(cpu_hotplug.lock) -#else -# define hotplug_lock()
[PATCH RT 0/5] [ANNOUNCE] 3.2.23-rt37-rc1 stable review
Dear RT Folks, This is the RT stable review cycle of patch 3.2.23-rt37-rc1. Please scream at me if I messed something up. Please test the patches too. The -rc release will be uploaded to kernel.org and will be deleted when the final release is out. This is just a review release (or release candidate). The pre-releases will not be pushed to the git repository, only the final release is. If all goes well, this patch will be converted to the next main release on 7/19/2012. Enjoy, -- Steve To build 3.2.23-rt37-rc1 directly, the following patches should be applied: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.2.23.xz http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.23-rt37-rc1.patch.xz You can also build from 3.2.23-rt36 by applying the incremental patch: http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.23-rt36-rt37-rc1.patch.xz Changes from 3.2.23-rt36: --- Steven Rostedt (5): cpu/rt: Rework cpu down for PREEMPT_RT cpu/rt: Fix cpu_hotplug variable initialization workqueue: Revert workqueue: Fix PF_THREAD_BOUND abuse workqueue: Revert workqueue: Fix cpuhotplug trainwreck Linux 3.2.23-rt37-rc1 include/linux/cpu.h |6 +- include/linux/sched.h |7 + include/linux/workqueue.h |5 +- kernel/cpu.c | 240 +++ kernel/sched.c| 82 ++- kernel/workqueue.c| 578 - localversion-rt |2 +- 7 files changed, 704 insertions(+), 216 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH RT 0/5] [ANNOUNCE] 3.2.23-rt37-rc1 stable review
Dear RT Folks, This is the RT stable review cycle of patch 3.2.23-rt37-rc1. Please scream at me if I messed something up. Please test the patches too. The -rc release will be uploaded to kernel.org and will be deleted when the final release is out. This is just a review release (or release candidate). The pre-releases will not be pushed to the git repository, only the final release is. If all goes well, this patch will be converted to the next main release on 7/19/2012. Enjoy, -- Steve To build 3.2.23-rt37-rc1 directly, the following patches should be applied: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.tar.xz http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.2.23.xz http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.23-rt37-rc1.patch.xz You can also build from 3.2.23-rt36 by applying the incremental patch: http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.23-rt36-rt37-rc1.patch.xz Changes from 3.2.23-rt36: --- Steven Rostedt (5): cpu/rt: Rework cpu down for PREEMPT_RT cpu/rt: Fix cpu_hotplug variable initialization workqueue: Revert workqueue: Fix PF_THREAD_BOUND abuse workqueue: Revert workqueue: Fix cpuhotplug trainwreck Linux 3.2.23-rt37-rc1 include/linux/cpu.h |6 +- include/linux/sched.h |7 + include/linux/workqueue.h |5 +- kernel/cpu.c | 240 +++ kernel/sched.c| 82 ++- kernel/workqueue.c| 578 - localversion-rt |2 +- 7 files changed, 704 insertions(+), 216 deletions(-) -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/