public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@rivosinc.com>
To: enh@google.com
Cc: libc-alpha@sourceware.org
Subject: Re: [RFC] build-many-glibcs: Add a rv64gcbv-on-rv64gc/lp64d sub-variant
Date: Mon, 15 Apr 2024 13:22:33 -0700 (PDT)	[thread overview]
Message-ID: <mhng-cd811c58-dc7b-4bb3-86c2-0a0afc22233b@palmer-ri-x1c9> (raw)
In-Reply-To: <CAJgzZoqZWCt85U0Z=ux4GsYRo=Be0JEDo5+Hwro5MGCjJHyfJw@mail.gmail.com>

On Mon, 15 Apr 2024 13:05:53 PDT (-0700), enh@google.com wrote:
> On Mon, Apr 15, 2024 at 12:27 PM Palmer Dabbelt <palmer@rivosinc.com> wrote:
>>
>> Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
>> ---
>> So this is very much an RFC.  I had written a commit message as
>>
>>     This will hopefully be a widely used configuration in the future, but
>>     it's not all that common right now.  That said, let's be proactive and
>>     at start testing it.
>>
>> but I even that's kind of a strong statement here so I'm just stashing
>> it off to the side to be sure.
>>
>> A few of us were talking about the GCC meeting last week, but I figured
>> I'd send a glibc patch to at least start some discussion on the lists as
>> something similar had come up in the TLSDESC thread and a while ago when
>> we talked about glibc-hwcaps.
>>
>> I'm not really sure what the right thing to do here is: we don't have
>> broadly available hardware that supports these new extensions, but
>> they're pretty much table stakes for hardware that's competitive with
>> arm64/x86.  Without B and V we're going to end up piling up a ton of
>> IFUNC-based routines to try and work around the base ISA, but those
>> extensions are so fundamental to good codegen that it doesn't feel like
>> we're going to get where we want with just IFUNCs.
>>
>> Unfortunately I don't think we can drop support for the other base ISAs:
>> the distros appear to be targeting rv64gc and that's the only common
>> base for most hardware that's out there.  I guess we could drop support
>> for the rv*ima-based base ISAs, but I'm not sure that buys us much:
>> we've got a lot of embedded users so we won't be able to drop the GCC
>> support for soft float, and dropping the glibc support puts us in a
>> clunky spot for testing.
>>
>> So we're probably stuck in a bit of a performance hole for a while.
>> That said, we could at least put a stake in the ground and start testing
>> some target with some newer extensions.  That way distros that want to
>> try a larger base than rv64gc have something that's getting tested and
>> is thus likely to work.  For GCC we ended up adding some test targets
>> with pretty much all the non-embedded, but at least B and V seem like
>> the bare minimum.
>>
>> I'm not sure if all that is worth the extra build/test resource burden
>> for everyone, though, particularly given the lack of hardware.
>
> for Android -- which is in a similar situation -- having the build
> system enable these extensions been pretty useful for finding
> toolchain and qemu bugs, which seems useful in its own right, if only
> for CI purposes...

Ya, that's kind of my theory here.  Hopefully hardware vendors will 
eventually align to some interesting set of extensions, maybe split 
between a few markets, but at least we can do _something_ here.  I'd be 
super surprised if we end up with any sort of long-term successful 
hardware that lacks B and V, so it seems like a safe target for testing.

>> ---
>>  scripts/build-many-glibcs.py | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
>> index ecc743e672..21da46dc4a 100755
>> --- a/scripts/build-many-glibcs.py
>> +++ b/scripts/build-many-glibcs.py
>> @@ -411,7 +411,9 @@ class Context(object):
>>                          os_name='linux-gnu',
>>                          variant='rv64imafdc-lp64d',
>>                          gcc_cfg=['--with-arch=rv64imafdc', '--with-abi=lp64d',
>> -                                 '--disable-multilib'])
>> +                                 '--disable-multilib']),
>> +                        extra_glibcs=[{'variant': 'rv64gcbv-rv64gc-lp64d',
>> +                                       'ccopts': '-march=rv64gcv_zba_zbb_zbs'}]
>>          self.add_config(arch='s390x',
>>                          os_name='linux-gnu',
>>                          glibcs=[{},
>> --
>> 2.44.0
>>

  reply	other threads:[~2024-04-15 20:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-15 19:24 Palmer Dabbelt
2024-04-15 20:05 ` enh
2024-04-15 20:22   ` Palmer Dabbelt [this message]
2024-04-25  5:11     ` Jeff Law
2024-04-15 20:24 ` Darius Rad
2024-04-15 21:36   ` Palmer Dabbelt
2024-04-16 14:55     ` Darius Rad
2024-04-16 16:04       ` Palmer Dabbelt
2024-04-16 20:41         ` Darius Rad
2024-04-16 21:06           ` Palmer Dabbelt
2024-04-16  7:01 ` Michael Hudson-Doyle
2024-04-16 18:12   ` Palmer Dabbelt
2024-04-17  9:46     ` Florian Weimer
2024-04-23  3:08     ` Michael Hudson-Doyle
2024-04-17 10:26   ` Florian Weimer

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=mhng-cd811c58-dc7b-4bb3-86c2-0a0afc22233b@palmer-ri-x1c9 \
    --to=palmer@rivosinc.com \
    --cc=enh@google.com \
    --cc=libc-alpha@sourceware.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).