mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Joakim Sindholt <opensource@zhasha.com>
To: musl@lists.openwall.com
Subject: Re: [musl] Re:Re: [musl] Re:Re: [musl] Re:Re: [musl] Re:Re: [musl] qsort
Date: Sat, 11 Feb 2023 09:39:36 +0100	[thread overview]
Message-ID: <20230211093936.46b9a2f044052552be38cdb2@zhasha.com> (raw)
In-Reply-To: <CQFHTXNLAUOI.2OHPT1JEJF27G@sumire>

On Sat, 11 Feb 2023 06:44:29 +0100, "alice" <alice@ayaya.dev> wrote:
> based on the glibc profiling, glibc also has their natively-loaded-cpu-specific
> optimisations, the _avx_ functions in your case. musl doesn't implement any
> SIMD optimisations, so this is a bit apples-to-oranges unless musl implements
> the same kind of native per-arch optimisation.
> 
> you should rerun these with GLIBC_TUNABLES, from something in:
> https://www.gnu.org/software/libc/manual/html_node/Hardware-Capability-Tunables.html
> which should let you disable them all (if you just want to compare C to C code).
> 
> ( unrelated, but has there been some historic discussion of implementing
>   something similar in musl? i feel like i might be forgetting something. )

There already are arch-specific asm implementations of functions like
memcpy. As I see it there are 3 issues standing between musl and the
glibc approach of writing a new function every time Intel or AMD
releases a new core design:
1) ifunc resolvers don't work on statically linked binaries.
2) If they did it would mean shipping 12 different implementations of
   each optimized function, making the binary huge for, for the most
   part, no good reason.
3) The esoteric bug is no longer in memcpy but in either memcpy_c,
   memcpy_mmx, memcpy_3dnow, memcpy_sse2, memcpy_sse3, memcpy_ssse3,
   memcpy_sse41, memcpy_sse42, memcpy_avx, memcpy_avx2, memcpy_avx512,
   or memcpy_amx or whatever else is added in the future in a
   never-ending spiral of implementations piling up.

It is my opinion that musl should remain small and concise to allow it
to effectively serve both the "small" and "gotta go fast" markets. I say
both because you can always haul in libreallyreallyfastsort.a/so but you
can't take the 47 qsort/memcpy implementations out of libc.

  reply	other threads:[~2023-02-11  8:39 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-20  1:49 Guy
2023-01-20 12:55 ` alice
2023-01-30 10:04   ` [musl] " David Wang
2023-02-01 18:01     ` Markus Wichmann
2023-02-02  2:12       ` [musl] " David Wang
2023-02-03  5:22         ` [musl] " David Wang
2023-02-03  8:03           ` Alexander Monakov
2023-02-03  9:01             ` [musl] " David Wang
2023-02-09 19:03       ` Rich Felker
2023-02-09 19:20         ` Alexander Monakov
2023-02-09 19:52           ` Rich Felker
2023-02-09 20:18             ` Rich Felker
2023-02-09 20:27               ` Pierpaolo Bernardi
2023-02-10  4:10             ` Markus Wichmann
2023-02-10 10:00         ` [musl] " David Wang
2023-02-10 13:10           ` Rich Felker
2023-02-10 13:45             ` [musl] " David Wang
2023-02-10 14:19               ` Rich Felker
2023-02-11  5:12                 ` [musl] " David Wang
2023-02-11  5:44                   ` alice
2023-02-11  8:39                     ` Joakim Sindholt [this message]
2023-02-11  9:06                       ` alice
2023-02-11  9:31                         ` [musl] " David Wang
2023-02-11 13:35                         ` Rich Felker
2023-02-11 17:18                           ` David Wang
2023-02-16 15:15       ` David Wang
2023-02-16 16:07         ` Rich Felker
2023-02-17  1:35           ` [musl] " David Wang
2023-02-17 13:17           ` Alexander Monakov
2023-02-17 15:07             ` Rich Felker
2023-02-11  9:22     ` [musl] " Markus Wichmann
2023-02-11  9:36       ` [musl] " David Wang
2023-02-11  9:51       ` David Wang
2023-01-20 13:32 ` [musl] qsort Valery Ushakov

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=20230211093936.46b9a2f044052552be38cdb2@zhasha.com \
    --to=opensource@zhasha.com \
    --cc=musl@lists.openwall.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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

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 NNTP newsgroup(s).