All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.