Dear RT Folks,
This is the RT stable review cycle of patch 3.2.53-rt76-rc1.
Note, the reason I did not release this earlier, was that I found
that the v3.2-rt series was locking up with my cpu hotplug stress test.
I finally got some time to debug this, and found that the problem was
in the invalidate_bh_lrs() where it was stuck in the on_each_cpu() call
where it was waiting for an offline CPU. Looking at what 3.4-rt does,
which does not have this problem, there were three patches in mainline
from Gilad Ben-Yossef that appears to fix the issue. At least it
makes the symptom go away. I may look into this deeper to make sure
that we did not just make a race window much harder to hit, and really
did fix the problem. But as 3.2-rt is now as stable as 3.4-rt and later
I can finally release this candidate.
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 1/17/2014.
Enjoy,
-- Steve
To build 3.2.53-rt76-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.53.xz
http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/patch-3.2.53-rt76-rc1.patch.xz
You can also build from 3.2.53-rt75 by applying the incremental patch:
http://www.kernel.org/pub/linux/kernel/projects/rt/3.2/incr/patch-3.2.53-rt75-rt76-rc1.patch.xz
Changes from 3.2.53-rt75:
---
Gilad Ben-Yossef (3):
smp: introduce a generic on_each_cpu_mask() function
smp: add func to IPI cpus based on parameter func
fs: only send IPI to invalidate LRU BH when needed
Peter Zijlstra (1):
lockdep: Correctly annotate hardirq context in irq_exit()
Sebastian Andrzej Siewior (2):
swait: Add a few more users
rtmutex: use a trylock for waiter lock in trylock
Steven Rostedt (Red Hat) (1):
Linux 3.2.53-rt76-rc1
Tiejun Chen (1):
cpu_down: move migrate_enable() back
----
arch/arm/kernel/smp_tlb.c | 20 ++-----
arch/tile/include/asm/smp.h | 7 ---
arch/tile/kernel/smp.c | 19 -------
drivers/net/wireless/orinoco/orinoco_usb.c | 2 +-
drivers/usb/gadget/f_fs.c | 2 +-
drivers/usb/gadget/inode.c | 4 +-
fs/buffer.c | 15 ++++-
include/linux/smp.h | 46 +++++++++++++++
include/linux/spinlock_rt.h | 1 +
kernel/cpu.c | 2 +-
kernel/rtmutex.c | 31 ++++++++--
kernel/smp.c | 90 ++++++++++++++++++++++++++++++
kernel/softirq.c | 45 ++++++++++++++-
kernel/timer.c | 2 +-
localversion-rt | 2 +-
15 files changed, 232 insertions(+), 56 deletions(-)
16.01.2014 05:58, Steven Rostedt пишет:
> Dear RT Folks,
>
> This is the RT stable review cycle of patch 3.2.53-rt76-rc1.
Yap..., mainline is 3.2.54 !
--
Pavel.
On Thu, 16 Jan 2014 13:41:16 +0400
Pavel Vasilyev <[email protected]> wrote:
> 16.01.2014 05:58, Steven Rostedt пишет:
> > Dear RT Folks,
> >
> > This is the RT stable review cycle of patch 3.2.53-rt76-rc1.
>
> Yap..., mainline is 3.2.54 !
>
Yeah, but I already had the -rt specific changes merged into 3.2.53
before 3.2.54 was released, and then I discovered the cpu hotplug bug.
I did not want to release that -rc until it was solved. Now that it is,
I can release this one and then move to 3.2.54.
Thanks,
-- Steve
16.01.2014 18:18, Steven Rostedt пишет:
> On Thu, 16 Jan 2014 13:41:16 +0400
> Pavel Vasilyev <[email protected]> wrote:
>
>> 16.01.2014 05:58, Steven Rostedt пишет:
>>> Dear RT Folks,
>>>
>>> This is the RT stable review cycle of patch 3.2.53-rt76-rc1.
>>
>> Yap..., mainline is 3.2.54 !
>>
>
> Yeah, but I already had the -rt specific changes merged into 3.2.53
> before 3.2.54 was released, and then I discovered the cpu hotplug bug.
> I did not want to release that -rc until it was solved. Now that it is,
> I can release this one and then move to 3.2.54.
$ xz -cd /tmp/patch-3.2.53-rt75-rt76-rc1.patch.xz | patch -p1 --dry-run
checking file arch/arm/kernel/smp_tlb.c
checking file arch/tile/include/asm/smp.h
checking file arch/tile/kernel/smp.c
checking file drivers/net/wireless/orinoco/orinoco_usb.c
checking file drivers/usb/gadget/f_fs.c
checking file drivers/usb/gadget/inode.c
checking file fs/buffer.c
checking file include/linux/smp.h
Hunk #1 succeeded at 117 with fuzz 1 (offset 16 lines).
Hunk #2 FAILED at 147.
1 out of 2 hunks FAILED
checking file include/linux/spinlock_rt.h
checking file kernel/cpu.c
checking file kernel/rtmutex.c
checking file kernel/smp.c
Hunk #1 FAILED at 712.
1 out of 1 hunk FAILED
checking file kernel/softirq.c
checking file kernel/timer.c
checking file localversion-rt
include/linux/smp.h REJECT: #define on_each_cpu_mask() and #define
on_each_cpu_cond() and same in kernel/smp.c
--
Pavel.
On Thu, 16 Jan 2014 18:36:32 +0400
Pavel Vasilyev <[email protected]> wrote:
> 16.01.2014 18:18, Steven Rostedt пишет:
> > On Thu, 16 Jan 2014 13:41:16 +0400
> > Pavel Vasilyev <[email protected]> wrote:
> >
> >> 16.01.2014 05:58, Steven Rostedt пишет:
> >>> Dear RT Folks,
> >>>
> >>> This is the RT stable review cycle of patch 3.2.53-rt76-rc1.
> >>
> >> Yap..., mainline is 3.2.54 !
> >>
> >
> > Yeah, but I already had the -rt specific changes merged into 3.2.53
> > before 3.2.54 was released, and then I discovered the cpu hotplug bug.
> > I did not want to release that -rc until it was solved. Now that it is,
> > I can release this one and then move to 3.2.54.
>
>
> $ xz -cd /tmp/patch-3.2.53-rt75-rt76-rc1.patch.xz | patch -p1 --dry-run
>
> checking file arch/arm/kernel/smp_tlb.c
> checking file arch/tile/include/asm/smp.h
> checking file arch/tile/kernel/smp.c
> checking file drivers/net/wireless/orinoco/orinoco_usb.c
> checking file drivers/usb/gadget/f_fs.c
> checking file drivers/usb/gadget/inode.c
> checking file fs/buffer.c
> checking file include/linux/smp.h
> Hunk #1 succeeded at 117 with fuzz 1 (offset 16 lines).
> Hunk #2 FAILED at 147.
> 1 out of 2 hunks FAILED
> checking file include/linux/spinlock_rt.h
> checking file kernel/cpu.c
> checking file kernel/rtmutex.c
> checking file kernel/smp.c
> Hunk #1 FAILED at 712.
> 1 out of 1 hunk FAILED
> checking file kernel/softirq.c
> checking file kernel/timer.c
> checking file localversion-rt
>
>
> include/linux/smp.h REJECT: #define on_each_cpu_mask() and #define
> on_each_cpu_cond() and same in kernel/smp.c
>
>
Ouch, thanks for letting me know. I'll give it a try to make sure that
the patch is the same code that I tested.
-- Steve
On Thu, 16 Jan 2014 18:36:32 +0400
Pavel Vasilyev <[email protected]> wrote:
>
> $ xz -cd /tmp/patch-3.2.53-rt75-rt76-rc1.patch.xz | patch -p1 --dry-run
>
> checking file arch/arm/kernel/smp_tlb.c
> checking file arch/tile/include/asm/smp.h
> checking file arch/tile/kernel/smp.c
> checking file drivers/net/wireless/orinoco/orinoco_usb.c
> checking file drivers/usb/gadget/f_fs.c
> checking file drivers/usb/gadget/inode.c
> checking file fs/buffer.c
> checking file include/linux/smp.h
> Hunk #1 succeeded at 117 with fuzz 1 (offset 16 lines).
> Hunk #2 FAILED at 147.
> 1 out of 2 hunks FAILED
> checking file include/linux/spinlock_rt.h
> checking file kernel/cpu.c
> checking file kernel/rtmutex.c
> checking file kernel/smp.c
> Hunk #1 FAILED at 712.
> 1 out of 1 hunk FAILED
> checking file kernel/softirq.c
> checking file kernel/timer.c
> checking file localversion-rt
>
>
> include/linux/smp.h REJECT: #define on_each_cpu_mask() and #define
> on_each_cpu_cond() and same in kernel/smp.c
>
>
$ git checkout v3.2.53-rt75
[..]
$ xzcat /tmp/patch-3.2.53-rt75-rt76-rc1.patch.xz | patch -p1 --dry-run
checking file arch/arm/kernel/smp_tlb.c
checking file arch/tile/include/asm/smp.h
checking file arch/tile/kernel/smp.c
checking file drivers/net/wireless/orinoco/orinoco_usb.c
checking file drivers/usb/gadget/f_fs.c
checking file drivers/usb/gadget/inode.c
checking file fs/buffer.c
checking file include/linux/smp.h
checking file include/linux/spinlock_rt.h
checking file kernel/cpu.c
checking file kernel/rtmutex.c
checking file kernel/smp.c
checking file kernel/softirq.c
checking file kernel/timer.c
checking file localversion-rt
$
Did you start with v3.2.53-rt75?
-- Steve
On 01/16/2014 03:36 PM, Pavel Vasilyev wrote:
> $ xz -cd /tmp/patch-3.2.53-rt75-rt76-rc1.patch.xz | patch -p1
> --dry-run
>
…
> checking file include/linux/smp.h Hunk #1 succeeded at 117 with
> fuzz 1 (offset 16 lines). Hunk #2 FAILED at 147. 1 out of 2 hunks
> FAILED
I just fetched the 3.2.53 tar file & Steven's patches and I applied
the incremental patch and the all-in-one patch and I don't see this
fallout.
Sebastian
16.01.2014 20:08, Steven Rostedt пишет:
> On Thu, 16 Jan 2014 18:36:32 +0400
> Pavel Vasilyev <[email protected]> wrote:
>
>>
>> $ xz -cd /tmp/patch-3.2.53-rt75-rt76-rc1.patch.xz | patch -p1 --dry-run
> Did you start with v3.2.53-rt75?
No, 3.2.54, already corrected.
--
Pavel.