[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:27:41 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 |
On 10/09/2021 13:20, Li Zhijian wrote:
>
>
> 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.
BTW: Does QEMU provide any mean to set http(s)_proxy to building vm ?
Currently, i have to
hack the code like:
- self.ssh_root_check("pkg install -y %s\n" % " ".join(self.pkgs))
+ self.ssh_root_check("setenv HTTP_PROXY http://myproxy; setenv
HTTPS_PROXY http://myproxy; pkg install -y %s\n" % " ".join(self.pkgs))
Thanks
Zhijian
>
> 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)
- [PULL 5/7] migration/ram: Don't passs RAMState to migration_clear_memory_region_dirty_bitmap_*(), (continued)
- [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 <=
- 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