Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <599d592b-6828-4088-80bd-e9df7429c8d0@isrc.iscas.ac.cn>
Date: Fri, 26 Sep 2025 19:21:56 +0800
From: Pincheng Wang <pincheng.plct@...c.iscas.ac.cn>
To: musl@...ts.openwall.com, Markus Wichmann <nullplan@....net>
Cc: Yao Zi <ziyao@...root.org>
Subject: Re: [PATCH 1/1] riscv64: optimize memset implementation with
 vector extension

On 2025/9/26 11:37, Markus Wichmann wrote:
> Am Fri, Sep 26, 2025 at 08:31:53AM +0800 schrieb Pincheng Wang:
>> I am investigating a runtime detection and dispatch mechanism to select the
>> appropriate implementation based on actual hardware support. If I make
>> progress on this and verify it works as expected, I will update the approach
>> in a v2 patch.
>>
> 
> There seems to be a hwcap flag for ISA_V that might be usable. Not sure
> if it is any help for memcpy() though, because memcpy() is a function
> GCC can insert calls to at any point, including the dynamic linker
> stages 1 and 2, and references to libc.hwcap are invalid there. The only
> solution I see is to explicitly switch to the optimized version after it
> is possible to do so and use the generic version for starters. But that
> would be a bit of a larger change to the code base.
> 
> Ciao,
> Markus

Hi, Markus

Thanks for your suggestion! I do plan to use hwcap to detect the V 
extension, similar to implementations on other platforms. Your point 
about hwcap being unavailable during the linker's bootstrap stage is 
indeed very helpful - I hadn't fully considered that. I'll look into 
adopting your suggestion: using a generic implementation initially and 
explicitly switching to the optimized version once hwcap becomes 
available. However, I can't yet be certain about the exact 
implementation details, as this will require some time for coding and 
testing.

Moreover, since I haven't found any existing RISC-V examples of such 
detection-and-dispatch mechanisms, and given that this approach would 
indeed entail significant changes to the dynamic linker, I plan to send 
the v2 patch as an RFC after I finish my current work.

Thank you again for your insightful comments and suggestions!

Best regards,
Pincheng Wang

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.