linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RT 0/3] Linux 4.19.106-rt46-rc1
@ 2020-03-31 16:34 Steven Rostedt
  2020-03-31 16:34 ` [PATCH RT 1/3] lib/ubsan: Remove flags parameter from calls to ubsan_prologue() and ubsan_epilogue() Steven Rostedt
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-03-31 16:34 UTC (permalink / raw)
  To: linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Julia Cartwright, Daniel Wagner, Tom Zanussi,
	Srivatsa S. Bhat


Dear RT Folks,

This is the RT stable review cycle of patch 4.19.106-rt46-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/3/2020.

Enjoy,

-- Steve


To build 4.19.106-rt46-rc1 directly, the following patches should be applied:

  http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.tar.xz

  http://www.kernel.org/pub/linux/kernel/v4.x/patch-4.19.106.xz

  http://www.kernel.org/pub/linux/kernel/projects/rt/4.19/patch-4.19.106-rt46-rc1.patch.xz

You can also build from 4.19.106-rt45 by applying the incremental patch:

http://www.kernel.org/pub/linux/kernel/projects/rt/4.19/incr/patch-4.19.106-rt45-rt46-rc1.patch.xz


Changes from 4.19.106-rt45:

---


Steven Rostedt (VMware) (2):
      irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT
      Linux 4.19.106-rt46-rc1

Tiejun Chen (1):
      lib/ubsan: Remove flags parameter from calls to ubsan_prologue() and ubsan_epilogue()

----
 kernel/irq_work.c | 15 ++++++++-------
 lib/ubsan.c       |  5 ++---
 localversion-rt   |  2 +-
 3 files changed, 11 insertions(+), 11 deletions(-)

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

* [PATCH RT 1/3] lib/ubsan: Remove flags parameter from calls to ubsan_prologue() and ubsan_epilogue()
  2020-03-31 16:34 [PATCH RT 0/3] Linux 4.19.106-rt46-rc1 Steven Rostedt
@ 2020-03-31 16:34 ` Steven Rostedt
  2020-03-31 16:34 ` [PATCH RT 2/3] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT Steven Rostedt
  2020-03-31 16:34 ` [PATCH RT 3/3] Linux 4.19.106-rt46-rc1 Steven Rostedt
  2 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-03-31 16:34 UTC (permalink / raw)
  To: linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Julia Cartwright, Daniel Wagner, Tom Zanussi,
	Srivatsa S. Bhat, Tiejun Chen

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

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

From: Tiejun Chen <tiejunc@vmware.com>

Fails to build with CONFIG_UBSAN=y

lib/ubsan.c: In function '__ubsan_handle_vla_bound_not_positive':
lib/ubsan.c:348:2: error: too many arguments to function 'ubsan_prologue'
  ubsan_prologue(&data->location, &flags);
  ^~~~~~~~~~~~~~
lib/ubsan.c:146:13: note: declared here
 static void ubsan_prologue(struct source_location *location)
             ^~~~~~~~~~~~~~
lib/ubsan.c:353:2: error: too many arguments to function 'ubsan_epilogue'
  ubsan_epilogue(&flags);
  ^~~~~~~~~~~~~~
lib/ubsan.c:155:13: note: declared here
 static void ubsan_epilogue(void)
             ^~~~~~~~~~~~~~

Signed-off-by: Tiejun Chen <tiejunc@vmware.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 lib/ubsan.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/lib/ubsan.c b/lib/ubsan.c
index 5830cc9a2164..199c75e03469 100644
--- a/lib/ubsan.c
+++ b/lib/ubsan.c
@@ -339,18 +339,17 @@ EXPORT_SYMBOL(__ubsan_handle_type_mismatch_v1);
 void __ubsan_handle_vla_bound_not_positive(struct vla_bound_data *data,
 					void *bound)
 {
-	unsigned long flags;
 	char bound_str[VALUE_LENGTH];
 
 	if (suppress_report(&data->location))
 		return;
 
-	ubsan_prologue(&data->location, &flags);
+	ubsan_prologue(&data->location);
 
 	val_to_string(bound_str, sizeof(bound_str), data->type, bound);
 	pr_err("variable length array bound value %s <= 0\n", bound_str);
 
-	ubsan_epilogue(&flags);
+	ubsan_epilogue();
 }
 EXPORT_SYMBOL(__ubsan_handle_vla_bound_not_positive);
 
