2014-01-16 02:03:31

by Steven Rostedt

[permalink] [raw]
Subject: [PATCH RT 0/8] Linux 3.2.53-rt76-rc1


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(-)


2014-01-16 09:41:37

by Pavel Vasilyev

[permalink] [raw]
Subject: Re: [PATCH RT 0/8] Linux 3.2.53-rt76-rc1

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.


Attachments:
signature.asc (836.00 B)
OpenPGP digital signature

2014-01-16 14:18:51

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH RT 0/8] Linux 3.2.53-rt76-rc1

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

2014-01-16 14:36:56

by Pavel Vasilyev

[permalink] [raw]
Subject: Re: [PATCH RT 0/8] Linux 3.2.53-rt76-rc1

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.


Attachments:
signature.asc (836.00 B)
OpenPGP digital signature

2014-01-16 15:09:24

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH RT 0/8] Linux 3.2.53-rt76-rc1

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

2014-01-16 16:08:26

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH RT 0/8] Linux 3.2.53-rt76-rc1

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

Subject: Re: [PATCH RT 0/8] Linux 3.2.53-rt76-rc1

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

2014-01-16 17:19:49

by Pavel Vasilyev

[permalink] [raw]
Subject: Re: [PATCH RT 0/8] Linux 3.2.53-rt76-rc1

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.


Attachments:
signature.asc (836.00 B)
OpenPGP digital signature