[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 0/7] Migration.next patches
From: |
address@hidden |
Subject: |
Re: [PULL 0/7] Migration.next patches |
Date: |
Fri, 10 Sep 2021 05:20:29 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 |
On 10/09/2021 00:10, Juan Quintela wrote:
> "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
> Second try. I can't see an example where they search for:
> a symbol on the header file
> and
> a function in a library
>
> so I assume that if you have the symbols, you have the function.
>
> How do you see it?
>
> Trying to compile it on vm-build-freebsd, but not being very sucessfull
> so far.
Your patch does work! But i still followed PMM's suggestion, converted it to
has_function
as another option.
I have verified it on FreeBSD and Linux.
From 67f386acc2092ecf6e71b8951b6af5d5b8366f80 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>
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
---
meson.build | 6 ++++++
migration/rdma.c | 2 ++
2 files changed, 8 insertions(+)
diff --git a/meson.build b/meson.build
index 6e4d2d80343..97406d1b79b 100644
--- a/meson.build
+++ b/meson.build
@@ -1328,6 +1328,12 @@ config_host_data.set('HAVE_COPY_FILE_RANGE',
cc.has_function('copy_file_range'))
config_host_data.set('HAVE_OPENPTY', cc.has_function('openpty', dependencies:
util))
config_host_data.set('HAVE_STRCHRNUL', cc.has_function('strchrnul'))
config_host_data.set('HAVE_SYSTEM_FUNCTION', cc.has_function('system',
prefix: '#include <stdlib.h>'))
+if rdma.found()
+ config_host_data.set('HAVE_IBV_ADVISE_MR',
+ cc.has_function('ibv_advise_mr',
+ args: config_host['RDMA_LIBS'].split(),
+ prefix: '#include
<infiniband/verbs.h>'))
+endif
# has_header_symbol
config_host_data.set('CONFIG_BYTESWAP_H',
diff --git a/migration/rdma.c b/migration/rdma.c
index 6c2cc3f617c..2a3c7889b9f 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)
{
+#ifdef HAVE_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
> Later, Juan.
>
> From e954c1e0afc785a98d472201dafe75a7e7126b1d 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>
> ---
> meson.build | 3 +++
> migration/rdma.c | 2 ++
> 2 files changed, 5 insertions(+)
>
> diff --git a/meson.build b/meson.build
> index 7e58e6279b..c2eb437df4 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -1375,6 +1375,9 @@ config_host_data.set('HAVE_SIGEV_NOTIFY_THREAD_ID',
> config_host_data.set('HAVE_STRUCT_STAT_ST_ATIM',
> cc.has_member('struct stat', 'st_atim',
> prefix: '#include <sys/stat.h>'))
> +config_host_data.set('CONFIG_RDMA_IBV_ADVISE_MR',
> + cc.has_header_symbol('infiniband/verbs.h',
> 'IBV_ADVISE_MR_ADVICE_PREFETCH') and
> + cc.has_header_symbol('infiniband/verbs.h',
> 'IBV_ADVISE_MR_ADVICE_PREFETCH_WRITE'))
>
> config_host_data.set('CONFIG_EVENTFD', cc.links('''
> #include <sys/eventfd.h>
> diff --git a/migration/rdma.c b/migration/rdma.c
> index 6c2cc3f617..f0d78597fb 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)
> {
> +#ifdef CONFIG_RDMA_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)
- [PULL 7/7] migration: allow enabling mutilfd for specific protocol only, (continued)
- [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 <=
- 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