2014-07-14 20:04:38

by Steven Rostedt

[permalink] [raw]
Subject: [PATCH RT 0/3] Linux 3.10.47-rt50-rc1



Dear RT Folks,

This is the RT stable review cycle of patch 3.10.47-rt50-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 7/17/2014.

Enjoy,

-- Steve


To build 3.10.47-rt50-rc1 directly, the following patches should be applied:

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

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

http://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patch-3.10.47-rt50-rc1.patch.xz

You can also build from 3.10.47-rt49 by applying the incremental patch:

http://www.kernel.org/pub/linux/kernel/projects/rt/3.10/incr/patch-3.10.47-rt49-rt50-rc1.patch.xz


Changes from 3.10.47-rt49:

---


Steven Rostedt (1):
sched: Do not clear PF_NO_SETAFFINITY flag in select_fallback_rq()

Steven Rostedt (Red Hat) (1):
Linux 3.10.47-rt50-rc1

Thomas Gleixner (1):
workqueue: Prevent deadlock/stall on RT

----
kernel/sched/core.c | 13 +++++-------
kernel/workqueue.c | 61 +++++++++++++++++++++++++++++++++++++++++------------
localversion-rt | 2 +-
3 files changed, 54 insertions(+), 22 deletions(-)


2014-07-15 00:09:53

by Corey Minyard

[permalink] [raw]
Subject: Re: [PATCH RT 0/3] Linux 3.10.47-rt50-rc1

Can we get:

tracing-use-migrate_disable-to-prevent-beeing-pushed.patch

into 3.10, also?

Thanks,

-corey

On 07/14/2014 03:04 PM, Steven Rostedt wrote:
> Dear RT Folks,
>
> This is the RT stable review cycle of patch 3.10.47-rt50-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 7/17/2014.
>
> Enjoy,
>
> -- Steve
>
>
> To build 3.10.47-rt50-rc1 directly, the following patches should be applied:
>
> http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.tar.xz
>
> http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.10.47.xz
>
> http://www.kernel.org/pub/linux/kernel/projects/rt/3.10/patch-3.10.47-rt50-rc1.patch.xz
>
> You can also build from 3.10.47-rt49 by applying the incremental patch:
>
> http://www.kernel.org/pub/linux/kernel/projects/rt/3.10/incr/patch-3.10.47-rt49-rt50-rc1.patch.xz
>
>
> Changes from 3.10.47-rt49:
>
> ---
>
>
> Steven Rostedt (1):
> sched: Do not clear PF_NO_SETAFFINITY flag in select_fallback_rq()
>
> Steven Rostedt (Red Hat) (1):
> Linux 3.10.47-rt50-rc1
>
> Thomas Gleixner (1):
> workqueue: Prevent deadlock/stall on RT
>
> ----
> kernel/sched/core.c | 13 +++++-------
> kernel/workqueue.c | 61 +++++++++++++++++++++++++++++++++++++++++------------
> localversion-rt | 2 +-
> 3 files changed, 54 insertions(+), 22 deletions(-)
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2014-07-15 00:53:38

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH RT 0/3] Linux 3.10.47-rt50-rc1

On Mon, 14 Jul 2014 19:09:48 -0500
Corey Minyard <[email protected]> wrote:

> Can we get:
>
> tracing-use-migrate_disable-to-prevent-beeing-pushed.patch

Sure except that patch is buggy:

- preempt_disable();
+ migrate_disable();
/* The update must run on the CPU that is being updated. */
if (cpu_id == smp_processor_id() || !cpu_online(cpu_id))
rb_update_pages(cpu_buffer);
else {
- /*
- * Can not disable preemption for schedule_work_on()
- * on PREEMPT_RT.
- */
- preempt_enable();
schedule_work_on(cpu_id,
&cpu_buffer->update_pages_work);
wait_for_completion(&cpu_buffer->update_done);
- preempt_disable();
}
- preempt_enable();
+ migrate_enable();

migrate_disable() on non-PREEMPT_RT is preempt_disable(). You can't
call wait_or_completion with preemption disabled.

When that gets fixed in mainline -rt, I'll add it to the stable
branches too.

-- Steve



>
> into 3.10, also?
>

2014-07-16 14:31:23

by Corey Minyard

[permalink] [raw]
Subject: Re: [PATCH RT 0/3] Linux 3.10.47-rt50-rc1

On 07/14/2014 07:53 PM, Steven Rostedt wrote:
> On Mon, 14 Jul 2014 19:09:48 -0500
> Corey Minyard <[email protected]> wrote:
>
>> Can we get:
>>
>> tracing-use-migrate_disable-to-prevent-beeing-pushed.patch
> Sure except that patch is buggy:
>
> - preempt_disable();
> + migrate_disable();
> /* The update must run on the CPU that is being updated. */
> if (cpu_id == smp_processor_id() || !cpu_online(cpu_id))
> rb_update_pages(cpu_buffer);
> else {
> - /*
> - * Can not disable preemption for schedule_work_on()
> - * on PREEMPT_RT.
> - */
> - preempt_enable();
> schedule_work_on(cpu_id,
> &cpu_buffer->update_pages_work);
> wait_for_completion(&cpu_buffer->update_done);
> - preempt_disable();
> }
> - preempt_enable();
> + migrate_enable();
>
> migrate_disable() on non-PREEMPT_RT is preempt_disable(). You can't
> call wait_or_completion with preemption disabled.
>
> When that gets fixed in mainline -rt, I'll add it to the stable
> branches too.

I originally did a patch that just always did the else clause (the
schedule_work_on() and wait_for_completion()) on all CPUs. That seemed
to work just fine and simplifies the code a bit and gets rid of all the
preempt/migrate calls. You could try that approach, or I could submit
something if you liked.

-corey

>
> -- Steve
>
>
>
>> into 3.10, also?
>>

2014-07-16 15:22:33

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH RT 0/3] Linux 3.10.47-rt50-rc1

On Wed, 16 Jul 2014 09:31:17 -0500
Corey Minyard <[email protected]> wrote:


> I originally did a patch that just always did the else clause (the
> schedule_work_on() and wait_for_completion()) on all CPUs. That seemed
> to work just fine and simplifies the code a bit and gets rid of all the
> preempt/migrate calls. You could try that approach, or I could submit
> something if you liked.

Yeah, perhaps that's the way to go. But it needs to go to mainline
before it goes to -rt.

Can you resend it against my for-next branch.

Thanks,

-- Steve