[ANNOUNCE] 3.2.23-rt37

2012-07-19 Thread Steven Rostedt

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

2012-07-19 Thread Steven Rostedt

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

2012-07-17 Thread Steven Rostedt

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

2012-07-17 Thread Steven Rostedt

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/