public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Palmer Dabbelt <palmer@rivosinc.com>
To: adhemerval.zanella@linaro.org
Cc: Evan Green <evan@rivosinc.com>,
	libc-alpha@sourceware.org, slewis@rivosinc.com,
	Vineet Gupta <vineetg@rivosinc.com>
Subject: Re: [PATCH v2 0/3] RISC-V: ifunced memcpy using new kernel hwprobe interface
Date: Wed, 29 Mar 2023 12:45:53 -0700 (PDT)	[thread overview]
Message-ID: <mhng-070c6c08-7d42-4392-a1ac-bbe91948d105@palmer-ri-x1c9a> (raw)
In-Reply-To: <c7678c7d-a792-3ce3-55cf-43712acb0703@linaro.org>

On Wed, 29 Mar 2023 12:16:39 PDT (-0700), adhemerval.zanella@linaro.org wrote:
>
>
> On 28/03/23 21:01, Palmer Dabbelt wrote:
>> On Tue, 28 Mar 2023 16:41:10 PDT (-0700), adhemerval.zanella@linaro.org wrote:
>>>
>>>
>>> On 28/03/23 19:54, Palmer Dabbelt wrote:
>>>> On Tue, 21 Feb 2023 11:15:34 PST (-0800), Evan Green wrote:
>>>>>
>>>>> This series illustrates the use of a proposed Linux syscall that
>>>>> enumerates architectural information about the RISC-V cores the system
>>>>> is running on. In this series we expose a small wrapper function around
>>>>> the syscall. An ifunc selector for memcpy queries it to see if unaligned
>>>>> access is "fast" on this hardware. If it is, it selects a newly provided
>>>>> implementation of memcpy that doesn't work hard at aligning the src and
>>>>> destination buffers.
>>>>>
>>>>> This is somewhat of a proof of concept for the syscall itself, but I do
>>>>> find that in my goofy memcpy test [1], the unaligned memcpy performed at
>>>>> least as well as the generic C version. This is however on Qemu on an M1
>>>>> mac, so not a test of any real hardware (more a smoke test that the
>>>>> implementation isn't silly).
>>>>
>>>> QEMU isn't a good enough benchmark to justify a new memcpy routine in glibc.  Evan has a D1, which does support misaligned access and runs some simple benchmarks faster.  There's also been some minor changes to the Linux side of things that warrant a v3 anyway, so he'll just post some benchmarks on HW along with that.
>>>>
>>>> Aside from those comments,
>>>>
>>>> Reviewed-by: Palmer Dabbelt <palmer@rivosinc.com>
>>>>
>>>> There's a lot more stuff to probe for, but I think we've got enough of a proof of concept for the hwprobe stuff that we can move forward with the core interface bits in Linux/glibc and then unleash the chaos...
>>>>
>>>> Unless anyone else has comments?
>>>
>>> Until riscv_hwprobe is not on Linus tree as official Linux ABI this patchset
>>> can not be installed.  We failed to enforce it on some occasion (like Intel
>>> CET) and it turned out a complete mess after some years...
>>
>> Sorry if that wasn't clear, I was asking if there were any more comments from the glibc side of things before merging the Linux code.
>
> Right, so is this already settle to be the de-factor ABI to query for system
> information in RISCV? Or is it still being discussed? Is it in a next branch
> already, and/or have been tested with a patch glibc?

It's not in for-next yet, but various patch sets / proposals have been 
on the lists for a few months and it seems like discussion on the kernel 
side has pretty much died down.  That's why I was pinging the glibc side 
of things, if anyone here has comments on the interface then it's time 
to chime in.  If there's no comments then we're likely to end up with 
this in the next release (so queue into for-next soon, Linus' master in 
a month or so).

IIUC Evan's been testing the kernel+glibc stuff on QEMU, but he should 
be able to ack that explicitly (it's a little vague in the cover 
letter).  There's also a glibc-independent kselftest as part of the 
kernel patch set: 
https://lore.kernel.org/all/20230327163203.2918455-6-evan@rivosinc.com/ 
.

>
> In any case I added some minimal comments.  With the vDSO approach I think
> there is no need to cache the result at startup, as aarch64 and x86 does.

  reply	other threads:[~2023-03-29 19:45 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-21 19:15 Evan Green
2023-02-21 19:15 ` [PATCH v2 1/3] riscv: Add Linux hwprobe syscall support Evan Green
2023-03-29 18:38   ` Adhemerval Zanella Netto
2023-02-21 19:15 ` [PATCH v2 2/3] riscv: Add hwprobe vdso call support Evan Green
2023-03-29 18:39   ` Adhemerval Zanella Netto
2023-02-21 19:15 ` [PATCH v2 3/3] riscv: Add and use alignment-ignorant memcpy Evan Green
2023-03-28 22:54 ` [PATCH v2 0/3] RISC-V: ifunced memcpy using new kernel hwprobe interface Palmer Dabbelt
2023-03-28 23:41   ` Adhemerval Zanella Netto
2023-03-29  0:01     ` Palmer Dabbelt
2023-03-29 19:16       ` Adhemerval Zanella Netto
2023-03-29 19:45         ` Palmer Dabbelt [this message]
2023-03-29 20:13           ` Adhemerval Zanella Netto
2023-03-30 18:31             ` Evan Green
2023-03-30 19:43               ` Adhemerval Zanella Netto
2023-03-30  6:20           ` Jeff Law
2023-03-30 18:43             ` Evan Green
2023-03-31  5:09               ` Jeff Law
2023-03-30 19:38             ` Adhemerval Zanella Netto
2023-03-31 18:07               ` Jeff Law
2023-03-31 18:34                 ` Palmer Dabbelt
2023-03-31 19:32                   ` Adhemerval Zanella Netto
2023-03-31 20:19                     ` Jeff Law
2023-03-31 21:03                       ` Palmer Dabbelt
2023-03-31 21:35                         ` Jeff Law
2023-03-31 21:38                           ` Palmer Dabbelt
2023-03-31 22:10                             ` Jeff Law
2023-04-07 15:36                               ` Palmer Dabbelt

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-070c6c08-7d42-4392-a1ac-bbe91948d105@palmer-ri-x1c9a \
    --to=palmer@rivosinc.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=evan@rivosinc.com \
    --cc=libc-alpha@sourceware.org \
    --cc=slewis@rivosinc.com \
    --cc=vineetg@rivosinc.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 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).