[ANNOUNCE] 3.4.82-rt103

2014-03-18 Thread Steven Rostedt

Dear RT Folks,

I'm pleased to announce the 3.4.82-rt103 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

  branch: v3.4-rt
  Head SHA1: b837f3a52f4aa74f8af135b5a5fbb7dd20fa1181


Or to build 3.4.82-rt103 directly, the following patches should be applied:

  http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.tar.xz

  http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.4.82.xz

  
http://www.kernel.org/pub/linux/kernel/projects/rt/3.4/patch-3.4.82-rt103.patch.xz



You can also build from 3.4.82-rt102 by applying the incremental patch:

  
http://www.kernel.org/pub/linux/kernel/projects/rt/3.4/incr/patch-3.4.82-rt102-rt103.patch.xz



Enjoy,

-- Steve


Changes from v3.4.82-rt102:

---

Marc Kleine-Budde (1):
  net: sched: dev_deactivate_many(): use msleep(1) instead of yield() to 
wait for outstanding qdisc_run calls

Sebastian Andrzej Siewior (1):
  fs: jbd2: pull your plug when waiting for space

Steven Rostedt (1):
  cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep

Steven Rostedt (Red Hat) (1):
  Linux 3.4.82-rt103


 fs/jbd2/checkpoint.c|  2 ++
 kernel/hrtimer.c| 25 ++---
 localversion-rt |  2 +-
 net/sched/sch_generic.c |  2 +-
 4 files changed, 22 insertions(+), 9 deletions(-)
---
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c
index c78841e..a4d273b 100644
--- a/fs/jbd2/checkpoint.c
+++ b/fs/jbd2/checkpoint.c
@@ -125,6 +125,8 @@ void __jbd2_log_wait_for_space(journal_t *journal)
if (journal->j_flags & JBD2_ABORT)
return;
write_unlock(>j_state_lock);
+   if (current->plug)
+   io_schedule();
mutex_lock(>j_checkpoint_mutex);
 
/*
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index a87d70d..5342f82 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -1724,12 +1724,13 @@ void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, 
struct task_struct *task)
 }
 EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
 
-static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode 
mode)
+static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode 
mode,
+   unsigned long state)
 {
hrtimer_init_sleeper(t, current);
 
do {
-   set_current_state(TASK_INTERRUPTIBLE);
+   set_current_state(state);
hrtimer_start_expires(>timer, mode);
if (!hrtimer_active(>timer))
t->task = NULL;
@@ -1773,7 +1774,8 @@ long __sched hrtimer_nanosleep_restart(struct 
restart_block *restart)
HRTIMER_MODE_ABS);
hrtimer_set_expires_tv64(, restart->nanosleep.expires);
 
-   if (do_nanosleep(, HRTIMER_MODE_ABS))
+   /* cpu_chill() does not care about restart state. */
+   if (do_nanosleep(, HRTIMER_MODE_ABS, TASK_INTERRUPTIBLE))
goto out;
 
rmtp = restart->nanosleep.rmtp;
@@ -1790,8 +1792,10 @@ out:
return ret;
 }
 
-long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
-  const enum hrtimer_mode mode, const clockid_t clockid)
+static long
+__hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
+   const enum hrtimer_mode mode, const clockid_t clockid,
+   unsigned long state)
 {
struct restart_block *restart;
struct hrtimer_sleeper t;
@@ -1804,7 +1808,7 @@ long hrtimer_nanosleep(struct timespec *rqtp, struct 
timespec __user *rmtp,
 
hrtimer_init_on_stack(, clockid, mode);
hrtimer_set_expires_range_ns(, timespec_to_ktime(*rqtp), slack);
-   if (do_nanosleep(, mode))
+   if (do_nanosleep(, mode, state))
goto out;
 
/* Absolute timers do not update the rmtp value and restart: */
@@ -1831,6 +1835,12 @@ out:
return ret;
 }
 
+long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
+  const enum hrtimer_mode mode, const clockid_t clockid)
+{
+   return __hrtimer_nanosleep(rqtp, rmtp, mode, clockid, 
TASK_INTERRUPTIBLE);
+}
+
 SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
struct timespec __user *, rmtp)
 {
@@ -1857,7 +1867,8 @@ void cpu_chill(void)
unsigned int freeze_flag = current->flags & PF_NOFREEZE;
 
current->flags |= PF_NOFREEZE;
-   hrtimer_nanosleep(, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC);
+   __hrtimer_nanosleep(, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC,
+   TASK_UNINTERRUPTIBLE);
if (!freeze_flag)
current->flags &= ~PF_NOFREEZE;
 }
diff --git a/localversion-rt b/localversion-rt
index 33017cd..e0a0b11 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt102
+-rt103
diff --git 

[ANNOUNCE] 3.4.82-rt103

2014-03-18 Thread Steven Rostedt

Dear RT Folks,

I'm pleased to announce the 3.4.82-rt103 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

  branch: v3.4-rt
  Head SHA1: b837f3a52f4aa74f8af135b5a5fbb7dd20fa1181


