All of lore.kernel.org
 help / color / mirror / Atom feed
From: Segher Boessenkool <segher@kernel.crashing.org>
To: "Murilo Opsfelder Araújo" <mopsfelder@gmail.com>
Cc: linuxppc-dev <linuxppc-dev@lists.ozlabs.org>,
	Joel Stanley <joel@jms.id.au>
Subject: Re: [PATCH] powerpc/boot: Build wrapper for an appropriate CPU
Date: Thu, 31 Mar 2022 18:44:33 -0500	[thread overview]
Message-ID: <20220331234433.GB614@gate.crashing.org> (raw)
In-Reply-To: <167db0bd-4f10-7751-36a2-fb9ec5b136a7@gmail.com>

On Thu, Mar 31, 2022 at 12:19:52PM -0300, Murilo Opsfelder Araújo wrote:
> My understanding is that the default cpu type for -mcpu=powerpc64 can 
> change.

Different subtargets (Linux, AIX, Darwin, the various BSDs, bare ELF,
etc.) have different default CPUs.  It also can be set at configure time
for most subtargets.

Linux can be built with compilers not targetting *-linux*, so it would
be best to specify a specific CPU always.

> >I did a little test using my buildroot compiler which has
> >with-cpu=power10. I used the presence of PCREL relocations as evidence
> >that it was build for power10.
> >
> >$ powerpc64le-buildroot-linux-gnu-gcc -mcpu=power10 -c test.c
> >$ readelf -r test.o |grep -c PCREL
> >24
> 
> It respected the -mcpu=power10 you provided.

Of course.

> And that's my concern.  We're relying on the compiler default cpu type.

That is not the compiler default.  It is the default from who built the
compiler.  It can vary wildly and unpredictably.

The actual compiler default will not change so easily at all, basically
only when its subtarget drops support for an older CPU.

> If gcc defaults -mcpu=powerpc64le to power10, you're going to have
> the same problem again.

That will not happen before power10 is the minimum supported CPU.
Anything else is madness.

> It happens that the power8 default cpu type
> is compatible to your system by coincidence.

No, power8 is (and always was) the minimum supported CPU type for
powerpc64le-linux.

> In gcc/config/rs6000/rs6000-cpus.def, they are set to different processors:
> 
>     254 RS6000_CPU ("powerpc64", PROCESSOR_POWERPC64, MASK_PPC_GFXOPT | 
>     MASK_POWERPC64)
>     255 RS6000_CPU ("powerpc64le", PROCESSOR_POWER8, MASK_POWERPC64 | 
>     ISA_2_7_MASKS_SERVER

Those can and will change though, over time.  But -mcpu=powerpc64 (etc.)
always will mean what the current documentation says it does:
     '-mcpu=powerpc', '-mcpu=powerpc64', and '-mcpu=powerpc64le' specify
     pure 32-bit PowerPC (either endian), 64-bit big endian PowerPC and
     64-bit little endian PowerPC architecture machine types, with an
     appropriate, generic processor model assumed for scheduling
     purposes.

> My suggestion was to explicitly set -mcpu=power8 instead of 
> -mcpu=powerpc64le.

That is implied anyway, it is the minimum supported for
powerpc64le-linux.  Using -mcpu=powerpc64le might schedule better for
newer CPUs, in the future (but the code will always work on all still
supported CPUs).


Segher

  reply	other threads:[~2022-03-31 23:48 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-30 11:24 [PATCH] powerpc/boot: Build wrapper for an appropriate CPU Joel Stanley
2022-03-30 11:33 ` Christophe Leroy
2022-03-30 11:39   ` Joel Stanley
2022-03-31 23:00     ` Segher Boessenkool
2022-03-31  2:05 ` Murilo Opsfelder Araújo
2022-03-31  5:01   ` Joel Stanley
2022-03-31 15:19     ` Murilo Opsfelder Araújo
2022-03-31 23:44       ` Segher Boessenkool [this message]
2022-04-06  7:08         ` Joel Stanley
2022-04-07 18:43           ` Murilo Opsfelder Araújo
2022-04-07 20:33             ` Segher Boessenkool
2022-03-31 23:09   ` Segher Boessenkool
2022-05-15 10:12 ` Michael Ellerman

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=20220331234433.GB614@gate.crashing.org \
    --to=segher@kernel.crashing.org \
    --cc=joel@jms.id.au \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mopsfelder@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: 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.