summaryrefslogtreecommitdiff
path: root/configure
diff options
context:
space:
mode:
authorJan Michalski <jan.m.michalski@intel.com>2021-02-11 12:47:06 +0100
committerJan M Michalski <jan.m.michalski@intel.com>2021-03-13 23:47:47 +0000
commite4c4625ff8368f7667b2fe81cd2040186d440c94 (patch)
treef89046281dc3597239204635008f448b58e36fe6 /configure
parentb02c5eda07966d2e1c41870f64b741413b67a9aa (diff)
downloadfio-e4c4625ff8368f7667b2fe81cd2040186d440c94.tar.gz
fio-e4c4625ff8368f7667b2fe81cd2040186d440c94.tar.bz2
rpma: add librpma_apm_* and librpma_gpspm_* engines
The Remote Persistent Memory Access (RPMA) Library is a C library created to simplify accessing persistent memory on remote hosts over Remote Direct Memory Access (RDMA). The librpma_apm_client and librpma_apm_server is a pair of engines which allows benchmarking persistent writes achieved via the Appliance Persistency Method (APM; natively supported by the librpma library) and regular reads (a part of the RDMA standard). The librpma_gpspm_client and librpma_gpspm_server is a pair of engines which allows benchmarking persistent writes achieved via the General Purpose Persistency Method (GPSPM; build on top of the librpma API). The librpma library is available here: https://github.com/pmem/rpma along with the set of scripts using the newly introduced engines to construct miscellaneous benchmarking scenarios: https://github.com/pmem/rpma/tree/master/tools/perf The full history of the development of the librpma fio engines is available at: https://github.com/pmem/fio/tree/rpma Co-Authored-By: Lukasz Dorau <lukasz.dorau@intel.com> Co-Authored-By: Tomasz Gromadzki <tomasz.gromadzki@intel.com> Co-Authored-By: Jan Michalski <jan.m.michalski@intel.com> Co-Authored-By: Oksana Salyk <oksana.salyk@intel.com>
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure52
1 files changed, 52 insertions, 0 deletions
diff --git a/configure b/configure
index 748f7014..1bbdb8c4 100755
--- a/configure
+++ b/configure
@@ -921,6 +921,49 @@ fi
print_config "rdmacm" "$rdmacm"
##########################################
+# librpma probe
+if test "$librpma" != "yes" ; then
+ librpma="no"
+fi
+cat > $TMPC << EOF
+#include <stdio.h>
+#include <librpma.h>
+int main(int argc, char **argv)
+{
+ enum rpma_conn_event event = RPMA_CONN_REJECTED;
+ (void) event; /* unused */
+ rpma_log_set_threshold(RPMA_LOG_THRESHOLD, RPMA_LOG_LEVEL_INFO);
+ return 0;
+}
+EOF
+if test "$disable_rdma" != "yes" && compile_prog "" "-lrpma" "rpma"; then
+ librpma="yes"
+fi
+print_config "librpma" "$librpma"
+
+##########################################
+# libprotobuf-c probe
+if test "$libprotobuf_c" != "yes" ; then
+ libprotobuf_c="no"
+fi
+cat > $TMPC << EOF
+#include <stdio.h>
+#include <protobuf-c/protobuf-c.h>
+#if !defined(PROTOBUF_C_VERSION_NUMBER)
+# error PROTOBUF_C_VERSION_NUMBER is not defined!
+#endif
+int main(int argc, char **argv)
+{
+ (void)protobuf_c_message_check(NULL);
+ return 0;
+}
+EOF
+if compile_prog "" "-lprotobuf-c" "protobuf_c"; then
+ libprotobuf_c="yes"
+fi
+print_config "libprotobuf_c" "$libprotobuf_c"
+
+##########################################
# asprintf() and vasprintf() probes
if test "$have_asprintf" != "yes" ; then
have_asprintf="no"
@@ -2788,6 +2831,15 @@ fi
if test "$libverbs" = "yes" -a "$rdmacm" = "yes" ; then
output_sym "CONFIG_RDMA"
fi
+# librpma is supported on the 'x86_64' architecture for now
+if test "$cpu" = "x86_64" -a "$libverbs" = "yes" -a "$rdmacm" = "yes" \
+ -a "$librpma" = "yes" -a "$libpmem" = "yes" ; then
+ output_sym "CONFIG_LIBRPMA_APM"
+fi
+if test "$cpu" = "x86_64" -a "$libverbs" = "yes" -a "$rdmacm" = "yes" \
+ -a "$librpma" = "yes" -a "$libpmem" = "yes" -a "$libprotobuf_c" = "yes" ; then
+ output_sym "CONFIG_LIBRPMA_GPSPM"
+fi
if test "$clock_gettime" = "yes" ; then
output_sym "CONFIG_CLOCK_GETTIME"
fi