Or to build 3.4.82-rt103 directly, the following patches should be applied:

  http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.tar.xz

  http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.4.82.xz

  
http://www.kernel.org/pub/linux/kernel/projects/rt/3.4/patch-3.4.82-rt103.patch.xz



You can also build from 3.4.82-rt102 by applying the incremental patch:

  
http://www.kernel.org/pub/linux/kernel/projects/rt/3.4/incr/patch-3.4.82-rt102-rt103.patch.xz



Enjoy,

-- Steve


Changes from v3.4.82-rt102:

---

Marc Kleine-Budde (1):
  net: sched: dev_deactivate_many(): use msleep(1) instead of yield() to 
wait for outstanding qdisc_run calls

Sebastian Andrzej Siewior (1):
  fs: jbd2: pull your plug when waiting for space

Steven Rostedt (1):
  cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep

Steven Rostedt (Red Hat) (1):
  Linux 3.4.82-rt103


 fs/jbd2/checkpoint.c|  2 ++
 kernel/hrtimer.c| 25 ++---
 localversion-rt |  2 +-
 net/sched/sch_generic.c |  2 +-
 4 files changed, 22 insertions(+), 9 deletions(-)
---
diff --git a/fs/jbd2/checkpoint.c b/fs/jbd2/checkpoint.c
index c78841e..a4d273b 100644
--- a/fs/jbd2/checkpoint.c
+++ b/fs/jbd2/checkpoint.c
@@ -125,6 +125,8 @@ void __jbd2_log_wait_for_space(journal_t *journal)
if (journal-j_flags  JBD2_ABORT)
return;
write_unlock(journal-j_state_lock);
+   if (current-plug)
+   io_schedule();
mutex_lock(journal-j_checkpoint_mutex);
 
/*
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
index a87d70d..5342f82 100644
--- a/kernel/hrtimer.c
+++ b/kernel/hrtimer.c
@@ -1724,12 +1724,13 @@ void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, 
struct task_struct *task)
 }
 EXPORT_SYMBOL_GPL(hrtimer_init_sleeper);
 
-static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode 
mode)
+static int __sched do_nanosleep(struct hrtimer_sleeper *t, enum hrtimer_mode 
mode,
+   unsigned long state)
 {
hrtimer_init_sleeper(t, current);
 
do {
-   set_current_state(TASK_INTERRUPTIBLE);
+   set_current_state(state);
hrtimer_start_expires(t-timer, mode);
if (!hrtimer_active(t-timer))
t-task = NULL;
@@ -1773,7 +1774,8 @@ long __sched hrtimer_nanosleep_restart(struct 
restart_block *restart)
HRTIMER_MODE_ABS);
hrtimer_set_expires_tv64(t.timer, restart-nanosleep.expires);
 
-   if (do_nanosleep(t, HRTIMER_MODE_ABS))
+   /* cpu_chill() does not care about restart state. */
+   if (do_nanosleep(t, HRTIMER_MODE_ABS, TASK_INTERRUPTIBLE))
goto out;
 
rmtp = restart-nanosleep.rmtp;
@@ -1790,8 +1792,10 @@ out:
return ret;
 }
 
-long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
-  const enum hrtimer_mode mode, const clockid_t clockid)
+static long
+__hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
+   const enum hrtimer_mode mode, const clockid_t clockid,
+   unsigned long state)
 {
struct restart_block *restart;
struct hrtimer_sleeper t;
@@ -1804,7 +1808,7 @@ long hrtimer_nanosleep(struct timespec *rqtp, struct 
timespec __user *rmtp,
 
hrtimer_init_on_stack(t.timer, clockid, mode);
hrtimer_set_expires_range_ns(t.timer, timespec_to_ktime(*rqtp), slack);
-   if (do_nanosleep(t, mode))
+   if (do_nanosleep(t, mode, state))
goto out;
 
/* Absolute timers do not update the rmtp value and restart: */
@@ -1831,6 +1835,12 @@ out:
return ret;
 }
 
+long hrtimer_nanosleep(struct timespec *rqtp, struct timespec __user *rmtp,
+  const enum hrtimer_mode mode, const clockid_t clockid)
+{
+   return __hrtimer_nanosleep(rqtp, rmtp, mode, clockid, 
TASK_INTERRUPTIBLE);
+}
+
 SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
struct timespec __user *, rmtp)
 {
@@ -1857,7 +1867,8 @@ void cpu_chill(void)
unsigned int freeze_flag = current-flags  PF_NOFREEZE;
 
current-flags |= PF_NOFREEZE;
-   hrtimer_nanosleep(tu, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC);
+   __hrtimer_nanosleep(tu, NULL, HRTIMER_MODE_REL, CLOCK_MONOTONIC,
+   TASK_UNINTERRUPTIBLE);
if (!freeze_flag)
current-flags = ~PF_NOFREEZE;
 }
diff --git a/localversion-rt b/localversion-rt
index 33017cd..e0a0b11 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@