kaleb(a)redhat.com has uploaded this change for review. (
https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/442394
Change subject: RFC: [do not merge] (lib)ganesha_nfsd as a DSO
......................................................................
RFC: [do not merge] (lib)ganesha_nfsd as a DSO
Build ganesha as a DSO, i.e. libganesha_nfsd.so.
Take No. Two-dot-one, addressing comments from the first go-around.
The ganesha.nfsd daemon consists of just nfs_main:main() and is
linked with the DSO.
Then all the FSALs (except FSAL_PSEUDO and FSAL_MDCACHE*) are linked
with libganesha_nfsd resolution of functions in ganesha.nfsd itself.
This will be required if, e.g., Fedora, decides to require default
linking with '-z defs'. They tried to do it for F29 but retreated
when they found that too many applications broke. In the end this may
all be just an exercise in "truth and beauty."
*FSAL_PSEUDO and FSAL_MDCACHE are special; they are included in the
DSO so do not need to be (and can't be) linked with the DSO.
A few other things that could be done are
1) link libganesha_nfsd.so with a .sym file to explicitly control which
symbols are exposed or visible to the outside world.
2) build with -flto (Link Time Optimization)
Annecdotes claim a 5-10% speed improvement is typical, and some
applications have seen as much as 45-50% boost. Of course we have to
do the experiment to see what we really achieve.
3) don't link ganesha.nfsd with -bdynamic as it's no longer needed
Signed-off-by: Kaleb S. KEITHLEY <kkeithle(a)redhat.com>
Change-Id: Iab35f1d9bb1da02685bdaadea2a838d2ec5ee6ec
---
M src/FSAL/FSAL_CEPH/CMakeLists.txt
M src/FSAL/FSAL_GLUSTER/CMakeLists.txt
M src/FSAL/FSAL_GPFS/CMakeLists.txt
M src/FSAL/FSAL_MEM/CMakeLists.txt
M src/FSAL/FSAL_PROXY/CMakeLists.txt
M src/FSAL/FSAL_RGW/CMakeLists.txt
M src/FSAL/FSAL_VFS/panfs/CMakeLists.txt
M src/FSAL/FSAL_VFS/vfs/CMakeLists.txt
M src/FSAL/FSAL_VFS/xfs/CMakeLists.txt
M src/MainNFSD/CMakeLists.txt
M src/SAL/recovery/recovery_fs_ng.c
M src/config_parsing/CMakeLists.txt
M src/nfs-ganesha.spec-in.cmake
M src/support/murmur3.c
14 files changed, 523 insertions(+), 29 deletions(-)
git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/94/442394/1
--
To view, visit
https://review.gerrithub.io/c/ffilz/nfs-ganesha/+/442394
To unsubscribe, or for help writing mail filters, visit
https://review.gerrithub.io/settings
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Iab35f1d9bb1da02685bdaadea2a838d2ec5ee6ec
Gerrit-Change-Number: 442394
Gerrit-PatchSet: 1
Gerrit-Owner: kaleb(a)redhat.com
Gerrit-MessageType: newchange