All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RT 0/3] Linux 3.2.57-rt84-rc1
@ 2014-04-27 14:39 Steven Rostedt
  2014-04-27 14:39 ` [PATCH RT 1/3] net: gianfar: do not disable interrupts Steven Rostedt
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Steven Rostedt @ 2014-04-27 14:39 UTC (permalink / raw)
  To: linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Paul Gortmaker


Dear RT Folks,

This is the RT stable review cycle of patch 3.2.57-rt84-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 4/30/2014.

Enjoy,

-- Steve


To build 3.2.57-rt84-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.57.xz

  http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.57-rt84-rc1.patch.xz

You can also build from 3.2.57-rt83 by applying the incremental patch:

http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.57-rt83-rt84-rc1.patch.xz


Changes from 3.2.57-rt83:

---


Sebastian Andrzej Siewior (2):
      net: gianfar: do not disable interrupts
      rcu: make RCU_BOOST default on RT

Steven Rostedt (Red Hat) (1):
      Linux 3.2.57-rt84-rc1

----
 drivers/net/ethernet/freescale/gianfar.c         | 16 ++++++++--------
 drivers/net/ethernet/freescale/gianfar_ethtool.c |  8 ++++----
 drivers/net/ethernet/freescale/gianfar_sysfs.c   | 24 ++++++++++++------------
 init/Kconfig                                     |  2 +-
 localversion-rt                                  |  2 +-
 5 files changed, 26 insertions(+), 26 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH RT 1/3] net: gianfar: do not disable interrupts
  2014-04-27 14:39 [PATCH RT 0/3] Linux 3.2.57-rt84-rc1 Steven Rostedt
@ 2014-04-27 14:39 ` Steven Rostedt
  2014-04-27 14:39 ` [PATCH RT 2/3] rcu: make RCU_BOOST default on RT Steven Rostedt
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2014-04-27 14:39 UTC (permalink / raw)
  To: linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Paul Gortmaker, stable-rt

[-- Attachment #1: 0001-net-gianfar-do-not-disable-interrupts.patch --]
[-- Type: text/plain, Size: 7567 bytes --]

3.2.57-rt84-rc1 stable review patch.
If anyone has any objections, please let me know.

------------------

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

each per-queue lock is taken with spin_lock_irqsave() except in the case
where all of them are taken for some kind of serialisation. As an
optimisation local_irq_save() is used so that lock_tx_qs() and
lock_rx_qs() can use just the spin_lock() variant instead.
On RT local_irq_save() behaves differently so we use the nort()
variant.
Lockdep screems easily by "ethtool -K eth0 rx off tx off"

What remains is missing lockdep annotation that makes lockdep think
lock_tx_qs() may cause a dead lock.

Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 drivers/net/ethernet/freescale/gianfar.c         | 16 ++++++++--------
 drivers/net/ethernet/freescale/gianfar_ethtool.c |  8 ++++----
 drivers/net/ethernet/freescale/gianfar_sysfs.c   | 24 ++++++++++++------------
 3 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/drivers/net/ethernet/freescale/gianfar.c b/drivers/net/ethernet/freescale/gianfar.c
index 7048ed8..5c35b28 100644
--- a/drivers/net/ethernet/freescale/gianfar.c
+++ b/drivers/net/ethernet/freescale/gianfar.c
@@ -1285,7 +1285,7 @@ static int gfar_suspend(struct device *dev)
 
 	if (netif_running(ndev)) {
 
-		local_irq_save(flags);
+		local_irq_save_nort(flags);
 		lock_tx_qs(priv);
 		lock_rx_qs(priv);
 
@@ -1303,7 +1303,7 @@ static int gfar_suspend(struct device *dev)
 
 		unlock_rx_qs(priv);
 		unlock_tx_qs(priv);
-		local_irq_restore(flags);
+		local_irq_restore_nort(flags);
 
 		disable_napi(priv);
 
@@ -1344,7 +1344,7 @@ static int gfar_resume(struct device *dev)
 	/* Disable Magic Packet mode, in case something
 	 * else woke us up.
 	 */
-	local_irq_save(flags);
+	local_irq_save_nort(flags);
 	lock_tx_qs(priv);
 	lock_rx_qs(priv);
 
@@ -1356,7 +1356,7 @@ static int gfar_resume(struct device *dev)
 
 	unlock_rx_qs(priv);
 	unlock_tx_qs(priv);
-	local_irq_restore(flags);
+	local_irq_restore_nort(flags);
 
 	netif_device_attach(ndev);
 
@@ -2323,7 +2323,7 @@ void gfar_vlan_mode(struct net_device *dev, u32 features)
 	u32 tempval;
 
 	regs = priv->gfargrp[0].regs;
-	local_irq_save(flags);
+	local_irq_save_nort(flags);
 	lock_rx_qs(priv);
 
 	if (features & NETIF_F_HW_VLAN_TX) {
@@ -2355,7 +2355,7 @@ void gfar_vlan_mode(struct net_device *dev, u32 features)
 	gfar_change_mtu(dev, dev->mtu);
 
 	unlock_rx_qs(priv);
-	local_irq_restore(flags);
+	local_irq_restore_nort(flags);
 }
 
 static int gfar_change_mtu(struct net_device *dev, int new_mtu)
@@ -3225,14 +3225,14 @@ static irqreturn_t gfar_error(int irq, void *grp_id)
 			dev->stats.tx_dropped++;
 			priv->extra_stats.tx_underrun++;
 
-			local_irq_save(flags);
+			local_irq_save_nort(flags);
 			lock_tx_qs(priv);
 
 			/* Reactivate the Tx Queues */
 			gfar_write(&regs->tstat, gfargrp->tstat);
 
 			unlock_tx_qs(priv);
-			local_irq_restore(flags);
+			local_irq_restore_nort(flags);
 		}
 		netif_dbg(priv, tx_err, dev, "Transmit Error\n");
 	}
diff --git a/drivers/net/ethernet/freescale/gianfar_ethtool.c b/drivers/net/ethernet/freescale/gianfar_ethtool.c
index 212736b..1fe331f 100644
--- a/drivers/net/ethernet/freescale/gianfar_ethtool.c
+++ b/drivers/net/ethernet/freescale/gianfar_ethtool.c
@@ -486,7 +486,7 @@ static int gfar_sringparam(struct net_device *dev, struct ethtool_ringparam *rva
 
 		/* Halt TX and RX, and process the frames which
 		 * have already been received */
-		local_irq_save(flags);
+		local_irq_save_nort(flags);
 		lock_tx_qs(priv);
 		lock_rx_qs(priv);
 
@@ -494,7 +494,7 @@ static int gfar_sringparam(struct net_device *dev, struct ethtool_ringparam *rva
 
 		unlock_rx_qs(priv);
 		unlock_tx_qs(priv);
-		local_irq_restore(flags);
+		local_irq_restore_nort(flags);
 
 		for (i = 0; i < priv->num_rx_queues; i++)
 			gfar_clean_rx_ring(priv->rx_queue[i],
@@ -535,7 +535,7 @@ int gfar_set_features(struct net_device *dev, u32 features)
 	if (dev->flags & IFF_UP) {
 		/* Halt TX and RX, and process the frames which
 		 * have already been received */
-		local_irq_save(flags);
+		local_irq_save_nort(flags);
 		lock_tx_qs(priv);
 		lock_rx_qs(priv);
 
@@ -543,7 +543,7 @@ int gfar_set_features(struct net_device *dev, u32 features)
 
 		unlock_tx_qs(priv);
 		unlock_rx_qs(priv);
-		local_irq_restore(flags);
+		local_irq_restore_nort(flags);
 
 		for (i = 0; i < priv->num_rx_queues; i++)
 			gfar_clean_rx_ring(priv->rx_queue[i],
diff --git a/drivers/net/ethernet/freescale/gianfar_sysfs.c b/drivers/net/ethernet/freescale/gianfar_sysfs.c
index 64f4094..9f6fb3a 100644
--- a/drivers/net/ethernet/freescale/gianfar_sysfs.c
+++ b/drivers/net/ethernet/freescale/gianfar_sysfs.c
@@ -68,7 +68,7 @@ static ssize_t gfar_set_bd_stash(struct device *dev,
 		return count;
 
 
-	local_irq_save(flags);
+	local_irq_save_nort(flags);
 	lock_rx_qs(priv);
 
 	/* Set the new stashing value */
@@ -84,7 +84,7 @@ static ssize_t gfar_set_bd_stash(struct device *dev,
 	gfar_write(&regs->attr, temp);
 
 	unlock_rx_qs(priv);
-	local_irq_restore(flags);
+	local_irq_restore_nort(flags);
 
 	return count;
 }
@@ -112,7 +112,7 @@ static ssize_t gfar_set_rx_stash_size(struct device *dev,
 	if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_BUF_STASHING))
 		return count;
 
-	local_irq_save(flags);
+	local_irq_save_nort(flags);
 	lock_rx_qs(priv);
 
 	if (length > priv->rx_buffer_size)
@@ -140,7 +140,7 @@ static ssize_t gfar_set_rx_stash_size(struct device *dev,
 
 out:
 	unlock_rx_qs(priv);
-	local_irq_restore(flags);
+	local_irq_restore_nort(flags);
 
 	return count;
 }
@@ -171,7 +171,7 @@ static ssize_t gfar_set_rx_stash_index(struct device *dev,
 	if (!(priv->device_flags & FSL_GIANFAR_DEV_HAS_BUF_STASHING))
 		return count;
 
-	local_irq_save(flags);
+	local_irq_save_nort(flags);
 	lock_rx_qs(priv);
 
 	if (index > priv->rx_stash_size)
@@ -189,7 +189,7 @@ static ssize_t gfar_set_rx_stash_index(struct device *dev,
 
 out:
 	unlock_rx_qs(priv);
-	local_irq_restore(flags);
+	local_irq_restore_nort(flags);
 
 	return count;
 }
@@ -219,7 +219,7 @@ static ssize_t gfar_set_fifo_threshold(struct device *dev,
 	if (length > GFAR_MAX_FIFO_THRESHOLD)
 		return count;
 
-	local_irq_save(flags);
+	local_irq_save_nort(flags);
 	lock_tx_qs(priv);
 
 	priv->fifo_threshold = length;
@@ -230,7 +230,7 @@ static ssize_t gfar_set_fifo_threshold(struct device *dev,
 	gfar_write(&regs->fifo_tx_thr, temp);
 
 	unlock_tx_qs(priv);
-	local_irq_restore(flags);
+	local_irq_restore_nort(flags);
 
 	return count;
 }
@@ -259,7 +259,7 @@ static ssize_t gfar_set_fifo_starve(struct device *dev,
 	if (num > GFAR_MAX_FIFO_STARVE)
 		return count;
 
-	local_irq_save(flags);
+	local_irq_save_nort(flags);
 	lock_tx_qs(priv);
 
 	priv->fifo_starve = num;
@@ -270,7 +270,7 @@ static ssize_t gfar_set_fifo_starve(struct device *dev,
 	gfar_write(&regs->fifo_tx_starve, temp);
 
 	unlock_tx_qs(priv);
-	local_irq_restore(flags);
+	local_irq_restore_nort(flags);
 
 	return count;
 }
@@ -300,7 +300,7 @@ static ssize_t gfar_set_fifo_starve_off(struct device *dev,
 	if (num > GFAR_MAX_FIFO_STARVE_OFF)
 		return count;
 
-	local_irq_save(flags);
+	local_irq_save_nort(flags);
 	lock_tx_qs(priv);
 
 	priv->fifo_starve_off = num;
@@ -311,7 +311,7 @@ static ssize_t gfar_set_fifo_starve_off(struct device *dev,
 	gfar_write(&regs->fifo_tx_starve_shutoff, temp);
 
 	unlock_tx_qs(priv);
-	local_irq_restore(flags);
+	local_irq_restore_nort(flags);
 
 	return count;
 }
-- 
1.8.5.3



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH RT 2/3] rcu: make RCU_BOOST default on RT
  2014-04-27 14:39 [PATCH RT 0/3] Linux 3.2.57-rt84-rc1 Steven Rostedt
  2014-04-27 14:39 ` [PATCH RT 1/3] net: gianfar: do not disable interrupts Steven Rostedt
