All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Zyngier <maz@kernel.org>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: LAK <linux-arm-kernel@lists.infradead.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Will Deacon <will@kernel.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Russell King <linux@arm.linux.org.uk>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jason Cooper <jason@lakedaemon.net>,
	Sumit Garg <sumit.garg@linaro.org>,
	Valentin Schneider <Valentin.Schneider@arm.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Gregory Clement <gregory.clement@bootlin.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Saravana Kannan <saravanak@google.com>,
	Android Kernel Team <kernel-team@android.com>
Subject: Re: [PATCH v3 03/16] arm64: Allow IPIs to be handled as normal interrupts
Date: Tue, 27 Oct 2020 12:06:05 +0000	[thread overview]
Message-ID: <11951c39bc676b83def46150e58e8df3@kernel.org> (raw)
In-Reply-To: <CAKfTPtAfaTFXT5seyia=qwpX0BB7e6VpGo5iSYbF0JZwmC1nWg@mail.gmail.com>

On 2020-10-27 11:21, Vincent Guittot wrote:
> On Tue, 27 Oct 2020 at 11:50, Vincent Guittot
> <vincent.guittot@linaro.org> wrote:
>> 
>> On Tue, 27 Oct 2020 at 11:37, Marc Zyngier <maz@kernel.org> wrote:
>> >
>> > On 2020-10-27 10:12, Vincent Guittot wrote:
>> > > HI Marc,
>> > >
>> > > On Mon, 19 Oct 2020 at 17:43, Vincent Guittot
>> > > <vincent.guittot@linaro.org> wrote:
>> > >>
>> > >> On Mon, 19 Oct 2020 at 15:04, Marc Zyngier <maz@kernel.org> wrote:
>> > >> >
>> > >
>> > > ...
>> > >
>> > >> > >>
>> > >> > >> One of the major difference is that we end up, in some cases
>> > >> > >> (such as when performing IRQ time accounting on the scheduler
>> > >> > >> IPI), end up with nested irq_enter()/irq_exit() pairs.
>> > >> > >> Other than the (relatively small) overhead, there should be
>> > >> > >> no consequences to it (these pairs are designed to nest
>> > >> > >> correctly, and the accounting shouldn't be off).
>> > >> > >
>> > >> > > While rebasing on mainline, I have faced a performance regression for
>> > >> > > the benchmark:
>> > >> > > perf bench sched pipe
>> > >> > > on my arm64 dual quad core (hikey) and my 2 nodes x 112 CPUS (thx2)
>> > >> > >
>> > >> > > The regression comes from:
>> > >> > > commit: d3afc7f12987 ("arm64: Allow IPIs to be handled as normal
>> > >> > > interrupts")
>> > >> >
>> > >> > That's interesting, as this patch doesn't really change anything (most
>> > >> > of the potential overhead comes in later). The only potential overhead
>> > >> > I can see is that the scheduler_ipi() call is now wrapped around
>> > >> > irq_enter()/irq_exit().
>> > >> >
>> > >> > >
>> > >> > >           v5.9              + this patch
>> > >> > > hikey :   48818(+/- 0.31)   37503(+/- 0.15%)  -23.2%
>> > >> > > thx2  :  132410(+/- 1.72)  122646(+/- 1.92%)   -7.4%
>> > >> > >
>> > >> > > By + this patch,  I mean merging branch from this patch. Whereas
>> > >> > > merging the previous:
>> > >> > > commit: 83cfac95c018 ("genirq: Allow interrupts to be excluded from
>> > >> > > /proc/interrupts")
>> > >> > >  It doesn't show any regression
>> > >> >
>> > >> > Since you are running perf, can you spot where the overhead occurs?
>> > >
>> > > Any idea about the root cause of the regression ?
>> > > I have faced it on more arm64 platforms in the meantime
>> >
>> > two possible causes:
>> >
>> > (1) irq_enter/exit on the rescheduling IPI means we reschedule much more
>> > often
>> > (2) irq_domain lookups add some overhead.
>> >
>> > For (1), I have this series[1] which is ugly as sin and needs much more
>> > testing.
>> 
>> Ok, I'm going to test this series to see if it fixes the perf 
>> regression
> 
> You have spotted the root cause of the regression. We are back to ~1%
> performance diff on the hikey

Yeah. Only thing is that I can't look at this hack without vomiting...

         M.
-- 
Jazz is not dead. It just smells funny...

WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Sumit Garg <sumit.garg@linaro.org>,
	Android Kernel Team <kernel-team@android.com>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Russell King <linux@arm.linux.org.uk>,
	Jason Cooper <jason@lakedaemon.net>,
	Saravana Kannan <saravanak@google.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Gregory Clement <gregory.clement@bootlin.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Will Deacon <will@kernel.org>,
	Valentin Schneider <Valentin.Schneider@arm.com>,
	LAK <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 03/16] arm64: Allow IPIs to be handled as normal interrupts
Date: Tue, 27 Oct 2020 12:06:05 +0000	[thread overview]
Message-ID: <11951c39bc676b83def46150e58e8df3@kernel.org> (raw)
In-Reply-To: <CAKfTPtAfaTFXT5seyia=qwpX0BB7e6VpGo5iSYbF0JZwmC1nWg@mail.gmail.com>

On 2020-10-27 11:21, Vincent Guittot wrote:
> On Tue, 27 Oct 2020 at 11:50, Vincent Guittot
> <vincent.guittot@linaro.org> wrote:
>> 
>> On Tue, 27 Oct 2020 at 11:37, Marc Zyngier <maz@kernel.org> wrote:
>> >
>> > On 2020-10-27 10:12, Vincent Guittot wrote:
>> > > HI Marc,
>> > >
>> > > On Mon, 19 Oct 2020 at 17:43, Vincent Guittot
>> > > <vincent.guittot@linaro.org> wrote:
>> > >>
>> > >> On Mon, 19 Oct 2020 at 15:04, Marc Zyngier <maz@kernel.org> wrote:
>> > >> >
>> > >
>> > > ...
>> > >
>> > >> > >>
>> > >> > >> One of the major difference is that we end up, in some cases
>> > >> > >> (such as when performing IRQ time accounting on the scheduler
>> > >> > >> IPI), end up with nested irq_enter()/irq_exit() pairs.
>> > >> > >> Other than the (relatively small) overhead, there should be
>> > >> > >> no consequences to it (these pairs are designed to nest
>> > >> > >> correctly, and the accounting shouldn't be off).
>> > >> > >
>> > >> > > While rebasing on mainline, I have faced a performance regression for
>> > >> > > the benchmark:
>> > >> > > perf bench sched pipe
>> > >> > > on my arm64 dual quad core (hikey) and my 2 nodes x 112 CPUS (thx2)
>> > >> > >
>> > >> > > The regression comes from:
>> > >> > > commit: d3afc7f12987 ("arm64: Allow IPIs to be handled as normal
>> > >> > > interrupts")
>> > >> >
>> > >> > That's interesting, as this patch doesn't really change anything (most
>> > >> > of the potential overhead comes in later). The only potential overhead
>> > >> > I can see is that the scheduler_ipi() call is now wrapped around
>> > >> > irq_enter()/irq_exit().
>> > >> >
>> > >> > >
>> > >> > >           v5.9              + this patch
>> > >> > > hikey :   48818(+/- 0.31)   37503(+/- 0.15%)  -23.2%
>> > >> > > thx2  :  132410(+/- 1.72)  122646(+/- 1.92%)   -7.4%
>> > >> > >
>> > >> > > By + this patch,  I mean merging branch from this patch. Whereas
>> > >> > > merging the previous:
>> > >> > > commit: 83cfac95c018 ("genirq: Allow interrupts to be excluded from
>> > >> > > /proc/interrupts")
>> > >> > >  It doesn't show any regression
>> > >> >
>> > >> > Since you are running perf, can you spot where the overhead occurs?
>> > >
>> > > Any idea about the root cause of the regression ?
>> > > I have faced it on more arm64 platforms in the meantime
>> >
>> > two possible causes:
>> >
>> > (1) irq_enter/exit on the rescheduling IPI means we reschedule much more
>> > often
>> > (2) irq_domain lookups add some overhead.
>> >
>> > For (1), I have this series[1] which is ugly as sin and needs much more
>> > testing.
>> 
>> Ok, I'm going to test this series to see if it fixes the perf 
>> regression
> 
> You have spotted the root cause of the regression. We are back to ~1%
> performance diff on the hikey

Yeah. Only thing is that I can't look at this hack without vomiting...

         M.
-- 
Jazz is not dead. It just smells funny...

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-10-27 12:06 UTC|newest]

Thread overview: 170+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-01 14:43 [PATCH v3 00/16] arm/arm64: Turning IPIs into normal interrupts Marc Zyngier
2020-09-01 14:43 ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 01/16] genirq: Add fasteoi IPI flow Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 02/16] genirq: Allow interrupts to be excluded from /proc/interrupts Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 03/16] arm64: Allow IPIs to be handled as normal interrupts Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-11 15:05   ` Catalin Marinas
2020-09-11 15:05     ` Catalin Marinas
2020-10-19 12:42   ` Vincent Guittot
2020-10-19 12:42     ` Vincent Guittot
2020-10-19 13:04     ` Marc Zyngier
2020-10-19 13:04       ` Marc Zyngier
2020-10-19 15:43       ` Vincent Guittot
2020-10-19 15:43         ` Vincent Guittot
2020-10-19 16:00         ` Valentin Schneider
2020-10-19 16:00           ` Valentin Schneider
2020-10-27 10:12         ` Vincent Guittot
2020-10-27 10:12           ` Vincent Guittot
2020-10-27 10:37           ` Marc Zyngier
2020-10-27 10:37             ` Marc Zyngier
2020-10-27 10:50             ` Vincent Guittot
2020-10-27 10:50               ` Vincent Guittot
2020-10-27 11:21               ` Vincent Guittot
2020-10-27 11:21                 ` Vincent Guittot
2020-10-27 12:06                 ` Marc Zyngier [this message]
2020-10-27 12:06                   ` Marc Zyngier
2020-10-27 13:17                   ` Vincent Guittot
2020-10-27 13:17                     ` Vincent Guittot
     [not found]                     ` <c66367b0-e8a0-2b7b-13c3-c9413462357c@huawei.com>
2021-05-06 11:44                       ` Marc Zyngier
2021-05-06 11:44                         ` Marc Zyngier
2021-05-07  7:30                         ` He Ying
2021-05-07  7:30                           ` He Ying
2021-05-07  8:56                           ` Marc Zyngier
2021-05-07  8:56                             ` Marc Zyngier
2021-05-07  9:31                             ` He Ying
2021-05-07  9:31                               ` He Ying
2020-09-01 14:43 ` [PATCH v3 04/16] ARM: " Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 05/16] irqchip/gic-v3: Describe the SGI range Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 06/16] irqchip/gic-v3: Configure SGIs as standard interrupts Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 07/16] irqchip/gic: Refactor SMP configuration Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 08/16] irqchip/gic: Configure SGIs as standard interrupts Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
     [not found]   ` <CGME20200914130601eucas1p23ce276d168dee37909b22c75499e68da@eucas1p2.samsung.com>
2020-09-14 13:06     ` Marek Szyprowski
2020-09-14 13:06       ` Marek Szyprowski
2020-09-14 13:13       ` Marc Zyngier
2020-09-14 13:13         ` Marc Zyngier
2020-09-14 13:26         ` Marek Szyprowski
2020-09-14 13:26           ` Marek Szyprowski
2020-09-14 15:09           ` Marc Zyngier
2020-09-14 15:09             ` Marc Zyngier
2020-09-15  6:48             ` Marek Szyprowski
2020-09-15  6:48               ` Marek Szyprowski
2020-09-15  8:07               ` Marc Zyngier
2020-09-15  8:07                 ` Marc Zyngier
2020-09-15  8:35                 ` Marek Szyprowski
2020-09-15  8:35                   ` Marek Szyprowski
2020-09-15  9:48                   ` Marc Zyngier
2020-09-15  9:48                     ` Marc Zyngier
2020-09-16 14:16       ` Jon Hunter
2020-09-16 14:16         ` Jon Hunter
2020-09-16 15:10         ` Marc Zyngier
2020-09-16 15:10           ` Marc Zyngier
2020-09-16 15:46           ` Jon Hunter
2020-09-16 15:46             ` Jon Hunter
2020-09-16 15:55             ` Marc Zyngier
2020-09-16 15:55               ` Marc Zyngier
2020-09-16 15:58               ` Jon Hunter
2020-09-16 15:58                 ` Jon Hunter
2020-09-16 16:22                 ` Marc Zyngier
2020-09-16 16:22                   ` Marc Zyngier
2020-09-16 16:28                   ` Marc Zyngier
2020-09-16 16:28                     ` Marc Zyngier
2020-09-16 19:08                     ` Jon Hunter
2020-09-16 19:08                       ` Jon Hunter
2020-09-16 19:06                   ` Jon Hunter
2020-09-16 19:06                     ` Jon Hunter
2020-09-16 19:26                     ` Mikko Perttunen
2020-09-16 19:26                       ` Mikko Perttunen
2020-09-16 19:39                       ` Jon Hunter
2020-09-16 19:39                         ` Jon Hunter
2020-09-17  7:40           ` Linus Walleij
2020-09-17  7:40             ` Linus Walleij
2020-09-17  7:50             ` Marc Zyngier
2020-09-17  7:50               ` Marc Zyngier
2020-09-17  7:54               ` Jon Hunter
2020-09-17  7:54                 ` Jon Hunter
2020-09-17  8:45                 ` Marc Zyngier
2020-09-17  8:45                   ` Marc Zyngier
2020-09-17  8:49                   ` Jon Hunter
2020-09-17  8:49                     ` Jon Hunter
2020-09-17  8:54                     ` Marek Szyprowski
2020-09-17  8:54                       ` Marek Szyprowski
2020-09-17  9:09                       ` Jon Hunter
2020-09-17  9:09                         ` Jon Hunter
2020-09-17  9:13                         ` Marek Szyprowski
2020-09-17  9:13                           ` Marek Szyprowski
2020-09-17  9:29                           ` Marc Zyngier
2020-09-17  9:29                             ` Marc Zyngier
2020-09-17 14:53                       ` Jon Hunter
2020-09-17 14:53                         ` Jon Hunter
2020-09-17 18:24                         ` Jon Hunter
2020-09-17 18:24                           ` Jon Hunter
2020-09-18  8:24                           ` Marc Zyngier
2020-09-18  8:24                             ` Marc Zyngier
2020-09-17  8:56                     ` Marc Zyngier
2020-09-17  8:56                       ` Marc Zyngier
2020-09-17 10:11                     ` Linus Walleij
2020-09-17 10:11                       ` Linus Walleij
2020-09-16 14:03   ` Linus Walleij
2020-09-16 14:03     ` Linus Walleij
2020-09-16 14:14     ` Marc Zyngier
2020-09-16 14:14       ` Marc Zyngier
2020-09-18  9:58   ` James Morse
2020-09-18  9:58     ` James Morse
2020-09-18 10:21     ` Marc Zyngier
2020-09-18 10:21       ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 09/16] irqchip/gic-common: Don't enable SGIs by default Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 10/16] irqchip/bcm2836: Configure mailbox interrupts as standard interrupts Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
     [not found]   ` <CGME20200914143236eucas1p17e8849c67d01db2c5ebb3b6a126aebf4@eucas1p1.samsung.com>
2020-09-14 14:32     ` Marek Szyprowski
2020-09-14 14:32       ` Marek Szyprowski
2020-09-14 16:10       ` Marc Zyngier
2020-09-14 16:10         ` Marc Zyngier
2020-09-14 19:13         ` Marek Szyprowski
2020-09-14 19:13           ` Marek Szyprowski
2020-09-01 14:43 ` [PATCH v3 11/16] irqchip/hip04: Configure IPIs " Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 12/16] irqchip/armada-370-xp: " Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 13/16] arm64: Kill __smp_cross_call and co Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-11 15:06   ` Catalin Marinas
2020-09-11 15:06     ` Catalin Marinas
2020-09-01 14:43 ` [PATCH v3 14/16] arm64: Remove custom IRQ stat accounting Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-11 15:06   ` Catalin Marinas
2020-09-11 15:06     ` Catalin Marinas
2020-09-01 14:43 ` [PATCH v3 15/16] ARM: Kill __smp_cross_call and co Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-01 14:43 ` [PATCH v3 16/16] ARM: Remove custom IRQ stat accounting Marc Zyngier
2020-09-01 14:43   ` Marc Zyngier
2020-09-02  7:41   ` kernel test robot
2020-09-02  7:41     ` kernel test robot
2020-09-02  7:41     ` kernel test robot
2020-09-02 20:20     ` Marc Zyngier
2020-09-02 20:20       ` Marc Zyngier
2020-09-02 20:20       ` Marc Zyngier
2020-09-24  9:00   ` Guillaume Tucker
2020-09-24  9:00     ` Guillaume Tucker
2020-09-24  9:29     ` Marc Zyngier
2020-09-24  9:29       ` Marc Zyngier
2020-09-24 13:09       ` Guillaume Tucker
2020-09-24 13:09         ` Guillaume Tucker
2020-09-28  9:00         ` Guillaume Tucker
2020-09-28  9:00           ` Guillaume Tucker
2020-09-24 13:34     ` Fabio Estevam
2020-09-24 13:34       ` Fabio Estevam
2020-09-24 14:19       ` Guillaume Tucker
2020-09-24 14:19         ` Guillaume Tucker
2020-09-07  6:06 ` [PATCH v3 00/16] arm/arm64: Turning IPIs into normal interrupts hasegawa-hitomi
2020-09-07  6:06   ` hasegawa-hitomi
2020-09-16 16:54 ` Florian Fainelli
2020-09-16 16:54   ` Florian Fainelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=11951c39bc676b83def46150e58e8df3@kernel.org \
    --to=maz@kernel.org \
    --cc=Valentin.Schneider@arm.com \
    --cc=andrew@lunn.ch \
    --cc=catalin.marinas@arm.com \
    --cc=f.fainelli@gmail.com \
    --cc=gregory.clement@bootlin.com \
    --cc=jason@lakedaemon.net \
    --cc=kernel-team@android.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=saravanak@google.com \
    --cc=sumit.garg@linaro.org \
    --cc=tglx@linutronix.de \
    --cc=vincent.guittot@linaro.org \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.