From: Dave Jiang Date: Tue, 20 Dec 2016 23:31:45 +0000 (-0700) Subject: fio: Add support for auto detect dev-dax and libpmemblk engines X-Git-Tag: fio-2.17~52 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=3ee2a3c1ae52841ecb4926ab5748e6d856fd4b2c;p=fio.git fio: Add support for auto detect dev-dax and libpmemblk engines Added support code in configure to detect whether libpmem and libpmemblk are installed. dev-dax engine is enabled if libpmem is installed. pmemblk engine is installed if libpmem and libpmemblk are installed. A --disable-pmem flag is added to explicitly disable the libpmem based engines even if the libs are detected. Signed-off-by: Dave Jiang Signed-off-by: Jens Axboe --- diff --git a/configure b/configure index 03bed3b1..fc157822 100755 --- a/configure +++ b/configure @@ -138,6 +138,7 @@ libhdfs="no" pmemblk="no" devdax="no" disable_lex="" +disable_pmem="no" prefix=/usr/local # parse options @@ -173,10 +174,6 @@ for opt do ;; --enable-libhdfs) libhdfs="yes" ;; - --enable-pmemblk) pmemblk="yes" - ;; - --enable-devdax) devdax="yes" - ;; --disable-lex) disable_lex="yes" ;; --enable-lex) disable_lex="no" @@ -185,6 +182,8 @@ for opt do ;; --disable-optimizations) disable_opt="yes" ;; + --disable-pmem) disable_pmem="yes" + ;; --help) show_help="yes" ;; @@ -207,9 +206,8 @@ if test "$show_help" = "yes" ; then echo "--disable-numa Disable libnuma even if found" echo "--disable-gfapi Disable gfapi" echo "--enable-libhdfs Enable hdfs support" - echo "--enable-pmemblk Enable NVML libpmemblk support" - echo "--enable-devdax Enable NVM Device Dax support" echo "--disable-lex Disable use of lex/yacc for math" + echo "--disable-pmem Disable pmem based engines even if found" echo "--enable-lex Enable use of lex/yacc for math" echo "--disable-shm Disable SHM support" echo "--disable-optimizations Don't enable compiler optimizations" @@ -1566,13 +1564,54 @@ if compile_prog "" "" "mtd"; then fi echo "MTD $mtd" +########################################## +# Check whether we have libpmem +libpmem="no" +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + int rc; + rc = pmem_is_pmem(0, 0); + return 0; +} +EOF +if compile_prog "" "-lpmem" "libpmem"; then + libpmem="yes" +fi +echo "libpmem $libpmem" + +########################################## +# Check whether we have libpmemblk +libpmemblk="no" +cat > $TMPC << EOF +#include +int main(int argc, char **argv) +{ + int rc; + rc = pmemblk_open("", 0); + return 0; +} +EOF +if compile_prog "" "-lpmemblk -lpmem" "libpmemblk"; then + libpmemblk="yes" +fi +echo "libpmemblk $libpmemblk" + +if test "$libpmem" = "yes" && test "$disable_pmem" = "no"; then + devdax="yes" + if test "$libpmemblk" = "yes"; then + pmemblk="yes" + fi +fi + ########################################## # Report whether pmemblk engine is enabled echo "NVML libpmemblk engine $pmemblk" ########################################## # Report whether dev-dax engine is enabled -echo "NVM Device Dax engine $devdax" +echo "NVML Device Dax engine $devdax" # Check if we have lex/yacc available yacc="no"