All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christophe Leroy <christophe.leroy@c-s.fr>
To: Masahiro Yamada <yamada.masahiro@socionext.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-arch <linux-arch@vger.kernel.org>
Cc: linux-s390@vger.kernel.org,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Arnd Bergmann <arnd@arndb.de>,
	linuxppc-dev@lists.ozlabs.org, x86@kernel.org,
	linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ingo Molnar <mingo@redhat.com>,
	linux-mtd@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	Mathieu Malaterre <malat@debian.org>
Subject: Re: [RESEND PATCH v3 09/11] powerpc/mm/radix: mark __radix__flush_tlb_range_psize() as __always_inline
Date: Mon, 29 Apr 2019 17:35:53 +0200	[thread overview]
Message-ID: <40b48947-b80e-7971-376d-52b594e26d17@c-s.fr> (raw)
In-Reply-To: <20190423034959.13525-10-yamada.masahiro@socionext.com>



Le 23/04/2019 à 05:49, Masahiro Yamada a écrit :
> This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common
> place. We need to eliminate potential issues beforehand.

How did you identify the functions requiring __always_inline as this one 
? Just by 'test and see if it fails', or did you have some script or so ?

Here the problem is that one of the parameters of the function are used 
as "immediate" constraint for the inline assembly, therefore requiring 
the function to always be inline.

I guess this should be explained in the commit log and I'm wondering how 
you ensure that you did identify all functions like this.

Christophe

