On Wed, 2020-12-02 at 14:20 +, Mark Rutland wrote:
> External Email
>
> ---
> ---
> On Mon, Nov 23, 2020 at 05:58:22PM +0000, Alex Belits wrote:
> > From: Yuri Norov
> >
> > For nohz_full
On Wed, 2020-12-02 at 14:18 +, Mark Rutland wrote:
> External Email
>
> ---
> ---
> On Mon, Nov 23, 2020 at 05:57:42PM +0000, Alex Belits wrote:
> > Some drivers don't call functions that call
>
On Wed, 2020-12-02 at 14:02 +, Mark Rutland wrote:
> On Tue, Nov 24, 2020 at 05:40:49PM +0000, Alex Belits wrote:
> >
> > > I am having problems applying the patchset to today's linux-next.
> > >
> > > Which kernel should I be using ?
> &g
On Wed, 2020-12-02 at 13:59 +, Mark Rutland wrote:
> External Email
>
> ---
> ---
> Hi Alex,
>
> On Mon, Nov 23, 2020 at 05:58:06PM +, Alex Belits wrote:
> >
On Tue, 2020-11-24 at 00:21 +0100, Frederic Weisbecker wrote:
> On Mon, Nov 23, 2020 at 10:39:34PM +0000, Alex Belits wrote:
> >
> > This is different from timers. The original design was based on the
> > idea that every CPU should be able to enter kernel at any time and
&g
On Tue, 2020-11-24 at 08:36 -0800, Tom Rix wrote:
> External Email
>
> ---
> ---
>
> On 11/23/20 9:42 AM, Alex Belits wrote:
> > This is an update of task isolation work that was originally done
>
On Mon, 2020-11-23 at 23:29 +0100, Frederic Weisbecker wrote:
> External Email
>
> ---
> ---
> On Mon, Nov 23, 2020 at 05:58:42PM +0000, Alex Belits wrote:
> > From: Yuri Norov
> >
> > Make sure t
On Mon, 2020-11-23 at 23:13 +0100, Frederic Weisbecker wrote:
> External Email
>
> ---
> ---
> Hi Alex,
>
> On Mon, Nov 23, 2020 at 05:58:22PM +, Alex Belits wrote:
> > From: Yuri Norov
>
aking]
Signed-off-by: Alex Belits
---
kernel/trace/ring_buffer.c | 63 ++
1 file changed, 57 insertions(+), 6 deletions(-)
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index dc83b3fa9fe7..9e4fb3ed2af0 100644
--- a/kernel/trace/ring_buf
From: Yuri Norov
Make sure that kick_all_cpus_sync() does not call CPUs that are running
isolated tasks.
Signed-off-by: Yuri Norov
[abel...@marvell.com: use safe task_isolation_cpumask() implementation]
Signed-off-by: Alex Belits
---
kernel/smp.c | 14 +-
1 file changed, 13
dated, only exclude CPUs running isolated tasks]
Signed-off-by: Alex Belits
---
kernel/time/tick-sched.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index a213952541db..6c8679e200f0 100644
--- a/kernel/time/tick-sched.c
ollow this rule.
handle_domain_irq() -> task_isolation_kernel_enter()
do_handle_IPI() -> task_isolation_kernel_enter() (may be redundant)
nmi_enter() -> task_isolation_kernel_enter()
Signed-off-by: Chris Metcalf
[abel...@marvell.com: simplified to match kernel 5.10]
Signed-off-by: Alex Bel
Some drivers don't call functions that call
task_isolation_kernel_enter() in interrupt handlers. Call it
directly.
Signed-off-by: Alex Belits
---
drivers/irqchip/irq-armada-370-xp.c | 6 ++
drivers/irqchip/irq-gic-v3.c| 3 +++
drivers/irqchip/irq-gic.c | 3 +++
dr
-off-by: Alex Belits
---
include/linux/hardirq.h | 2 ++
include/linux/sched.h | 2 ++
kernel/context_tracking.c | 5 +
kernel/entry/common.c | 10 +-
kernel/irq/irqdesc.c | 5 +
5 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/include/linux/hardirq.h
to isolation bit in ll_isol_flags is visible to userspace as
/sys/devices/system/cpu/isolation_running, and can be used for
monitoring.
Signed-off-by: Chris Metcalf
Signed-off-by: Alex Belits
---
.../admin-guide/kernel-parameters.txt | 6 +
drivers/base/cpu.c
From: Chris Metcalf
This function checks to see if a vmstat worker is not running,
and the vmstat diffs don't require an update. The function is
called from the task-isolation code to see if we need to
actually do some work to quiet vmstat.
Signed-off-by: Chris Metcalf
Signed-off-by:
ion of the function that guarantees that the vmstat worker
will not run on the core on return from the function. Add a
quiet_vmstat_sync() function with that semantic.
Signed-off-by: Chris Metcalf
Signed-off-by: Alex Belits
---
include/linux/vmstat.h | 2 ++
mm/vmstat.c| 9
This is an update of task isolation work that was originally done by
Chris Metcalf and maintained by him until
November 2017. It is adapted to the current kernel and cleaned up to
implement its functionality in a more complete and cleaner manner.
Previous version is at
https://lore.kernel.org/net
On Sat, 2020-10-17 at 18:08 +0200, Thomas Gleixner wrote:
> On Sat, Oct 17 2020 at 01:08, Alex Belits wrote:
> > On Mon, 2020-10-05 at 14:52 -0400, Nitesh Narayan Lal wrote:
> > > On 10/4/20 7:14 PM, Frederic Weisbecker wrote:
> > I think that the goal of "finding sou
On Mon, 2020-10-05 at 14:52 -0400, Nitesh Narayan Lal wrote:
> On 10/4/20 7:14 PM, Frederic Weisbecker wrote:
> > On Sun, Oct 04, 2020 at 02:44:39PM +0000, Alex Belits wrote:
> > > On Thu, 2020-10-01 at 15:56 +0200, Frederic Weisbecker wrote:
>
On Tue, 2020-10-06 at 12:35 +0200, Frederic Weisbecker wrote:
> On Mon, Oct 05, 2020 at 02:52:49PM -0400, Nitesh Narayan Lal wrote:
> > On 10/4/20 7:14 PM, Frederic Weisbecker wrote:
> > > On Sun, Oct 04, 2020 at 02:44:39PM +, Alex Belits wrote:
> > >
> >
On Tue, 2020-10-06 at 23:41 +0200, Frederic Weisbecker wrote:
> On Sun, Oct 04, 2020 at 03:22:09PM +0000, Alex Belits wrote:
> > On Thu, 2020-10-01 at 16:44 +0200, Frederic Weisbecker wrote:
> > > > @@ -268,7 +269,8 @@ static void tick_nohz_full_kick(void)
>
On Mon, 2020-10-05 at 01:14 +0200, Frederic Weisbecker wrote:
> Speaking of which, I agree with Thomas that it's unnecessary.
> > > It's
> > > too much
> > > code and complexity. We can use the existing trace events and
> > > perform
> > > the
> > > analysis from userspace to find the source of the
On Thu, 2020-10-01 at 16:47 +0200, Frederic Weisbecker wrote:
> External Email
>
> ---
> ---
> On Wed, Jul 22, 2020 at 02:58:24PM +0000, Alex Belits wrote:
> > From: Yuri Norov
> >
> > If CPU r
On Thu, 2020-10-01 at 16:44 +0200, Frederic Weisbecker wrote:
> External Email
>
> ---
> ---
> On Wed, Jul 22, 2020 at 02:57:33PM +0000, Alex Belits wrote:
> > From: Yuri Norov
> >
> > For nohz_fu
On Thu, 2020-10-01 at 16:40 +0200, Frederic Weisbecker wrote:
> External Email
>
> ---
> ---
> On Wed, Jul 22, 2020 at 02:49:49PM +0000, Alex Belits wrote:
> > +/**
> > + * task_isolation_kernel_ent
On Thu, 2020-10-01 at 15:56 +0200, Frederic Weisbecker wrote:
> External Email
>
> ---
> ---
> On Wed, Jul 22, 2020 at 02:49:49PM +0000, Alex Belits wrote:
> > +/*
> > + * Description of the last two t
On Thu, 2020-07-23 at 23:44 +0200, Thomas Gleixner wrote:
> External Email
>
> ---
> ---
> Alex Belits writes:
> > On Thu, 2020-07-23 at 17:49 +0200, Peter Zijlstra wrote:
> > > 'What does
On Thu, 2020-07-23 at 17:49 +0200, Peter Zijlstra wrote:
>
> 'What does noinstr mean? and why do we have it" -- don't dare touch
> the
> entry code until you can answer that.
noinstr disables instrumentation, so there would not be calls and
dependencies on other parts of the kernel when it's not
On Thu, 2020-07-23 at 17:48 +0200, Peter Zijlstra wrote:
> On Thu, Jul 23, 2020 at 03:41:46PM +0000, Alex Belits wrote:
> > On Thu, 2020-07-23 at 16:29 +0200, Peter Zijlstra wrote:
> > > .
> > >
> > > This.. as presented it is an absolutely unreviewable pile o
On Thu, 2020-07-23 at 16:29 +0200, Peter Zijlstra wrote:
> .
>
> This.. as presented it is an absolutely unreviewable pile of junk. It
> presents code witout any coherent problem description and analysis.
> And
> the patches are not split sanely either.
There is a more complete and slightly outd
On Thu, 2020-07-23 at 15:17 +0200, Thomas Gleixner wrote:
>
> Without going into details of the individual patches, let me give you a
> high level view of this series:
>
> 1) Entry code handling:
>
> That's completely broken vs. the careful ordering and instrumentation
> protection o
From: Yuri Norov
Make sure that kick_all_cpus_sync() does not call CPUs that are running
isolated tasks.
Signed-off-by: Yuri Norov
[abel...@marvell.com: use safe task_isolation_cpumask() implementation]
Signed-off-by: Alex Belits
---
kernel/smp.c | 14 +-
1 file changed, 13
aking]
Signed-off-by: Alex Belits
---
kernel/trace/ring_buffer.c | 63 ++
1 file changed, 57 insertions(+), 6 deletions(-)
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index 00867ff82412..22d4731f0def 100644
--- a/kernel/trace/ring_buf
h, backlog flushing is enqueued only on non-isolated CPUs.
Signed-off-by: Yuri Norov
[abel...@marvell.com: use safe task_isolation_on_cpu() implementation]
Signed-off-by: Alex Belits
---
net/core/dev.c | 7 ++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/net/core/dev.c b/net/
odifications]
[abel...@marvell.com: modified for kernel 5.6, added isolation cleanup]
Signed-off-by: Alex Belits
---
arch/arm/Kconfig | 1 +
arch/arm/include/asm/barrier.h | 2 ++
arch/arm/include/asm/thread_info.h | 10 +++---
arch/arm/kernel/entry-common.S |
dated, only exclude CPUs running isolated tasks]
Signed-off-by: Alex Belits
---
kernel/time/tick-sched.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 6e4cd8459f05..2f82a6daf8fc 100644
--- a/kernel/time/tick-sched.c
most call handle_domain_irq()
or handle_IPI()
There is a separate patch for irqchips that do not follow this rule.
handle_domain_irq() -> task_isolation_kernel_enter()
handle_IPI() -> task_isolation_kernel_enter()
nmi_enter() -> task_isolation_kernel_enter()
Signed-off-by: Chris Metca
()
xen_call_function_interrupt()
xen_call_function_single_interrupt()
xen_irq_work_interrupt()
Signed-off-by: Chris Metcalf
[abel...@marvell.com: adapted for kernel 5.8]
Signed-off-by: Alex Belits
---
arch/x86/Kconfig | 1 +
arch/x86/entry/common.c| 20 +++-
arch/x86
Some drivers don't call functions that call
task_isolation_kernel_enter() in interrupt handlers. Call it
directly.
Signed-off-by: Alex Belits
---
drivers/irqchip/irq-armada-370-xp.c | 6 ++
drivers/irqchip/irq-gic-v3.c| 3 +++
drivers/irqchip/irq-gic.c | 3 +++
dr
xen_evtchn_do_upcall() should call task_isolation_kernel_enter()
to indicate that isolation is broken and perform synchronization.
Signed-off-by: Alex Belits
---
drivers/xen/events/events_base.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/xen/events/events_base.c b/drivers
level flags handling]
Signed-off-by: Alex Belits
---
include/linux/hardirq.h | 2 ++
include/linux/sched.h | 2 ++
kernel/context_tracking.c | 4
kernel/irq/irqdesc.c | 13 +
kernel/smp.c | 6 +-
5 files changed, 26 insertions(+), 1 deletion(-)
diff -
ask corresponding
to isolation bit in ll_isol_flags is visible to userspace as
/sys/devices/system/cpu/isolation_running, and can be used for
monitoring.
Separate patches that follow provide these changes for x86, arm,
and arm64 architectures, xen and irqchip drivers.
Signed-off-by: Alex Belits
---
..
x27;t require an update. The function is
called from the task-isolation code to see if we need to
actually do some work to quiet vmstat.
Signed-off-by: Chris Metcalf
Signed-off-by: Alex Belits
---
include/linux/vmstat.h | 2 ++
mm/vmstat.c| 10 ++
2 files changed, 12 inser
guarantees that the vmstat worker
will not run on the core on return from the function. Add a
quiet_vmstat_sync() function with that semantic.
Signed-off-by: Chris Metcalf
Signed-off-by: Alex Belits
---
include/linux/vmstat.h | 2 ++
mm/vmstat.c| 9 +
2 files changed, 11
This is a new version of task isolation implementation. Previous version is at
https://lore.kernel.org/lkml/07c25c246c55012981ec0296eee23e68c719333a.ca...@marvell.com/
Mostly this covers race conditions prevention on breaking isolation. Early
after kernel entry,
task_isolation_enter() is called t
46 matches
Mail list logo