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
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to