[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl co
From: |
Peter Xu |
Subject: |
Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression |
Date: |
Wed, 27 Mar 2024 15:25:59 -0400 |
On Fri, Mar 22, 2024 at 12:40:32PM -0400, Peter Xu wrote:
> > > void multifd_recv_zero_page_process(MultiFDRecvParams *p)
> > > {
> > > for (int i = 0; i < p->zero_num; i++) {
> > > void *page = p->host + p->zero[i];
> > > if (!buffer_is_zero(page, p->page_size)) {
> > > memset(page, 0, p->page_size);
> > > }
> > > }
> > > }
>
> It may not matter much (where I also see your below comments), but just to
> mention another solution to avoid this read is that we can maintain
> RAMBlock->receivedmap for precopy (especially, multifd, afaiu multifd
> doesn't yet update this bitmap.. even if normal precopy does), then here
> instead of scanning every time, maybe we can do:
>
> /*
> * If it's the 1st time receiving it, no need to clear it as it must be
> * all zeros now.
> */
> if (bitmap_test(rb->receivedmap, page_offset)) {
> memset(page, 0, ...);
> } else {
> bitmap_set(rb->receivedmap, page_offset);
> }
>
> And we also always set the bit when !zero too.
>
> My rational is that it's unlikely a zero page if it's sent once or more,
> while OTOH for the 1st time we receive it, it must be a zero page, so no
> need to scan for the 1st round.
Thinking about this, I'm wondering whether we should have this regardless.
IIUC now multifd will always require two page faults on destination for
anonymous guest memories (I suppose shmem/hugetlb is fine as no zero page
in those worlds). Even though it should be faster than DMA faults, it
still is unwanted.
I'll take a note myself as todo to do some measurements in the future
first. However if anyone thinks that makes sense and want to have a look,
please say so. It'll be more than welcomed.
Thanks,
--
Peter Xu
- Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, (continued)
- Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Peter Xu, 2024/03/20
- RE: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Liu, Yuan1, 2024/03/20
- Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Peter Xu, 2024/03/20
- RE: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Liu, Yuan1, 2024/03/20
- Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Peter Xu, 2024/03/21
- RE: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Liu, Yuan1, 2024/03/21
- RE: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Liu, Yuan1, 2024/03/22
- Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Peter Xu, 2024/03/22
- Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression,
Peter Xu <=
- RE: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Liu, Yuan1, 2024/03/27
- Re: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Peter Xu, 2024/03/28
- RE: [PATCH v5 5/7] migration/multifd: implement initialization of qpl compression, Liu, Yuan1, 2024/03/28
[PATCH v5 1/7] docs/migration: add qpl compression feature, Yuan Liu, 2024/03/20
[PATCH v5 4/7] migration/multifd: add qpl compression method, Yuan Liu, 2024/03/20
[PATCH v5 3/7] configure: add --enable-qpl build option, Yuan Liu, 2024/03/20