-- 
2.25.1



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

* [PATCH RT 2/3] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT
  2020-03-31 16:34 [PATCH RT 0/3] Linux 4.19.106-rt46-rc1 Steven Rostedt
  2020-03-31 16:34 ` [PATCH RT 1/3] lib/ubsan: Remove flags parameter from calls to ubsan_prologue() and ubsan_epilogue() Steven Rostedt
@ 2020-03-31 16:34 ` Steven Rostedt
  2020-04-02 17:22   ` Pavel Machek
  2020-03-31 16:34 ` [PATCH RT 3/3] Linux 4.19.106-rt46-rc1 Steven Rostedt
  2 siblings, 1 reply; 7+ messages in thread
From: Steven Rostedt @ 2020-03-31 16:34 UTC (permalink / raw)
  To: linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Julia Cartwright, Daniel Wagner, Tom Zanussi,
	Srivatsa S. Bhat, Pavel Machek

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

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

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

When CONFIG_PREEMPT_RT_FULL is not set, some of the checks for using
lazy_list are not properly made as the IRQ_WORK_LAZY is not checked. There's
two locations that need this update, so a use_lazy_list() helper function is
added and used in both locations.

Link: https://lore.kernel.org/r/20200321230028.GA22058@duo.ucw.cz
Reported-by: Pavel Machek <pavel@denx.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
---
 kernel/irq_work.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/kernel/irq_work.c b/kernel/irq_work.c
index 2940622da5b3..b6d9d35941ac 100644
--- a/kernel/irq_work.c
+++ b/kernel/irq_work.c
@@ -70,6 +70,12 @@ static void __irq_work_queue_local(struct irq_work *work, struct llist_head *lis
 		arch_irq_work_raise();
 }
 
+static inline bool use_lazy_list(struct irq_work *work)
+{
+	return (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ))
+		|| (work->flags & IRQ_WORK_LAZY);
+}
+
 /* Enqueue the irq work @work on the current CPU */
 bool irq_work_queue(struct irq_work *work)
 {
@@ -81,11 +87,10 @@ bool irq_work_queue(struct irq_work *work)
 
 	/* Queue the entry and raise the IPI if needed. */
 	preempt_disable();
-	if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ))
+	if (use_lazy_list(work))
 		list = this_cpu_ptr(&lazy_list);
 	else
 		list = this_cpu_ptr(&raised_list);
-
 	__irq_work_queue_local(work, list);
 	preempt_enable();
 
@@ -106,7 +111,6 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
 
 #else /* CONFIG_SMP: */
 	struct llist_head *list;
-	bool lazy_work, realtime = IS_ENABLED(CONFIG_PREEMPT_RT_FULL);
 
 	/* All work should have been flushed before going offline */
 	WARN_ON_ONCE(cpu_is_offline(cpu));
@@ -116,10 +120,7 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
 		return false;
 
 	preempt_disable();
-
-	lazy_work = work->flags & IRQ_WORK_LAZY;
-
-	if (lazy_work || (realtime && !(work->flags & IRQ_WORK_HARD_IRQ)))
+	if (use_lazy_list(work))
 		list = &per_cpu(lazy_list, cpu);
 	else
 		list = &per_cpu(raised_list, cpu);
-- 
2.25.1



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

