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