* Re: [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
@ 2021-05-25 23:01 kernel test robot
0 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2021-05-25 23:01 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 4226 bytes --]
CC: kbuild-all(a)lists.01.org
CC: clang-built-linux(a)googlegroups.com
In-Reply-To: <20210525173255.620606-3-valentin.schneider@arm.com>
References: <20210525173255.620606-3-valentin.schneider@arm.com>
TO: Valentin Schneider <valentin.schneider@arm.com>
Hi Valentin,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on tip/irq/core]
[also build test WARNING on linux/master soc/for-next linus/master v5.13-rc3 next-20210525]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Valentin-Schneider/irqchip-irq-gic-Optimize-masking-by-leveraging-EOImode-1/20210526-013542
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 006ae1970a8cde1d3e92da69b324d12880133a13
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: x86_64-randconfig-b001-20210525 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 99155e913e9bad5f7f8a247f8bb3a3ff3da74af1)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# https://github.com/0day-ci/linux/commit/9cb26d40715c7a84d90accb09d808141446dd270
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Valentin-Schneider/irqchip-irq-gic-Optimize-masking-by-leveraging-EOImode-1/20210526-013542
git checkout 9cb26d40715c7a84d90accb09d808141446dd270
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> kernel/irq/chip.c:411:6: warning: no previous prototype for function 'ack_irq' [-Wmissing-prototypes]
void ack_irq(struct irq_desc *desc)
^
kernel/irq/chip.c:411:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void ack_irq(struct irq_desc *desc)
^
static
>> kernel/irq/chip.c:419:6: warning: no previous prototype for function 'eoi_irq' [-Wmissing-prototypes]
void eoi_irq(struct irq_desc *desc)
^
kernel/irq/chip.c:419:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void eoi_irq(struct irq_desc *desc)
^
static
2 warnings generated.
vim +/ack_irq +411 kernel/irq/chip.c
31d9d9b6d83030 Marc Zyngier 2011-09-23 410
9cb26d40715c7a Valentin Schneider 2021-05-25 @411 void ack_irq(struct irq_desc *desc)
9cb26d40715c7a Valentin Schneider 2021-05-25 412 {
9cb26d40715c7a Valentin Schneider 2021-05-25 413 desc->irq_data.chip->irq_ack(&desc->irq_data);
9cb26d40715c7a Valentin Schneider 2021-05-25 414
9cb26d40715c7a Valentin Schneider 2021-05-25 415 if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
9cb26d40715c7a Valentin Schneider 2021-05-25 416 irq_state_set_flow_masked(desc);
9cb26d40715c7a Valentin Schneider 2021-05-25 417 }
9cb26d40715c7a Valentin Schneider 2021-05-25 418
9cb26d40715c7a Valentin Schneider 2021-05-25 @419 void eoi_irq(struct irq_desc *desc)
9cb26d40715c7a Valentin Schneider 2021-05-25 420 {
9cb26d40715c7a Valentin Schneider 2021-05-25 421 desc->irq_data.chip->irq_eoi(&desc->irq_data);
9cb26d40715c7a Valentin Schneider 2021-05-25 422
9cb26d40715c7a Valentin Schneider 2021-05-25 423 if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
9cb26d40715c7a Valentin Schneider 2021-05-25 424 irq_state_clr_flow_masked(desc);
9cb26d40715c7a Valentin Schneider 2021-05-25 425 }
9cb26d40715c7a Valentin Schneider 2021-05-25 426
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 31446 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
2021-05-27 10:58 ` Marc Zyngier
@ 2021-06-01 10:25 ` Valentin Schneider
-1 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2021-06-01 10:25 UTC (permalink / raw)
To: Marc Zyngier
Cc: linux-kernel, linux-arm-kernel, Thomas Gleixner,
Lorenzo Pieralisi, Vincenzo Frascino
On 27/05/21 11:58, Marc Zyngier wrote:
> On Thu, 27 May 2021 11:55:50 +0100,
> Marc Zyngier <maz@kernel.org> wrote:
>>
>> On Tue, 25 May 2021 18:32:47 +0100,
>> Valentin Schneider <valentin.schneider@arm.com> wrote:
>> > diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
>> > index b6c1cceddec0..090bd7868845 100644
>> > --- a/kernel/irq/internals.h
>> > +++ b/kernel/irq/internals.h
>> > @@ -87,6 +87,8 @@ extern void irq_enable(struct irq_desc *desc);
>> > extern void irq_disable(struct irq_desc *desc);
>> > extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
>> > extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
>> > +extern void irq_ack(struct irq_desc *desc);
>> > +extern void irq_eoi(struct irq_desc *desc);
>>
>> Nit: we have {un,}mask_irq, but you add irq_{ack,eoi}. It'd be good to
>> have some naming consistency (yes, this may/will clash with existing
>> code, but we can fix that as well).
>
> Actually, the helpers do have the right naming, but the internal
> declarations are the ones that are wrong...
>
Doh!
> M.
>
> --
> Without deviation from the norm, progress is not possible.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
@ 2021-06-01 10:25 ` Valentin Schneider
0 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2021-06-01 10:25 UTC (permalink / raw)
To: Marc Zyngier
Cc: linux-kernel, linux-arm-kernel, Thomas Gleixner,
Lorenzo Pieralisi, Vincenzo Frascino
On 27/05/21 11:58, Marc Zyngier wrote:
> On Thu, 27 May 2021 11:55:50 +0100,
> Marc Zyngier <maz@kernel.org> wrote:
>>
>> On Tue, 25 May 2021 18:32:47 +0100,
>> Valentin Schneider <valentin.schneider@arm.com> wrote:
>> > diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
>> > index b6c1cceddec0..090bd7868845 100644
>> > --- a/kernel/irq/internals.h
>> > +++ b/kernel/irq/internals.h
>> > @@ -87,6 +87,8 @@ extern void irq_enable(struct irq_desc *desc);
>> > extern void irq_disable(struct irq_desc *desc);
>> > extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
>> > extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
>> > +extern void irq_ack(struct irq_desc *desc);
>> > +extern void irq_eoi(struct irq_desc *desc);
>>
>> Nit: we have {un,}mask_irq, but you add irq_{ack,eoi}. It'd be good to
>> have some naming consistency (yes, this may/will clash with existing
>> code, but we can fix that as well).
>
> Actually, the helpers do have the right naming, but the internal
> declarations are the ones that are wrong...
>
Doh!
> M.
>
> --
> Without deviation from the norm, progress is not possible.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
2021-05-27 10:55 ` Marc Zyngier
@ 2021-05-27 10:58 ` Marc Zyngier
-1 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2021-05-27 10:58 UTC (permalink / raw)
To: Valentin Schneider
Cc: linux-kernel, linux-arm-kernel, Thomas Gleixner,
Lorenzo Pieralisi, Vincenzo Frascino
On Thu, 27 May 2021 11:55:50 +0100,
Marc Zyngier <maz@kernel.org> wrote:
>
> On Tue, 25 May 2021 18:32:47 +0100,
> Valentin Schneider <valentin.schneider@arm.com> wrote:
> >
> > The newly-added IRQCHIP_AUTOMASKS_FLOW flag requires some additional
> > bookkeeping around chip->{irq_ack, irq_eoi}() calls. Define wrappers around
> > those chip callbacks to drive the IRQD_IRQ_FLOW_MASKED state of an IRQ when
> > the chip has the IRQCHIP_AUTOMASKS_FLOW flag.
> >
> > Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
> > ---
> > kernel/irq/chip.c | 16 ++++++++++++++++
> > kernel/irq/internals.h | 2 ++
> > 2 files changed, 18 insertions(+)
> >
> > diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
> > index 21a21baa1366..793dbd8307b9 100644
> > --- a/kernel/irq/chip.c
> > +++ b/kernel/irq/chip.c
> > @@ -408,6 +408,22 @@ void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu)
> > cpumask_clear_cpu(cpu, desc->percpu_enabled);
> > }
> >
> > +void ack_irq(struct irq_desc *desc)
> > +{
> > + desc->irq_data.chip->irq_ack(&desc->irq_data);
> > +
> > + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
> > + irq_state_set_flow_masked(desc);
> > +}
> > +
> > +void eoi_irq(struct irq_desc *desc)
> > +{
> > + desc->irq_data.chip->irq_eoi(&desc->irq_data);
> > +
> > + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
> > + irq_state_clr_flow_masked(desc);
> > +}
> > +
> > static inline void mask_ack_irq(struct irq_desc *desc)
> > {
> > if (desc->irq_data.chip->irq_mask_ack) {
> > diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
> > index b6c1cceddec0..090bd7868845 100644
> > --- a/kernel/irq/internals.h
> > +++ b/kernel/irq/internals.h
> > @@ -87,6 +87,8 @@ extern void irq_enable(struct irq_desc *desc);
> > extern void irq_disable(struct irq_desc *desc);
> > extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
> > extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
> > +extern void irq_ack(struct irq_desc *desc);
> > +extern void irq_eoi(struct irq_desc *desc);
>
> Nit: we have {un,}mask_irq, but you add irq_{ack,eoi}. It'd be good to
> have some naming consistency (yes, this may/will clash with existing
> code, but we can fix that as well).
Actually, the helpers do have the right naming, but the internal
declarations are the ones that are wrong...
M.
--
Without deviation from the norm, progress is not possible.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
@ 2021-05-27 10:58 ` Marc Zyngier
0 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2021-05-27 10:58 UTC (permalink / raw)
To: Valentin Schneider
Cc: linux-kernel, linux-arm-kernel, Thomas Gleixner,
Lorenzo Pieralisi, Vincenzo Frascino
On Thu, 27 May 2021 11:55:50 +0100,
Marc Zyngier <maz@kernel.org> wrote:
>
> On Tue, 25 May 2021 18:32:47 +0100,
> Valentin Schneider <valentin.schneider@arm.com> wrote:
> >
> > The newly-added IRQCHIP_AUTOMASKS_FLOW flag requires some additional
> > bookkeeping around chip->{irq_ack, irq_eoi}() calls. Define wrappers around
> > those chip callbacks to drive the IRQD_IRQ_FLOW_MASKED state of an IRQ when
> > the chip has the IRQCHIP_AUTOMASKS_FLOW flag.
> >
> > Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
> > ---
> > kernel/irq/chip.c | 16 ++++++++++++++++
> > kernel/irq/internals.h | 2 ++
> > 2 files changed, 18 insertions(+)
> >
> > diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
> > index 21a21baa1366..793dbd8307b9 100644
> > --- a/kernel/irq/chip.c
> > +++ b/kernel/irq/chip.c
> > @@ -408,6 +408,22 @@ void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu)
> > cpumask_clear_cpu(cpu, desc->percpu_enabled);
> > }
> >
> > +void ack_irq(struct irq_desc *desc)
> > +{
> > + desc->irq_data.chip->irq_ack(&desc->irq_data);
> > +
> > + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
> > + irq_state_set_flow_masked(desc);
> > +}
> > +
> > +void eoi_irq(struct irq_desc *desc)
> > +{
> > + desc->irq_data.chip->irq_eoi(&desc->irq_data);
> > +
> > + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
> > + irq_state_clr_flow_masked(desc);
> > +}
> > +
> > static inline void mask_ack_irq(struct irq_desc *desc)
> > {
> > if (desc->irq_data.chip->irq_mask_ack) {
> > diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
> > index b6c1cceddec0..090bd7868845 100644
> > --- a/kernel/irq/internals.h
> > +++ b/kernel/irq/internals.h
> > @@ -87,6 +87,8 @@ extern void irq_enable(struct irq_desc *desc);
> > extern void irq_disable(struct irq_desc *desc);
> > extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
> > extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
> > +extern void irq_ack(struct irq_desc *desc);
> > +extern void irq_eoi(struct irq_desc *desc);
>
> Nit: we have {un,}mask_irq, but you add irq_{ack,eoi}. It'd be good to
> have some naming consistency (yes, this may/will clash with existing
> code, but we can fix that as well).
Actually, the helpers do have the right naming, but the internal
declarations are the ones that are wrong...
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
2021-05-25 17:32 ` Valentin Schneider
@ 2021-05-27 10:55 ` Marc Zyngier
-1 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2021-05-27 10:55 UTC (permalink / raw)
To: Valentin Schneider
Cc: linux-kernel, linux-arm-kernel, Thomas Gleixner,
Lorenzo Pieralisi, Vincenzo Frascino
On Tue, 25 May 2021 18:32:47 +0100,
Valentin Schneider <valentin.schneider@arm.com> wrote:
>
> The newly-added IRQCHIP_AUTOMASKS_FLOW flag requires some additional
> bookkeeping around chip->{irq_ack, irq_eoi}() calls. Define wrappers around
> those chip callbacks to drive the IRQD_IRQ_FLOW_MASKED state of an IRQ when
> the chip has the IRQCHIP_AUTOMASKS_FLOW flag.
>
> Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
> ---
> kernel/irq/chip.c | 16 ++++++++++++++++
> kernel/irq/internals.h | 2 ++
> 2 files changed, 18 insertions(+)
>
> diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
> index 21a21baa1366..793dbd8307b9 100644
> --- a/kernel/irq/chip.c
> +++ b/kernel/irq/chip.c
> @@ -408,6 +408,22 @@ void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu)
> cpumask_clear_cpu(cpu, desc->percpu_enabled);
> }
>
> +void ack_irq(struct irq_desc *desc)
> +{
> + desc->irq_data.chip->irq_ack(&desc->irq_data);
> +
> + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
> + irq_state_set_flow_masked(desc);
> +}
> +
> +void eoi_irq(struct irq_desc *desc)
> +{
> + desc->irq_data.chip->irq_eoi(&desc->irq_data);
> +
> + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
> + irq_state_clr_flow_masked(desc);
> +}
> +
> static inline void mask_ack_irq(struct irq_desc *desc)
> {
> if (desc->irq_data.chip->irq_mask_ack) {
> diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
> index b6c1cceddec0..090bd7868845 100644
> --- a/kernel/irq/internals.h
> +++ b/kernel/irq/internals.h
> @@ -87,6 +87,8 @@ extern void irq_enable(struct irq_desc *desc);
> extern void irq_disable(struct irq_desc *desc);
> extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
> extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
> +extern void irq_ack(struct irq_desc *desc);
> +extern void irq_eoi(struct irq_desc *desc);
Nit: we have {un,}mask_irq, but you add irq_{ack,eoi}. It'd be good to
have some naming consistency (yes, this may/will clash with existing
code, but we can fix that as well).
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
@ 2021-05-27 10:55 ` Marc Zyngier
0 siblings, 0 replies; 10+ messages in thread
From: Marc Zyngier @ 2021-05-27 10:55 UTC (permalink / raw)
To: Valentin Schneider
Cc: linux-kernel, linux-arm-kernel, Thomas Gleixner,
Lorenzo Pieralisi, Vincenzo Frascino
On Tue, 25 May 2021 18:32:47 +0100,
Valentin Schneider <valentin.schneider@arm.com> wrote:
>
> The newly-added IRQCHIP_AUTOMASKS_FLOW flag requires some additional
> bookkeeping around chip->{irq_ack, irq_eoi}() calls. Define wrappers around
> those chip callbacks to drive the IRQD_IRQ_FLOW_MASKED state of an IRQ when
> the chip has the IRQCHIP_AUTOMASKS_FLOW flag.
>
> Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
> ---
> kernel/irq/chip.c | 16 ++++++++++++++++
> kernel/irq/internals.h | 2 ++
> 2 files changed, 18 insertions(+)
>
> diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
> index 21a21baa1366..793dbd8307b9 100644
> --- a/kernel/irq/chip.c
> +++ b/kernel/irq/chip.c
> @@ -408,6 +408,22 @@ void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu)
> cpumask_clear_cpu(cpu, desc->percpu_enabled);
> }
>
> +void ack_irq(struct irq_desc *desc)
> +{
> + desc->irq_data.chip->irq_ack(&desc->irq_data);
> +
> + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
> + irq_state_set_flow_masked(desc);
> +}
> +
> +void eoi_irq(struct irq_desc *desc)
> +{
> + desc->irq_data.chip->irq_eoi(&desc->irq_data);
> +
> + if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
> + irq_state_clr_flow_masked(desc);
> +}
> +
> static inline void mask_ack_irq(struct irq_desc *desc)
> {
> if (desc->irq_data.chip->irq_mask_ack) {
> diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
> index b6c1cceddec0..090bd7868845 100644
> --- a/kernel/irq/internals.h
> +++ b/kernel/irq/internals.h
> @@ -87,6 +87,8 @@ extern void irq_enable(struct irq_desc *desc);
> extern void irq_disable(struct irq_desc *desc);
> extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
> extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
> +extern void irq_ack(struct irq_desc *desc);
> +extern void irq_eoi(struct irq_desc *desc);
Nit: we have {un,}mask_irq, but you add irq_{ack,eoi}. It'd be good to
have some naming consistency (yes, this may/will clash with existing
code, but we can fix that as well).
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
2021-05-25 17:32 ` Valentin Schneider
(?)
@ 2021-05-25 20:54 ` kernel test robot
-1 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2021-05-25 20:54 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 2589 bytes --]
Hi Valentin,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on tip/irq/core]
[also build test WARNING on linux/master soc/for-next linus/master v5.13-rc3 next-20210525]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Valentin-Schneider/irqchip-irq-gic-Optimize-masking-by-leveraging-EOImode-1/20210526-013542
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 006ae1970a8cde1d3e92da69b324d12880133a13
config: ia64-randconfig-r034-20210525 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/9cb26d40715c7a84d90accb09d808141446dd270
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Valentin-Schneider/irqchip-irq-gic-Optimize-masking-by-leveraging-EOImode-1/20210526-013542
git checkout 9cb26d40715c7a84d90accb09d808141446dd270
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> kernel/irq/chip.c:411:6: warning: no previous prototype for 'ack_irq' [-Wmissing-prototypes]
411 | void ack_irq(struct irq_desc *desc)
| ^~~~~~~
>> kernel/irq/chip.c:419:6: warning: no previous prototype for 'eoi_irq' [-Wmissing-prototypes]
419 | void eoi_irq(struct irq_desc *desc)
| ^~~~~~~
vim +/ack_irq +411 kernel/irq/chip.c
410
> 411 void ack_irq(struct irq_desc *desc)
412 {
413 desc->irq_data.chip->irq_ack(&desc->irq_data);
414
415 if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
416 irq_state_set_flow_masked(desc);
417 }
418
> 419 void eoi_irq(struct irq_desc *desc)
420 {
421 desc->irq_data.chip->irq_eoi(&desc->irq_data);
422
423 if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
424 irq_state_clr_flow_masked(desc);
425 }
426
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 38143 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
2021-05-25 17:32 [RFC PATCH v2 00/10] irqchip/irq-gic: Optimize masking by leveraging EOImode=1 Valentin Schneider
@ 2021-05-25 17:32 ` Valentin Schneider
0 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2021-05-25 17:32 UTC (permalink / raw)
To: linux-kernel, linux-arm-kernel
Cc: Marc Zyngier, Thomas Gleixner, Lorenzo Pieralisi, Vincenzo Frascino
The newly-added IRQCHIP_AUTOMASKS_FLOW flag requires some additional
bookkeeping around chip->{irq_ack, irq_eoi}() calls. Define wrappers around
those chip callbacks to drive the IRQD_IRQ_FLOW_MASKED state of an IRQ when
the chip has the IRQCHIP_AUTOMASKS_FLOW flag.
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
---
kernel/irq/chip.c | 16 ++++++++++++++++
kernel/irq/internals.h | 2 ++
2 files changed, 18 insertions(+)
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 21a21baa1366..793dbd8307b9 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -408,6 +408,22 @@ void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu)
cpumask_clear_cpu(cpu, desc->percpu_enabled);
}
+void ack_irq(struct irq_desc *desc)
+{
+ desc->irq_data.chip->irq_ack(&desc->irq_data);
+
+ if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
+ irq_state_set_flow_masked(desc);
+}
+
+void eoi_irq(struct irq_desc *desc)
+{
+ desc->irq_data.chip->irq_eoi(&desc->irq_data);
+
+ if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
+ irq_state_clr_flow_masked(desc);
+}
+
static inline void mask_ack_irq(struct irq_desc *desc)
{
if (desc->irq_data.chip->irq_mask_ack) {
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
index b6c1cceddec0..090bd7868845 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
@@ -87,6 +87,8 @@ extern void irq_enable(struct irq_desc *desc);
extern void irq_disable(struct irq_desc *desc);
extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
+extern void irq_ack(struct irq_desc *desc);
+extern void irq_eoi(struct irq_desc *desc);
extern void mask_irq(struct irq_desc *desc);
extern void unmask_irq(struct irq_desc *desc);
extern void unmask_threaded_irq(struct irq_desc *desc);
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers
@ 2021-05-25 17:32 ` Valentin Schneider
0 siblings, 0 replies; 10+ messages in thread
From: Valentin Schneider @ 2021-05-25 17:32 UTC (permalink / raw)
To: linux-kernel, linux-arm-kernel
Cc: Marc Zyngier, Thomas Gleixner, Lorenzo Pieralisi, Vincenzo Frascino
The newly-added IRQCHIP_AUTOMASKS_FLOW flag requires some additional
bookkeeping around chip->{irq_ack, irq_eoi}() calls. Define wrappers around
those chip callbacks to drive the IRQD_IRQ_FLOW_MASKED state of an IRQ when
the chip has the IRQCHIP_AUTOMASKS_FLOW flag.
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
---
kernel/irq/chip.c | 16 ++++++++++++++++
kernel/irq/internals.h | 2 ++
2 files changed, 18 insertions(+)
diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
index 21a21baa1366..793dbd8307b9 100644
--- a/kernel/irq/chip.c
+++ b/kernel/irq/chip.c
@@ -408,6 +408,22 @@ void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu)
cpumask_clear_cpu(cpu, desc->percpu_enabled);
}
+void ack_irq(struct irq_desc *desc)
+{
+ desc->irq_data.chip->irq_ack(&desc->irq_data);
+
+ if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
+ irq_state_set_flow_masked(desc);
+}
+
+void eoi_irq(struct irq_desc *desc)
+{
+ desc->irq_data.chip->irq_eoi(&desc->irq_data);
+
+ if (desc->irq_data.chip->flags & IRQCHIP_AUTOMASKS_FLOW)
+ irq_state_clr_flow_masked(desc);
+}
+
static inline void mask_ack_irq(struct irq_desc *desc)
{
if (desc->irq_data.chip->irq_mask_ack) {
diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
index b6c1cceddec0..090bd7868845 100644
--- a/kernel/irq/internals.h
+++ b/kernel/irq/internals.h
@@ -87,6 +87,8 @@ extern void irq_enable(struct irq_desc *desc);
extern void irq_disable(struct irq_desc *desc);
extern void irq_percpu_enable(struct irq_desc *desc, unsigned int cpu);
extern void irq_percpu_disable(struct irq_desc *desc, unsigned int cpu);
+extern void irq_ack(struct irq_desc *desc);
+extern void irq_eoi(struct irq_desc *desc);
extern void mask_irq(struct irq_desc *desc);
extern void unmask_irq(struct irq_desc *desc);
extern void unmask_threaded_irq(struct irq_desc *desc);
--
2.25.1
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related [flat|nested] 10+ messages in thread
end of thread, other threads:[~2021-06-01 10:28 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-25 23:01 [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2021-05-25 17:32 [RFC PATCH v2 00/10] irqchip/irq-gic: Optimize masking by leveraging EOImode=1 Valentin Schneider
2021-05-25 17:32 ` [RFC PATCH v2 02/10] genirq: Define irq_ack() and irq_eoi() helpers Valentin Schneider
2021-05-25 17:32 ` Valentin Schneider
2021-05-25 20:54 ` kernel test robot
2021-05-27 10:55 ` Marc Zyngier
2021-05-27 10:55 ` Marc Zyngier
2021-05-27 10:58 ` Marc Zyngier
2021-05-27 10:58 ` Marc Zyngier
2021-06-01 10:25 ` Valentin Schneider
2021-06-01 10:25 ` Valentin Schneider
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.