Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-08 Thread Suzuki K. Poulose
On 08/09/15 10:37, Catalin Marinas wrote: On Tue, Sep 08, 2015 at 10:09:30AM +0100, Suzuki K. Poulose wrote: On 08/09/15 10:00, Catalin Marinas wrote: On Mon, Sep 07, 2015 at 06:41:50PM +0100, Suzuki K. Poulose wrote: On 07/09/15 18:15, Catalin Marinas wrote: On Mon, Sep 07, 2015 at

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-08 Thread Catalin Marinas
On Tue, Sep 08, 2015 at 10:09:30AM +0100, Suzuki K. Poulose wrote: > On 08/09/15 10:00, Catalin Marinas wrote: > >On Mon, Sep 07, 2015 at 06:41:50PM +0100, Suzuki K. Poulose wrote: > >>On 07/09/15 18:15, Catalin Marinas wrote: > >>>On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote:

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-08 Thread Suzuki K. Poulose
On 08/09/15 10:00, Catalin Marinas wrote: On Mon, Sep 07, 2015 at 06:41:50PM +0100, Suzuki K. Poulose wrote: On 07/09/15 18:15, Catalin Marinas wrote: On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote: On 14/08/15 19:28, Robert Richter wrote: +static void

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-08 Thread Catalin Marinas
On Mon, Sep 07, 2015 at 06:41:50PM +0100, Suzuki K. Poulose wrote: > On 07/09/15 18:15, Catalin Marinas wrote: > >On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote: > >>On 14/08/15 19:28, Robert Richter wrote: > >>>+static void gicv3_enable_quirks(void) > >>>+{ > >>>+ if

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-08 Thread Suzuki K. Poulose
On 08/09/15 10:00, Catalin Marinas wrote: On Mon, Sep 07, 2015 at 06:41:50PM +0100, Suzuki K. Poulose wrote: On 07/09/15 18:15, Catalin Marinas wrote: On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote: On 14/08/15 19:28, Robert Richter wrote: +static void

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-08 Thread Catalin Marinas
On Mon, Sep 07, 2015 at 06:41:50PM +0100, Suzuki K. Poulose wrote: > On 07/09/15 18:15, Catalin Marinas wrote: > >On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote: > >>On 14/08/15 19:28, Robert Richter wrote: > >>>+static void gicv3_enable_quirks(void) > >>>+{ > >>>+ if

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-08 Thread Catalin Marinas
On Tue, Sep 08, 2015 at 10:09:30AM +0100, Suzuki K. Poulose wrote: > On 08/09/15 10:00, Catalin Marinas wrote: > >On Mon, Sep 07, 2015 at 06:41:50PM +0100, Suzuki K. Poulose wrote: > >>On 07/09/15 18:15, Catalin Marinas wrote: > >>>On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote:

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-08 Thread Suzuki K. Poulose
On 08/09/15 10:37, Catalin Marinas wrote: On Tue, Sep 08, 2015 at 10:09:30AM +0100, Suzuki K. Poulose wrote: On 08/09/15 10:00, Catalin Marinas wrote: On Mon, Sep 07, 2015 at 06:41:50PM +0100, Suzuki K. Poulose wrote: On 07/09/15 18:15, Catalin Marinas wrote: On Mon, Sep 07, 2015 at

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Suzuki K. Poulose
On 07/09/15 18:15, Catalin Marinas wrote: On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote: On 14/08/15 19:28, Robert Richter wrote: diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index c52f7ba205b4..4211c39b8744 100644 ---

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Robert Richter
On 07.09.15 18:09:48, Marc Zyngier wrote: > On 07/09/15 17:54, Suzuki K. Poulose wrote: > > On 14/08/15 19:28, Robert Richter wrote: > >> From: Robert Richter > >> +static void gicv3_enable_quirks(void) > >> +{ > >> + if (cpus_have_cap(ARM64_WORKAROUND_CAVIUM_23154)) > >> +

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Catalin Marinas
On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote: > On 14/08/15 19:28, Robert Richter wrote: > >diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c > >index c52f7ba205b4..4211c39b8744 100644 > >--- a/drivers/irqchip/irq-gic-v3.c > >+++

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Marc Zyngier
On 07/09/15 17:54, Suzuki K. Poulose wrote: > On 14/08/15 19:28, Robert Richter wrote: >> From: Robert Richter >> >> This patch implements Cavium ThunderX erratum 23154. >> >> The gicv3 of ThunderX requires a modified version for reading the IAR >> status to ensure data synchronization. Since

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Suzuki K. Poulose
On 14/08/15 19:28, Robert Richter wrote: From: Robert Richter This patch implements Cavium ThunderX erratum 23154. The gicv3 of ThunderX requires a modified version for reading the IAR status to ensure data synchronization. Since this is in the fast-path and called with each interrupt,

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Suzuki K. Poulose
On 14/08/15 19:28, Robert Richter wrote: From: Robert Richter This patch implements Cavium ThunderX erratum 23154. The gicv3 of ThunderX requires a modified version for reading the IAR status to ensure data synchronization. Since this is in the fast-path and called with

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Marc Zyngier
On 07/09/15 17:54, Suzuki K. Poulose wrote: > On 14/08/15 19:28, Robert Richter wrote: >> From: Robert Richter >> >> This patch implements Cavium ThunderX erratum 23154. >> >> The gicv3 of ThunderX requires a modified version for reading the IAR >> status to ensure data

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Catalin Marinas
On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote: > On 14/08/15 19:28, Robert Richter wrote: > >diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c > >index c52f7ba205b4..4211c39b8744 100644 > >--- a/drivers/irqchip/irq-gic-v3.c > >+++

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Robert Richter
On 07.09.15 18:09:48, Marc Zyngier wrote: > On 07/09/15 17:54, Suzuki K. Poulose wrote: > > On 14/08/15 19:28, Robert Richter wrote: > >> From: Robert Richter > >> +static void gicv3_enable_quirks(void) > >> +{ > >> + if (cpus_have_cap(ARM64_WORKAROUND_CAVIUM_23154)) > >> +

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-09-07 Thread Suzuki K. Poulose
On 07/09/15 18:15, Catalin Marinas wrote: On Mon, Sep 07, 2015 at 05:54:06PM +0100, Suzuki K. Poulose wrote: On 14/08/15 19:28, Robert Richter wrote: diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index c52f7ba205b4..4211c39b8744 100644 ---

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-19 Thread Robert Richter
On 17.08.15 10:00:53, David Daney wrote: > On 08/14/2015 11:28 AM, Robert Richter wrote: > >+config CAVIUM_ERRATUM_23154 > >+bool "Cavium erratum 23154: Access to ICC_IAR1_EL1 is not sync'ed" > >+depends on ARCH_THUNDER > > None of the other errata depend on a specific ARCH_*. I think we

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-19 Thread Robert Richter
On 17.08.15 17:40:03, Catalin Marinas wrote: > On Fri, Aug 14, 2015 at 08:28:02PM +0200, Robert Richter wrote: > > +struct static_key is_cavium_thunderx = STATIC_KEY_INIT_FALSE; Will add the static ... > This could also be "static struct ...". BTW, the use of static_key > directly is deprecated,

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-19 Thread Robert Richter
On 17.08.15 10:00:53, David Daney wrote: On 08/14/2015 11:28 AM, Robert Richter wrote: +config CAVIUM_ERRATUM_23154 +bool Cavium erratum 23154: Access to ICC_IAR1_EL1 is not sync'ed +depends on ARCH_THUNDER None of the other errata depend on a specific ARCH_*. I think we should

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-19 Thread Robert Richter
On 17.08.15 17:40:03, Catalin Marinas wrote: On Fri, Aug 14, 2015 at 08:28:02PM +0200, Robert Richter wrote: +struct static_key is_cavium_thunderx = STATIC_KEY_INIT_FALSE; Will add the static ... This could also be static struct BTW, the use of static_key directly is deprecated, so

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-17 Thread David Daney
On 08/14/2015 11:28 AM, Robert Richter wrote: From: Robert Richter This patch implements Cavium ThunderX erratum 23154. The gicv3 of ThunderX requires a modified version for reading the IAR status to ensure data synchronization. Since this is in the fast-path and called with each interrupt,

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-17 Thread Catalin Marinas
On Fri, Aug 14, 2015 at 08:28:02PM +0200, Robert Richter wrote: > +struct static_key is_cavium_thunderx = STATIC_KEY_INIT_FALSE; This could also be "static struct ...". BTW, the use of static_key directly is deprecated, so just do: static DEFINE_STATIC_KEY_FALSE(is_cavium_thunderx); -- Catalin

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-17 Thread David Daney
On 08/14/2015 11:28 AM, Robert Richter wrote: From: Robert Richter rrich...@cavium.com This patch implements Cavium ThunderX erratum 23154. The gicv3 of ThunderX requires a modified version for reading the IAR status to ensure data synchronization. Since this is in the fast-path and called

Re: [PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-17 Thread Catalin Marinas
On Fri, Aug 14, 2015 at 08:28:02PM +0200, Robert Richter wrote: +struct static_key is_cavium_thunderx = STATIC_KEY_INIT_FALSE; This could also be static struct BTW, the use of static_key directly is deprecated, so just do: static DEFINE_STATIC_KEY_FALSE(is_cavium_thunderx); -- Catalin --

[PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-14 Thread Robert Richter
From: Robert Richter This patch implements Cavium ThunderX erratum 23154. The gicv3 of ThunderX requires a modified version for reading the IAR status to ensure data synchronization. Since this is in the fast-path and called with each interrupt, runtime patching is used using jump label

[PATCH v4 2/5] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

2015-08-14 Thread Robert Richter
From: Robert Richter rrich...@cavium.com This patch implements Cavium ThunderX erratum 23154. The gicv3 of ThunderX requires a modified version for reading the IAR status to ensure data synchronization. Since this is in the fast-path and called with each interrupt, runtime patching is used using