@ 2014-04-27 14:39 ` Steven Rostedt
  2014-04-27 14:39 ` [PATCH RT 3/3] Linux 3.2.57-rt84-rc1 Steven Rostedt
  2014-04-27 22:15 ` [PATCH RT 0/3] " Pavel Vasilyev
  3 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2014-04-27 14:39 UTC (permalink / raw)
  To: linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Paul Gortmaker, stable-rt

[-- Attachment #1: 0002-rcu-make-RCU_BOOST-default-on-RT.patch --]
[-- Type: text/plain, Size: 1059 bytes --]

3.2.57-rt84-rc1 stable review patch.
If anyone has any objections, please let me know.

------------------

From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

Since it is no longer invoked from the softirq people run into OOM more
often if the priority of the RCU thread is too low. Making boosting
default on RT should help in those case and it can be switched off if
someone knows better.

Cc: stable-rt@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 init/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/init/Kconfig b/init/Kconfig
index aa6545f..c16e1f3 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -494,7 +494,7 @@ config TREE_RCU_TRACE
 config RCU_BOOST
 	bool "Enable RCU priority boosting"
 	depends on RT_MUTEXES && PREEMPT_RCU
-	default n
+	default y if PREEMPT_RT_FULL
 	help
 	  This option boosts the priority of preempted RCU readers that
 	  block the current preemptible RCU grace period for too long.
-- 
1.8.5.3



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH RT 3/3] Linux 3.2.57-rt84-rc1
  2014-04-27 14:39 [PATCH RT 0/3] Linux 3.2.57-rt84-rc1 Steven Rostedt
  2014-04-27 14:39 ` [PATCH RT 1/3] net: gianfar: do not disable interrupts Steven Rostedt
  2014-04-27 14:39 ` [PATCH RT 2/3] rcu: make RCU_BOOST default on RT Steven Rostedt
@ 2014-04-27 14:39 ` Steven Rostedt
  2014-04-27 22:15 ` [PATCH RT 0/3] " Pavel Vasilyev
  3 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2014-04-27 14:39 UTC (permalink / raw)
  To: linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Paul Gortmaker

[-- Attachment #1: 0003-Linux-3.2.57-rt84-rc1.patch --]
[-- Type: text/plain, Size: 405 bytes --]

3.2.57-rt84-rc1 stable review patch.
If anyone has any objections, please let me know.

------------------

From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>

---
 localversion-rt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/localversion-rt b/localversion-rt
index 6a72c0f..5819303 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt83
+-rt84-rc1
-- 
1.8.5.3



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH RT 0/3] Linux 3.2.57-rt84-rc1
  2014-04-27 14:39 [PATCH RT 0/3] Linux 3.2.57-rt84-rc1 Steven Rostedt
                   ` (2 preceding siblings ...)
  2014-04-27 14:39 ` [PATCH RT 3/3] Linux 3.2.57-rt84-rc1 Steven Rostedt
@ 2014-04-27 22:15 ` Pavel Vasilyev
  2014-04-28 13:39   ` Steven Rostedt
  3 siblings, 1 reply; 7+ messages in thread
From: Pavel Vasilyev @ 2014-04-27 22:15 UTC (permalink / raw)
  To: Steven Rostedt, linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Paul Gortmaker

27.04.2014 18:39, Steven Rostedt пишет:
> Dear RT Folks,
>
> This is the RT stable review cycle of patch 3.2.57-rt84-rc1.
>
> Please scream at me if I messed something up. Please test the patches too.


More than two years our thin clients (about 5000 machines, Intel Atom, x86_32) 
work with RCU_BOOST.

CONFIG_RCU_BOOST=y
CONFIG_RCU_BOOST_PRIO=80
CONFIG_RCU_BOOST_DELAY=400

-- 

                                                          Pavel.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RT 0/3] Linux 3.2.57-rt84-rc1
  2014-04-27 22:15 ` [PATCH RT 0/3] " Pavel Vasilyev
