From: Michael Ellerman <mpe@ellerman.id.au> To: Yury Norov <yury.norov@gmail.com> Cc: linux-kernel@vger.kernel.org, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Rasmus Villemoes <linux@rasmusvillemoes.dk>, linuxppc-dev@lists.ozlabs.org, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Paul Mackerras <paulus@samba.org>, Stephen Rothwell <sfr@canb.auug.org.au> Subject: Re: [PATCH 1/2] powerpc: drop dependency on <asm/machdep.h> in archrandom.h Date: Tue, 26 Jul 2022 12:46:49 +1000 [thread overview] Message-ID: <87h734bnfq.fsf@mpe.ellerman.id.au> (raw) In-Reply-To: <Yt7Ewi2vu49fW1ZJ@yury-laptop> Yury Norov <yury.norov@gmail.com> writes: > On Mon, Jul 25, 2022 at 10:22:13PM +1000, Michael Ellerman wrote: >> Michael Ellerman <mpe@ellerman.id.au> writes: >> > Yury Norov <yury.norov@gmail.com> writes: >> >> archrandom.h includes <asm/machdep.h> to refer ppc_md. This causes >> >> circular header dependency, if generic nodemask.h includes random.h: >> >> >> >> In file included from include/linux/cred.h:16, >> >> from include/linux/seq_file.h:13, >> >> from arch/powerpc/include/asm/machdep.h:6, >> >> from arch/powerpc/include/asm/archrandom.h:5, >> >> from include/linux/random.h:109, >> >> from include/linux/nodemask.h:97, >> >> from include/linux/list_lru.h:12, >> >> from include/linux/fs.h:13, >> >> from include/linux/compat.h:17, >> >> from arch/powerpc/kernel/asm-offsets.c:12: >> >> include/linux/sched.h:1203:9: error: unknown type name 'nodemask_t' >> >> 1203 | nodemask_t mems_allowed; >> >> | ^~~~~~~~~~ >> >> >> >> Fix it by removing <asm/machdep.h> dependency from archrandom.h >> >> >> >> Signed-off-by: Yury Norov <yury.norov@gmail.com> >> >> --- >> >> arch/powerpc/include/asm/archrandom.h | 9 +-------- >> >> arch/powerpc/kernel/setup-common.c | 11 +++++++++++ >> >> 2 files changed, 12 insertions(+), 8 deletions(-) >> >> >> >> diff --git a/arch/powerpc/include/asm/archrandom.h b/arch/powerpc/include/asm/archrandom.h >> >> index 9a53e29680f4..21def59ef1a6 100644 >> >> --- a/arch/powerpc/include/asm/archrandom.h >> >> +++ b/arch/powerpc/include/asm/archrandom.h >> >> @@ -4,7 +4,7 @@ >> >> >> >> #ifdef CONFIG_ARCH_RANDOM >> >> >> >> -#include <asm/machdep.h> >> >> +bool __must_check arch_get_random_seed_long(unsigned long *v); >> >> >> >> static inline bool __must_check arch_get_random_long(unsigned long *v) >> >> { >> >> @@ -16,13 +16,6 @@ static inline bool __must_check arch_get_random_int(unsigned int *v) >> >> return false; >> >> } >> >> >> >> -static inline bool __must_check arch_get_random_seed_long(unsigned long *v) >> >> -{ >> >> - if (ppc_md.get_random_seed) >> >> - return ppc_md.get_random_seed(v); >> >> - >> >> - return false; >> >> -} >> > >> > I'd rather we didn't have to force this out of line. >> > >> > I think I see a different way to fix it, I'll just do some more build >> > tests. >> >> Of course my idea didn't work :} >> >> So I'll just ack your patch for now, and maybe I can get the headers >> cleaned up in future to allow it to be out-of-line again. > > I understand that it looks like a tradeoff - we inline a couple of small > functions with the cost of uninlining an almost innocent victim. Yeah. The truth is the cost to access the RNG will far outweigh the cost of that out-of-line call, so there's no real issue. But it's also such a small function that it just cries out to be inlined :) > The complete solution would be probably a splitting ppc_md declaration > out of asm/machdep.h. I wanted to do that, but I'm not a PPC guy, and > just don't know how to split the header correctly. I managed to drop the includes of seq_file.h and dma-mapping.h, which seemed to fix the circular include problem, but there's a bit of fall out in unrelated files. I think I can get that sorted though eventually. > Anyways, thanks for the ack. Applied on bitmap-for-next. No worries. cheers
WARNING: multiple messages have this Message-ID (diff)
From: Michael Ellerman <mpe@ellerman.id.au> To: Yury Norov <yury.norov@gmail.com> Cc: Stephen Rothwell <sfr@canb.auug.org.au>, Rasmus Villemoes <linux@rasmusvillemoes.dk>, linux-kernel@vger.kernel.org, Paul Mackerras <paulus@samba.org>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH 1/2] powerpc: drop dependency on <asm/machdep.h> in archrandom.h Date: Tue, 26 Jul 2022 12:46:49 +1000 [thread overview] Message-ID: <87h734bnfq.fsf@mpe.ellerman.id.au> (raw) In-Reply-To: <Yt7Ewi2vu49fW1ZJ@yury-laptop> Yury Norov <yury.norov@gmail.com> writes: > On Mon, Jul 25, 2022 at 10:22:13PM +1000, Michael Ellerman wrote: >> Michael Ellerman <mpe@ellerman.id.au> writes: >> > Yury Norov <yury.norov@gmail.com> writes: >> >> archrandom.h includes <asm/machdep.h> to refer ppc_md. This causes >> >> circular header dependency, if generic nodemask.h includes random.h: >> >> >> >> In file included from include/linux/cred.h:16, >> >> from include/linux/seq_file.h:13, >> >> from arch/powerpc/include/asm/machdep.h:6, >> >> from arch/powerpc/include/asm/archrandom.h:5, >> >> from include/linux/random.h:109, >> >> from include/linux/nodemask.h:97, >> >> from include/linux/list_lru.h:12, >> >> from include/linux/fs.h:13, >> >> from include/linux/compat.h:17, >> >> from arch/powerpc/kernel/asm-offsets.c:12: >> >> include/linux/sched.h:1203:9: error: unknown type name 'nodemask_t' >> >> 1203 | nodemask_t mems_allowed; >> >> | ^~~~~~~~~~ >> >> >> >> Fix it by removing <asm/machdep.h> dependency from archrandom.h >> >> >> >> Signed-off-by: Yury Norov <yury.norov@gmail.com> >> >> --- >> >> arch/powerpc/include/asm/archrandom.h | 9 +-------- >> >> arch/powerpc/kernel/setup-common.c | 11 +++++++++++ >> >> 2 files changed, 12 insertions(+), 8 deletions(-) >> >> >> >> diff --git a/arch/powerpc/include/asm/archrandom.h b/arch/powerpc/include/asm/archrandom.h >> >> index 9a53e29680f4..21def59ef1a6 100644 >> >> --- a/arch/powerpc/include/asm/archrandom.h >> >> +++ b/arch/powerpc/include/asm/archrandom.h >> >> @@ -4,7 +4,7 @@ >> >> >> >> #ifdef CONFIG_ARCH_RANDOM >> >> >> >> -#include <asm/machdep.h> >> >> +bool __must_check arch_get_random_seed_long(unsigned long *v); >> >> >> >> static inline bool __must_check arch_get_random_long(unsigned long *v) >> >> { >> >> @@ -16,13 +16,6 @@ static inline bool __must_check arch_get_random_int(unsigned int *v) >> >> return false; >> >> } >> >> >> >> -static inline bool __must_check arch_get_random_seed_long(unsigned long *v) >> >> -{ >> >> - if (ppc_md.get_random_seed) >> >> - return ppc_md.get_random_seed(v); >> >> - >> >> - return false; >> >> -} >> > >> > I'd rather we didn't have to force this out of line. >> > >> > I think I see a different way to fix it, I'll just do some more build >> > tests. >> >> Of course my idea didn't work :} >> >> So I'll just ack your patch for now, and maybe I can get the headers >> cleaned up in future to allow it to be out-of-line again. > > I understand that it looks like a tradeoff - we inline a couple of small > functions with the cost of uninlining an almost innocent victim. Yeah. The truth is the cost to access the RNG will far outweigh the cost of that out-of-line call, so there's no real issue. But it's also such a small function that it just cries out to be inlined :) > The complete solution would be probably a splitting ppc_md declaration > out of asm/machdep.h. I wanted to do that, but I'm not a PPC guy, and > just don't know how to split the header correctly. I managed to drop the includes of seq_file.h and dma-mapping.h, which seemed to fix the circular include problem, but there's a bit of fall out in unrelated files. I think I can get that sorted though eventually. > Anyways, thanks for the ack. Applied on bitmap-for-next. No worries. cheers
next prev parent reply other threads:[~2022-07-26 2:47 UTC|newest] Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-07-23 21:45 [PATCH 0/2] lib/nodemask: inline wrappers around bitmap Yury Norov 2022-07-23 21:45 ` [PATCH 1/2] powerpc: drop dependency on <asm/machdep.h> in archrandom.h Yury Norov 2022-07-25 7:28 ` Andy Shevchenko 2022-07-25 7:28 ` Andy Shevchenko 2022-07-25 16:17 ` Yury Norov 2022-07-25 16:17 ` Yury Norov 2022-07-25 21:39 ` Andy Shevchenko 2022-07-25 21:39 ` Andy Shevchenko 2022-07-25 23:32 ` Yury Norov 2022-07-25 23:32 ` Yury Norov 2022-07-26 6:13 ` Andy Shevchenko 2022-07-26 6:13 ` Andy Shevchenko 2022-07-26 6:15 ` Andy Shevchenko 2022-07-26 6:15 ` Andy Shevchenko 2022-07-26 6:57 ` Michael Ellerman 2022-07-26 6:57 ` Michael Ellerman 2022-07-26 15:19 ` Yury Norov 2022-07-26 15:19 ` Yury Norov 2022-07-25 8:34 ` Michael Ellerman 2022-07-25 12:22 ` Michael Ellerman 2022-07-25 16:28 ` Yury Norov 2022-07-25 16:28 ` Yury Norov 2022-07-26 2:46 ` Michael Ellerman [this message] 2022-07-26 2:46 ` Michael Ellerman 2022-07-25 12:22 ` Michael Ellerman 2022-07-23 21:45 ` [RESEND PATCH 2/2] lib/nodemask: inline next_node_in() and node_random() Yury Norov 2022-08-12 5:16 ` Aneesh Kumar K.V 2022-08-12 5:40 ` Yury Norov 2022-08-12 5:40 ` Yury Norov
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=87h734bnfq.fsf@mpe.ellerman.id.au \ --to=mpe@ellerman.id.au \ --cc=andriy.shevchenko@linux.intel.com \ --cc=benh@kernel.crashing.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux@rasmusvillemoes.dk \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=paulus@samba.org \ --cc=sfr@canb.auug.org.au \ --cc=yury.norov@gmail.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: linkBe 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.