Re: [PATCH 0/8] ARC updates to uClibc

Vineet Gupta <[email protected]>
Newsgroups gmane.comp.lib.uclibc.general
Message-ID <C2D7FE5348E1B147BCA15975FBA230756658DAF8@IN01WEMBXB.internal.synopsys.com>
On Saturday 14 February 2015 07:41 PM, Bernhard Reutner-Fischer wrote:

>Please consider merging the cumulative ARC updates to uClibc.
>The important one being support for variable page size and
>optimization of sigaction code path.


Can you please elaborate on 6 and 8?
LGTM otherwise.
Thanks,


When we ran LMBench under perf, lat_sig install showed hot spots in userspace memcpy and memset.
Turns out that those were for small sized buffers, leading to greater micro-architectural penalty for ARC and more importantly the user of those functions in this case seemed extraneous anyways:

* lat_sig -> sigemtpyset -> memset for 8 bytes was pointless, given _SIGSET_NWORDS is 2 for most arches
* lat_sig -> arc-specific-sigaction -> memcpy for 20 bytes was also not fully justified given ARC code clobbers a few fields right after the memcpy.

so 8/8 removed the out-of-line memset from sigemptyset, making it fallback to inline variant in bits/sigset.h - similar to what sigfillset already does.

While it at I also did some arch specific adjustment in sigaction path - inlining the rt_sigaction syscall stub detour to reduce branch return stack mispredicts etc - which is what 6/8 does !

-Vineet
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.