* [PATCH RT 3/3] Linux 4.19.106-rt46-rc1
  2020-03-31 16:34 [PATCH RT 0/3] Linux 4.19.106-rt46-rc1 Steven Rostedt
  2020-03-31 16:34 ` [PATCH RT 1/3] lib/ubsan: Remove flags parameter from calls to ubsan_prologue() and ubsan_epilogue() Steven Rostedt
  2020-03-31 16:34 ` [PATCH RT 2/3] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT Steven Rostedt
@ 2020-03-31 16:34 ` Steven Rostedt
  2 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2020-03-31 16:34 UTC (permalink / raw)
  To: linux-kernel, linux-rt-users
  Cc: Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Julia Cartwright, Daniel Wagner, Tom Zanussi,
	Srivatsa S. Bhat

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

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

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

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

diff --git a/localversion-rt b/localversion-rt
index 38c40b21a885..2a08cf6d539b 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt45
+-rt46-rc1
-- 
2.25.1



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

* Re: [PATCH RT 2/3] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT
  2020-03-31 16:34 ` [PATCH RT 2/3] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT Steven Rostedt
@ 2020-04-02 17:22   ` Pavel Machek
  2020-04-02 17:39     ` Daniel Wagner
  0 siblings, 1 reply; 7+ messages in thread
From: Pavel Machek @ 2020-04-02 17:22 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: linux-kernel, linux-rt-users, Thomas Gleixner, Carsten Emde,
	Sebastian Andrzej Siewior, John Kacur, Julia Cartwright,
	Daniel Wagner, Tom Zanussi, Srivatsa S. Bhat, Pavel Machek

