[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 0/7] Migration.next patches
From: |
Juan Quintela |
Subject: |
Re: [PULL 0/7] Migration.next patches |
Date: |
Thu, 09 Sep 2021 17:23:09 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
"Li, Zhijian" <lizhijian@cn.fujitsu.com> wrote:
> on 2021/9/9 21:42, Peter Maydell wrote:
>> On Thu, 9 Sept 2021 at 11:36, Juan Quintela <quintela@redhat.com> wrote:
>> Fails to build, FreeBSD:
>>
>> ../src/migration/rdma.c:1146:23: error: use of undeclared identifier
>> 'IBV_ADVISE_MR_ADVICE_PREFETCH_WRITE'
>> int advice = wr ? IBV_ADVISE_MR_ADVICE_PREFETCH_WRITE :
>> ^
>> ../src/migration/rdma.c:1147:18: error: use of undeclared identifier
>> 'IBV_ADVISE_MR_ADVICE_PREFETCH'
>> IBV_ADVISE_MR_ADVICE_PREFETCH;
>> ^
>> ../src/migration/rdma.c:1150:11: warning: implicit declaration of
>> function 'ibv_advise_mr' is invalid in C99
>> [-Wimplicit-function-declaration]
>> ret = ibv_advise_mr(pd, advice,
>> ^
>> ../src/migration/rdma.c:1151:25: error: use of undeclared identifier
>> 'IBV_ADVISE_MR_FLAG_FLUSH'
>> IBV_ADVISE_MR_FLAG_FLUSH, &sg_list, 1);
>> ^
>>
> it's introduced by [PULL 4/7] migration/rdma: advise prefetch write for ODP
> region
> where it calls a ibv_advise_mr(). i have checked the latest FreeBSD, it
> didn't ship with this API
> May i know if just FressBSD reports this failure? if so, i just need
> filtering out FreeBSD only
The other way around I think.
What about:
It compiled on my Linux machine, but it *should* work on any (famous
last words). Finishing compilation
Later, Juan.
>From 964e436bdb8aef7dbebc28415e4ac3c5822b552e Mon Sep 17 00:00:00 2001
From: Juan Quintela <quintela@redhat.com>
Date: Thu, 9 Sep 2021 17:07:17 +0200
Subject: [PATCH] rdma: test for ibv_advise_mr API
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
configure | 28 ++++++++++++++++++++++++++++
migration/rdma.c | 2 ++
2 files changed, 30 insertions(+)
diff --git a/configure b/configure
index 8adf2127c3..70054fd702 100755
--- a/configure
+++ b/configure
@@ -339,6 +339,7 @@ whpx="auto"
nvmm="auto"
rdma="$default_feature"
pvrdma="$default_feature"
+rdma_ibv_advise_mr="no"
gprof="no"
debug_tcg="no"
debug="no"
@@ -2918,6 +2919,29 @@ EOF
fi
fi
+# Let's see if enhanced reg_mr is supported
+if test "$rdma" = "yes" ; then
+
+cat > $TMPC <<EOF &&
+#include <infiniband/verbs.h>
+
+int
+main(void)
+{
+ int advice = wr ? IBV_ADVISE_MR_ADVICE_PREFETCH_WRITE :
+ IBV_ADVISE_MR_ADVICE_PREFETCH;
+ struct ibv_sge sg_list = {.lkey = lkey, .addr = addr, .length = len};
+
+ ibv_advise_mr(pd, advice, IBV_ADVISE_MR_FLAG_FLUSH, &sg_list, 1);
+ return 0;
+}
+EOF
+ if ! compile_prog "" "-libverbs"; then
+ rdma_ibv_advise_mr="yes"
+ fi
+fi
+
+
##########################################
# xfsctl() probe, used for file-posix.c
if test "$xfs" != "no" ; then
@@ -4802,6 +4826,10 @@ if test "$rdma" = "yes" ; then
echo "RDMA_LIBS=$rdma_libs" >> $config_host_mak
fi
+if test "$rdma_ibv_advise_mr" = "yes"; then
+ echo "CONFIG_IBV_ADVISE_MR=y" >> $config_host_mak
+fi
+
if test "$pvrdma" = "yes" ; then
echo "CONFIG_PVRDMA=y" >> $config_host_mak
fi
diff --git a/migration/rdma.c b/migration/rdma.c
index 6c2cc3f617..aac343253f 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -1142,6 +1142,7 @@ static void qemu_rdma_advise_prefetch_mr(struct ibv_pd
*pd, uint64_t addr,
uint32_t len, uint32_t lkey,
const char *name, bool wr)
{
+#if CONFIG_IBV_ADVISE_MR
int ret;
int advice = wr ? IBV_ADVISE_MR_ADVICE_PREFETCH_WRITE :
IBV_ADVISE_MR_ADVICE_PREFETCH;
@@ -1155,6 +1156,7 @@ static void qemu_rdma_advise_prefetch_mr(struct ibv_pd
*pd, uint64_t addr,
} else {
trace_qemu_rdma_advise_mr(name, len, addr, "successed");
}
+#endif
}
static int qemu_rdma_reg_whole_ram_blocks(RDMAContext *rdma)
--
2.31.1
- [PULL 2/7] multifd: Unconditionally unregister yank function, (continued)
- [PULL 2/7] multifd: Unconditionally unregister yank function, Juan Quintela, 2021/09/09
- [PULL 4/7] migration/rdma: advise prefetch write for ODP region, Juan Quintela, 2021/09/09
- [PULL 1/7] multifd: Implement yank for multifd send side, Juan Quintela, 2021/09/09
- [PULL 7/7] migration: allow enabling mutilfd for specific protocol only, Juan Quintela, 2021/09/09
- [PULL 5/7] migration/ram: Don't passs RAMState to migration_clear_memory_region_dirty_bitmap_*(), Juan Quintela, 2021/09/09
- [PULL 6/7] migration: allow multifd for socket protocol only, Juan Quintela, 2021/09/09
- [PULL 3/7] migration/rdma: Try to register On-Demand Paging memory region, Juan Quintela, 2021/09/09
- Re: [PULL 0/7] Migration.next patches, Peter Maydell, 2021/09/09
- Re: [PULL 0/7] Migration.next patches, Li, Zhijian, 2021/09/09
- Re: [PULL 0/7] Migration.next patches, Juan Quintela, 2021/09/09
- Re: [PULL 0/7] Migration.next patches, address@hidden, 2021/09/10
- Re: [PULL 0/7] Migration.next patches, address@hidden, 2021/09/10
- Re: [PULL 0/7] Migration.next patches, Juan Quintela, 2021/09/10
- Re: [PULL 0/7] Migration.next patches, address@hidden, 2021/09/10
- Re: [PULL 0/7] Migration.next patches, Philippe Mathieu-Daudé, 2021/09/10
- Re: [PULL 0/7] Migration.next patches, Li, Zhijian, 2021/09/10