@ 2014-04-28 13:39   ` Steven Rostedt
  2014-04-29 15:48     ` Pavel Vasilyev
  0 siblings, 1 reply; 7+ messages in thread
From: Steven Rostedt @ 2014-04-28 13:39 UTC (permalink / raw)
  To: pavel
  Cc: linux-kernel, linux-rt-users, Thomas Gleixner, Carsten Emde,
	Sebastian Andrzej Siewior, John Kacur, Paul Gortmaker

On Mon, 28 Apr 2014 02:15:28 +0400
Pavel Vasilyev <pavel@pavlinux.ru> wrote:

> 27.04.2014 18:39, Steven Rostedt пишет:
> > Dear RT Folks,
> >
> > This is the RT stable review cycle of patch 3.2.57-rt84-rc1.
> >
> > Please scream at me if I messed something up. Please test the patches too.
> 
> 
> More than two years our thin clients (about 5000 machines, Intel Atom, x86_32) 
> work with RCU_BOOST.
> 
> CONFIG_RCU_BOOST=y
> CONFIG_RCU_BOOST_PRIO=80
> CONFIG_RCU_BOOST_DELAY=400
> 

Is this just a confirmation of having RCU_BOOST default y for
PREEMPT_RT is a good thing?

Thanks,

-- Steve

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH RT 0/3] Linux 3.2.57-rt84-rc1
  2014-04-28 13:39   ` Steven Rostedt
@ 2014-04-29 15:48     ` Pavel Vasilyev
  0 siblings, 0 replies; 7+ messages in thread