> 
> If it is enabled for powerpc, the following error is reported:
> 
> arch/powerpc/mm/tlb-radix.c: In function '__radix__flush_tlb_range_psize':
> arch/powerpc/mm/tlb-radix.c:104:2: error: asm operand 3 probably doesn't match constraints [-Werror]
>    asm volatile(PPC_TLBIEL(%0, %4, %3, %2, %1)
>    ^~~
> arch/powerpc/mm/tlb-radix.c:104:2: error: impossible constraint in 'asm'
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
> Changes in v3: None
> Changes in v2:
>    - split into a separate patch
> 
>   arch/powerpc/mm/tlb-radix.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c
> index 6a23b9ebd2a1..a2b2848f0ae3 100644
> --- a/arch/powerpc/mm/tlb-radix.c
> +++ b/arch/powerpc/mm/tlb-radix.c
> @@ -928,7 +928,7 @@ void radix__tlb_flush(struct mmu_gather *tlb)
>   	tlb->need_flush_all = 0;
>   }
>   
> -static inline void __radix__flush_tlb_range_psize(struct mm_struct *mm,
> +static __always_inline void __radix__flush_tlb_range_psize(struct mm_struct *mm,
>   				unsigned long start, unsigned long end,
>   				int psize, bool also_pwc)
>   {
> 

WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@c-s.fr>
To: Masahiro Yamada <yamada.masahiro@socionext.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-arch <linux-arch@vger.kernel.org>
Cc: linux-s390@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Mathieu Malaterre <malat@debian.org>,
	x86@kernel.org, Heiko Carstens <heiko.carstens@de.ibm.com>,
	linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ingo Molnar <mingo@redhat.com>,
	linux-mtd@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RESEND PATCH v3 09/11] powerpc/mm/radix: mark __radix__flush_tlb_range_psize() as __always_inline
Date: Mon, 29 Apr 2019 17:35:53 +0200	[thread overview]
Message-ID: <40b48947-b80e-7971-376d-52b594e26d17@c-s.fr> (raw)
In-Reply-To: <20190423034959.13525-10-yamada.masahiro@socionext.com>



Le 23/04/2019 à 05:49, Masahiro Yamada a écrit :
> This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common
> place. We need to eliminate potential issues beforehand.

How did you identify the functions requiring __always_inline as this one 
? Just by 'test and see if it fails', or did you have some script or so ?

Here the problem is that one of the parameters of the function are used 
as "immediate" constraint for the inline assembly, therefore requiring 
the function to always be inline.

I guess this should be explained in the commit log and I'm wondering how 
you ensure that you did identify all functions like this.

Christophe

> 
> If it is enabled for powerpc, the following error is reported:
> 
> arch/powerpc/mm/tlb-radix.c: In function '__radix__flush_tlb_range_psize':
> arch/powerpc/mm/tlb-radix.c:104:2: error: asm operand 3 probably doesn't match constraints [-Werror]
>    asm volatile(PPC_TLBIEL(%0, %4, %3, %2, %1)
>    ^~~
> arch/powerpc/mm/tlb-radix.c:104:2: error: impossible constraint in 'asm'
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
> Changes in v3: None
> Changes in v2:
>    - split into a separate patch
> 
>   arch/powerpc/mm/tlb-radix.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c
> index 6a23b9ebd2a1..a2b2848f0ae3 100644
> --- a/arch/powerpc/mm/tlb-radix.c
> +++ b/arch/powerpc/mm/tlb-radix.c
> @@ -928,7 +928,7 @@ void radix__tlb_flush(struct mmu_gather *tlb)
>   	tlb->need_flush_all = 0;
>   }
>   
> -static inline void __radix__flush_tlb_range_psize(struct mm_struct *mm,
> +static __always_inline void __radix__flush_tlb_range_psize(struct mm_struct *mm,
>   				unsigned long start, unsigned long end,
>   				int psize, bool also_pwc)
>   {
> 

WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@c-s.fr>
To: Masahiro Yamada <yamada.masahiro@socionext.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-arch <linux-arch@vger.kernel.org>
Cc: linux-s390@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Mathieu Malaterre <malat@debian.org>,
	x86@kernel.org, Heiko Carstens <heiko.carstens@de.ibm.com>,
	linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ingo Molnar <mingo@redhat.com>,
	linux-mtd@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RESEND PATCH v3 09/11] powerpc/mm/radix: mark __radix__flush_tlb_range_psize() as __always_inline
Date: Mon, 29 Apr 2019 17:35:53 +0200	[thread overview]
Message-ID: <40b48947-b80e-7971-376d-52b594e26d17@c-s.fr> (raw)
In-Reply-To: <20190423034959.13525-10-yamada.masahiro@socionext.com>



Le 23/04/2019 à 05:49, Masahiro Yamada a écrit :
> This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common
> place. We need to eliminate potential issues beforehand.

How did you identify the functions requiring __always_inline as this one 
? Just by 'test and see if it fails', or did you have some script or so ?

Here the problem is that one of the parameters of the function are used 
as "immediate" constraint for the inline assembly, therefore requiring 
the function to always be inline.

I guess this should be explained in the commit log and I'm wondering how 
you ensure that you did identify all functions like this.

Christophe

> 
> If it is enabled for powerpc, the following error is reported:
> 
> arch/powerpc/mm/tlb-radix.c: In function '__radix__flush_tlb_range_psize':
> arch/powerpc/mm/tlb-radix.c:104:2: error: asm operand 3 probably doesn't match constraints [-Werror]
>    asm volatile(PPC_TLBIEL(%0, %4, %3, %2, %1)
>    ^~~
> arch/powerpc/mm/tlb-radix.c:104:2: error: impossible constraint in 'asm'
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
> Changes in v3: None
> Changes in v2:
>    - split into a separate patch
> 
>   arch/powerpc/mm/tlb-radix.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c
> index 6a23b9ebd2a1..a2b2848f0ae3 100644
> --- a/arch/powerpc/mm/tlb-radix.c
> +++ b/arch/powerpc/mm/tlb-radix.c
> @@ -928,7 +928,7 @@ void radix__tlb_flush(struct mmu_gather *tlb)
>   	tlb->need_flush_all = 0;
>   }
>   
> -static inline void __radix__flush_tlb_range_psize(struct mm_struct *mm,
> +static __always_inline void __radix__flush_tlb_range_psize(struct mm_struct *mm,
>   				unsigned long start, unsigned long end,
>   				int psize, bool also_pwc)
>   {
> 

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Christophe Leroy <christophe.leroy@c-s.fr>
To: Masahiro Yamada <yamada.masahiro@socionext.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-arch <linux-arch@vger.kernel.org>
Cc: linux-s390@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
	Mathieu Malaterre <malat@debian.org>,
	x86@kernel.org, Heiko Carstens <heiko.carstens@de.ibm.com>,
	linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
	Ingo Molnar <mingo@redhat.com>,
	linux-mtd@lists.infradead.org, linuxppc-dev@lists.ozlabs.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [RESEND PATCH v3 09/11] powerpc/mm/radix: mark __radix__flush_tlb_range_psize() as __always_inline
Date: Mon, 29 Apr 2019 17:35:53 +0200	[thread overview]
Message-ID: <40b48947-b80e-7971-376d-52b594e26d17@c-s.fr> (raw)
In-Reply-To: <20190423034959.13525-10-yamada.masahiro@socionext.com>



Le 23/04/2019 à 05:49, Masahiro Yamada a écrit :
> This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common
> place. We need to eliminate potential issues beforehand.

How did you identify the functions requiring __always_inline as this one 
? Just by 'test and see if it fails', or did you have some script or so ?

Here the problem is that one of the parameters of the function are used 
as "immediate" constraint for the inline assembly, therefore requiring 
the function to always be inline.

I guess this should be explained in the commit log and I'm wondering how 
you ensure that you did identify all functions like this.

Christophe

> 
> If it is enabled for powerpc, the following error is reported:
> 
> arch/powerpc/mm/tlb-radix.c: In function '__radix__flush_tlb_range_psize':
> arch/powerpc/mm/tlb-radix.c:104:2: error: asm operand 3 probably doesn't match constraints [-Werror]
>    asm volatile(PPC_TLBIEL(%0, %4, %3, %2, %1)
>    ^~~
> arch/powerpc/mm/tlb-radix.c:104:2: error: impossible constraint in 'asm'
> 
> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
> ---
> 
> Changes in v3: None
> Changes in v2:
>    - split into a separate patch
> 
>   arch/powerpc/mm/tlb-radix.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c
> index 6a23b9ebd2a1..a2b2848f0ae3 100644
> --- a/arch/powerpc/mm/tlb-radix.c
> +++ b/arch/powerpc/mm/tlb-radix.c
> @@ -928,7 +928,7 @@ void radix__tlb_flush(struct mmu_gather *tlb)
>   	tlb->need_flush_all = 0;
>   }
>   
> -static inline void __radix__flush_tlb_range_psize(struct mm_struct *mm,
> +static __always_inline void __radix__flush_tlb_range_psize(struct mm_struct *mm,
>   				unsigned long start, unsigned long end,
>   				int psize, bool also_pwc)
>   {
> 

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

  reply	other threads:[~2019-04-29 15:35 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-23  3:49 [RESEND PATCH v3 00/11] compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING Masahiro Yamada
2019-04-23  3:49 ` Masahiro Yamada
2019-04-23  3:49 ` Masahiro Yamada
2019-04-23  3:49 ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 01/11] ARM: prevent tracing IPI_CPU_BACKTRACE Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 02/11] arm64: mark (__)cpus_have_const_cap as __always_inline Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23 11:31   ` Mark Rutland
2019-04-23 11:31     ` Mark Rutland
2019-04-23 11:31     ` Mark Rutland
2019-04-23 11:31     ` Mark Rutland
2019-04-23  3:49 ` [RESEND PATCH v3 03/11] MIPS: mark mult_sh_align_mod() " Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 04/11] s390/cpacf: mark scpacf_query() " Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-05-16 23:01   ` Laura Abbott
2019-05-16 23:01     ` Laura Abbott
2019-05-16 23:01     ` Laura Abbott
2019-05-17  4:23     ` Masahiro Yamada
2019-05-17  4:23       ` Masahiro Yamada
2019-05-17  4:23       ` Masahiro Yamada
2019-05-17  4:23       ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 05/11] mtd: rawnand: vf610_nfc: add initializer to avoid -Wmaybe-uninitialized Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-05-02 14:13   ` Miquel Raynal
2019-05-02 14:13     ` Miquel Raynal
2019-05-02 14:13     ` Miquel Raynal
2019-05-02 14:13     ` Miquel Raynal
2019-05-03 10:36     ` Masahiro Yamada
2019-05-03 10:36       ` Masahiro Yamada
2019-05-03 10:36       ` Masahiro Yamada
2019-05-03 10:36       ` Masahiro Yamada
2019-05-03 11:11       ` Miquel Raynal
2019-05-03 11:11         ` Miquel Raynal
2019-05-03 11:11         ` Miquel Raynal
2019-05-03 11:11         ` Miquel Raynal
2019-04-23  3:49 ` [RESEND PATCH v3 06/11] MIPS: mark __fls() and __ffs() as __always_inline Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 07/11] ARM: mark setup_machine_tags() stub as __init __noreturn Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 08/11] powerpc/prom_init: mark prom_getprop() and prom_getproplen() as __init Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 09/11] powerpc/mm/radix: mark __radix__flush_tlb_range_psize() as __always_inline Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-29 15:35   ` Christophe Leroy [this message]
2019-04-29 15:35     ` Christophe Leroy
2019-04-29 15:35     ` Christophe Leroy
2019-04-29 15:35     ` Christophe Leroy
2019-05-03 13:40     ` Masahiro Yamada
2019-05-03 13:40       ` Masahiro Yamada
2019-05-03 13:40       ` Masahiro Yamada
2019-05-03 13:40       ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 10/11] powerpc/mm/radix: mark as __tlbie_pid() and friends as__always_inline Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-05-16 22:55   ` Laura Abbott
2019-05-16 22:55     ` Laura Abbott
2019-05-16 22:55     ` Laura Abbott
2019-05-17  4:18     ` Masahiro Yamada
2019-05-17  4:18       ` Masahiro Yamada
2019-05-17  4:18       ` Masahiro Yamada
2019-05-17  4:18       ` Masahiro Yamada
2019-04-23  3:49 ` [RESEND PATCH v3 11/11] compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada
2019-04-23  3:49   ` Masahiro Yamada

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=40b48947-b80e-7971-376d-52b594e26d17@c-s.fr \
    --to=christophe.leroy@c-s.fr \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=heiko.carstens@de.ibm.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=malat@debian.org \
    --cc=mingo@redhat.com \
    --cc=x86@kernel.org \
    --cc=yamada.masahiro@socionext.com \
    /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.