Re: [PATCH RT] net: move xmit_recursion to per-task variable on -RT

From: Hannes Frederic Sowa
Date: Thu Jan 14 2016 - 17:02:19 EST


On 14.01.2016 15:50, Sebastian Andrzej Siewior wrote:
* Thomas Gleixner | 2016-01-13 18:31:46 [+0100]:

On Wed, 13 Jan 2016, Sebastian Andrzej Siewior wrote:
+#ifdef CONFIG_PREEMPT_RT_FULL
+static inline int dev_recursion_level(void)
+{
+ return atomic_read(&current->xmit_recursion);

Why would you need an atomic here. current does hardly race against itself.

right.

We are just adding a second recursion limit solely to openvswitch which has the same problem:

https://patchwork.ozlabs.org/patch/566769/

This time also we depend on rcu_read_lock marking the section being nonpreemptible. Nice would be a more generic solution here which doesn't need to always add something to *current.

Thanks,
Hannes