From e4c4625ff8368f7667b2fe81cd2040186d440c94 Mon Sep 17 00:00:00 2001 From: Jan Michalski Date: Thu, 11 Feb 2021 12:47:06 +0100 Subject: 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 Co-Authored-By: Tomasz Gromadzki Co-Authored-By: Jan Michalski Co-Authored-By: Oksana Salyk --- configure | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'configure') diff --git a/configure b/configure index 748f7014..1bbdb8c4 100755 --- a/configure +++ b/configure @@ -920,6 +920,49 @@ if test "$disable_rdma" != "yes" && compile_prog "" "-lrdmacm" "rdma"; then fi print_config "rdmacm" "$rdmacm" +########################################## +# librpma probe +if test "$librpma" != "yes" ; then + librpma="no" +fi +cat > $TMPC << EOF +#include +#include +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 +#include +#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 @@ -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 -- cgit v1.2.3