[-- Attachment #1: Type: text/plain, Size: 1077 bytes --]

Hi!

> 4.19.106-rt46-rc1 stable review patch.
> If anyone has any objections, please let me know.
> 
> ------------------
> 
> From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
> 
> When CONFIG_PREEMPT_RT_FULL is not set, some of the checks for using
> lazy_list are not properly made as the IRQ_WORK_LAZY is not checked. There's
> two locations that need this update, so a use_lazy_list() helper function is
> added and used in both locations.
> 
> Link: https://lore.kernel.org/r/20200321230028.GA22058@duo.ucw.cz
> Reported-by: Pavel Machek <pavel@denx.de>
> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

Looks okay to me, thank you.

Acked-by: Pavel Machek <pavel@denx.de>

I'm currently playing with 4.4.X branch, but I'll eventually test it.

Is it possible that 4.4.X branch needs similar patch? My code review
suggests so...

Best regards, 	      	   	 	     	  	     Pavel
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: [PATCH RT 2/3] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT
  2020-04-02 17:22   ` Pavel Machek
@ 2020-04-02 17:39     ` Daniel Wagner
  2020-04-03 21:55       ` Pavel Machek
  0 siblings, 1 reply; 7+ messages in thread
From: Daniel Wagner @ 2020-04-02 17:39 UTC (permalink / raw)
  To: Pavel Machek
  Cc: Steven Rostedt, linux-kernel, linux-rt-users, Thomas Gleixner,
	Carsten Emde, Sebastian Andrzej Siewior, John Kacur,
	Julia Cartwright, Tom Zanussi, Srivatsa S. Bhat

Hi Pavel,

On Thu, Apr 02, 2020 at 07:22:49PM +0200, Pavel Machek wrote:
> I'm currently playing with 4.4.X branch, but I'll eventually test it.
> 
> Is it possible that 4.4.X branch needs similar patch? My code review
> suggests so...

I was waiting for Steven to post the final patch. I'll pick it up for
the next v4.4-rt release.

Thanks,
Daniel

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

* Re: [PATCH RT 2/3] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT
  2020-04-02 17:39     ` Daniel Wagner
@ 2020-04-03 21:55       ` Pavel Machek
  0 siblings, 0 replies; 7+ messages in thread
From: Pavel Machek @ 2020-04-03 21:55 UTC (permalink / raw)
  To: Daniel Wagner
  Cc: Pavel Machek, Steven Rostedt, linux-kernel, linux-rt-users,
	Thomas Gleixner, Carsten Emde, Sebastian Andrzej Siewior,
	John Kacur, Julia Cartwright, Tom Zanussi, Srivatsa S. Bhat

[-- Attachment #1: Type: text/plain, Size: 2669 bytes --]

Hi!

> On Thu, Apr 02, 2020 at 07:22:49PM +0200, Pavel Machek wrote:
> > I'm currently playing with 4.4.X branch, but I'll eventually test it.
> > 
> > Is it possible that 4.4.X branch needs similar patch? My code review
> > suggests so...
> 
> I was waiting for Steven to post the final patch. I'll pick it up for
> the next v4.4-rt release.

It will not apply cleanly...

Here is version that applies to 4.4, and should compile. Not sure what
other branches it should be applied to.

Best regards,
								Pavel

-- cut --

From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
    
When CONFIG_PREEMPT_RT_FULL is not set, some of the checks for using
lazy_list are not properly made as the IRQ_WORK_LAZY is not checked. There's
two locations that need this update, so a use_lazy_list() helper function is
added and used in both locations.
    
Link: https://lore.kernel.org/r/20200321230028.GA22058@duo.ucw.cz
Reported-by: Pavel Machek <pavel@denx.de>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
[ported to 4.4]
Signed-off-by: Pavel Machek <pavel@denx.de>

diff --git a/kernel/irq_work.c b/kernel/irq_work.c
index 2899ba0d23d1..abc65de5d793 100644
--- a/kernel/irq_work.c
+++ b/kernel/irq_work.c
@@ -57,6 +57,12 @@ void __weak arch_irq_work_raise(void)
 	 */
 }
 
+static inline bool use_lazy_list(struct irq_work *work)
+{
+	return (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ))
+		|| (work->flags & IRQ_WORK_LAZY);
+}
+
 #ifdef CONFIG_SMP
 /*
  * Enqueue the irq_work @work on @cpu unless it's already pending
@@ -78,7 +84,7 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
 	if (!irq_work_claim(work))
 		return false;
 
-	if (IS_ENABLED(CONFIG_PREEMPT_RT_FULL) && !(work->flags & IRQ_WORK_HARD_IRQ))
+	if (use_lazy_list(work))
 		list = &per_cpu(lazy_list, cpu);
 	else
 		list = &per_cpu(raised_list, cpu);
@@ -95,7 +101,7 @@ EXPORT_SYMBOL_GPL(irq_work_queue_on);
 bool irq_work_queue(struct irq_work *work)
 {
 	struct llist_head *list;
-	bool lazy_work, realtime = IS_ENABLED(CONFIG_PREEMPT_RT_FULL);
+	int lazy_work;
 
 	/* Only queue if not already pending */
 	if (!irq_work_claim(work))
@@ -106,7 +112,7 @@ bool irq_work_queue(struct irq_work *work)
 
 	lazy_work = work->flags & IRQ_WORK_LAZY;
 
-	if (lazy_work || (realtime && !(work->flags & IRQ_WORK_HARD_IRQ)))
+	if (use_lazy_list(work))
 		list = this_cpu_ptr(&lazy_list);
 	else
 		list = this_cpu_ptr(&raised_list);

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

end of thread, other threads:[~2020-04-03 21:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-31 16:34 [PATCH RT 0/3] Linux 4.19.106-rt46-rc1 Steven Rostedt
2020-03-31 16:34 ` [PATCH RT 1/3] lib/ubsan: Remove flags parameter from calls to ubsan_prologue() and ubsan_epilogue() Steven Rostedt
2020-03-31 16:34 ` [PATCH RT 2/3] irq_work: Fix checking of IRQ_WORK_LAZY flag set on non PREEMPT_RT Steven Rostedt
2020-04-02 17:22   ` Pavel Machek
2020-04-02 17:39     ` Daniel Wagner
2020-04-03 21:55       ` Pavel Machek
2020-03-31 16:34 ` [PATCH RT 3/3] Linux 4.19.106-rt46-rc1 Steven Rostedt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).