diff options
author | Phil Carns <carns@mcs.anl.gov> | 2019-08-22 20:02:57 -0400 |
---|---|---|
committer | Peter Scheibel <scheibel1@llnl.gov> | 2019-08-22 17:02:56 -0700 |
commit | a707c5bd2b5dd0380fe8546b4f67ca993f520b4a (patch) | |
tree | b766937ba543d40712c62d4b8afba445e27688f8 /var | |
parent | 21f2a1ef83de4b8d6159c7717e9018502272baed (diff) | |
download | spack-a707c5bd2b5dd0380fe8546b4f67ca993f520b4a.tar.gz spack-a707c5bd2b5dd0380fe8546b4f67ca993f520b4a.tar.bz2 spack-a707c5bd2b5dd0380fe8546b4f67ca993f520b4a.tar.xz spack-a707c5bd2b5dd0380fe8546b4f67ca993f520b4a.zip |
libfabric package: add kdreg variant (off by default) (#12521)
This variant (off by default) adds support for the kdreg option in
the GNI provider. It is disabled by default in order to avoid
potential runtime conflicts with the cray-mpich library. Only one
library at a time can use this feature.
This patch allows the libfabric package to work correctly out of
the box on systems like Cori at NERSC (since it's CLE7 update).
Otherwise the spack build may autodetect kdreg headers on the system
and enable this problematic feature.
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/libfabric/package.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/libfabric/package.py b/var/spack/repos/builtin/packages/libfabric/package.py index 8465974532..363e383f58 100644 --- a/var/spack/repos/builtin/packages/libfabric/package.py +++ b/var/spack/repos/builtin/packages/libfabric/package.py @@ -48,6 +48,13 @@ class Libfabric(AutotoolsPackage): multi=True ) + # NOTE: the 'kdreg' variant enables use of the special /dev/kdreg file to + # assist in memory registration caching in the GNI provider. This + # device file can only be opened once per process, however, and thus it + # frequently conflicts with MPI. + variant('kdreg', default=False, + description='Enable kdreg on supported Cray platforms') + depends_on('rdma-core', when='fabrics=verbs') depends_on('opa-psm2', when='fabrics=psm2') depends_on('psm', when='fabrics=psm') @@ -99,6 +106,11 @@ class Libfabric(AutotoolsPackage): def configure_args(self): args = [] + if '+kdreg' in self.spec: + args.append('--with-kdreg=yes') + else: + args.append('--with-kdreg=no') + for fabric in self.fabrics: if 'fabrics=' + fabric in self.spec: args.append('--enable-{0}=yes'.format(fabric)) |