Hi, Vineet Gupta wrote, > Hi Thomas, > > On 04/03/2017 09:57 PM, Thomas Petazzoni wrote: > >> So there's a small downside to this - which I reckon will likely not stand > >> out in > >> grand scheme of things - still tabling it here for people to be aware of. > >> This can potentially degrade some of the micro-benchmarks such as LMBench > >> lat_proc > >> shell - since there's now an additional shared library (libtirpc) to load. > >> We > >> spotted this back in 2015 when comparing buildroot (using libtirpc) vs. our > >> homegrown builds (using native toolchain rpc). > > How big was the performance hit? > > Processor, Processes - times in microseconds - smaller is better > ------------------------------------------------------------------------------ > Host OS Mhz null null open slct sig sig fork exec sh > call I/O stat clos TCP inst hndl proc proc proc > --------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- > A7-720mhz Linux 3.4.61 720 0.50 0.97 4.37 9.38 26.0 1.00 5.59 1103 5061 8432 > A7-720mhz Linux 3.4.61 720 0.50 0.96 4.24 9.31 26.0 1.00 5.59 1093 5029 10.K > > So ~19% > > > Is it just due to loading an > > additional library, or to internal RPC implementation aspects that > > differs between the uClibc built-in implementation and the libtirpc > > implementation? > > So the thing is Busybox binary ends up being linked with 2 libs (instead of > just > libc.so) thus ldso loading takes more time. Now lat_proc shell ends up doing > exec() of (busybox) shell and then hello world - hence the increased time. > > > > If it's just due to loading an additional library, is this micro > > benchmark really representative of real-world workload? Is it really a > > real life situation to have very short-lived processes that need RPC > > support? > > Hard to judge really - for a desktop/server system it probably doesn't matter > - > but for a typical embedded system ...
You are not forced to use busybox with libtirpc. You only need it for NFS stuff. For modern NFS stack with rpcbind and nfs-utils you need libtirpc anyway. Busybox just implements a mount helper which could use internal uClibc RPC implementation. But in the end you need libtirpc on the embedded device. So avoid busybox+libtirpc and use rpcbind+nfs-utils+libtirpc if you require NFS on your device. I still see no real use case for the old internal RPC implementation on a modern embedded device. best regards Waldemar _______________________________________________ devel mailing list devel@uclibc-ng.org https://mailman.uclibc-ng.org/cgi-bin/mailman/listinfo/devel