From: Pavel Vasilyev @ 2014-04-29 15:48 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: linux-kernel, linux-rt-users, Thomas Gleixner, Carsten Emde,
	Sebastian Andrzej Siewior, John Kacur, Paul Gortmaker

28.04.2014 17:39, Steven Rostedt пишет:
> On Mon, 28 Apr 2014 02:15:28 +0400
> Pavel Vasilyev <pavel@pavlinux.ru> wrote:
>
>> 27.04.2014 18:39, Steven Rostedt пишет:
>>> Dear RT Folks,
>>>
>>> This is the RT stable review cycle of patch 3.2.57-rt84-rc1.
>>>
>>> Please scream at me if I messed something up. Please test the patches too.
>>
>>
>> More than two years our thin clients (about 5000 machines, Intel Atom, x86_32)
>> work with RCU_BOOST.
>>
>> CONFIG_RCU_BOOST=y
>> CONFIG_RCU_BOOST_PRIO=80
>> CONFIG_RCU_BOOST_DELAY=400
>>
>
> Is this just a confirmation of having RCU_BOOST default y for
> PREEMPT_RT is a good thing?


Only 3.2-rt


-- 

                                                          Pavel.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2014-04-29 15:48 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-27 14:39 [PATCH RT 0/3] Linux 3.2.57-rt84-rc1 Steven Rostedt
2014-04-27 14:39 ` [PATCH RT 1/3] net: gianfar: do not disable interrupts Steven Rostedt
2014-04-27 14:39 ` [PATCH RT 2/3] rcu: make RCU_BOOST default on RT Steven Rostedt
2014-04-27 14:39 ` [PATCH RT 3/3] Linux 3.2.57-rt84-rc1 Steven Rostedt
2014-04-27 22:15 ` [PATCH RT 0/3] " Pavel Vasilyev
2014-04-28 13:39   ` Steven Rostedt
2014-04-29 15:48     ` Pavel Vasilyev

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.