qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] replication: compile out some staff when replication is not


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [PATCH] replication: compile out some staff when replication is not configured
Date: Thu, 20 Apr 2023 01:11:50 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0

On 17.04.23 20:19, Vladimir Sementsov-Ogievskiy wrote:
On 16.04.23 21:44, Zhang, Chen wrote:


-----Original Message-----
From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Sent: Friday, April 14, 2023 5:51 PM
To: Zhang, Chen <chen.zhang@intel.com>; qemu-devel@nongnu.org
Cc: qemu-block@nongnu.org; pbonzini@redhat.com; armbru@redhat.com;
eblake@redhat.com; jasowang@redhat.com; dgilbert@redhat.com;
quintela@redhat.com; hreitz@redhat.com; kwolf@redhat.com; Zhang,
Hailiang <zhanghailiang@xfusion.com>; lizhijian@fujitsu.com;
wencongyang2@huawei.com; xiechanglong.d@gmail.com; den-
plotnikov@yandex-team.ru
Subject: Re: [PATCH] replication: compile out some staff when replication is
not configured

On 14.04.23 04:24, Zhang, Chen wrote:
So, if I want to have an option to disable all COLO modules, do you
mean it should be additional --disable-colo option? Or better keep
one option -- disable-replication (and, maybe just rename to to --disable-
colo)?
I think keep the option --disable-replication is enough.
Generally speaking, these three modules do not belong to COLO, It has
been decoupled at the time of design.
Instead, COLO is formed when these three modules are used in
combination.

But it's not enough to me, I want to have a possibility to not build the
subsystem I don't need.

As I said, COLO not a specific subsystem, It is a usage of three general 
subsystems.
Let's back to this patch, it try to not build block replication when not 
configured. It's OK.
Although COLO may be the only user of replication,  but can't assume all the 
COLO used subsystem
not needed, even have a --disable-colo. For example in this patch disabled the 
net/filter-mirror/redirector....
Qemu network filter is a general framework with many submodules: 
filter-buffer/replay/mirror/rewriter.....
Logically speaking, It is completely irrelevant with COLO.


OK, understand now, thanks for explanation!



Hmm, OK, filters are separate.

But what's the sense in COLO subsystem when replication is disabled?

We have an explicit check in migration.c in migrate_caps_check():

#ifndef CONFIG_REPLICATION
    if (cap_list[MIGRATION_CAPABILITY_X_COLO]) {
        error_setg(errp, "QEMU compiled without replication module"
                   " can't enable COLO");
        error_append_hint(errp, "Please enable replication before COLO.\n");
        return false;
    }
#endif


So, x-colo capability - an entry point to COLO can't be used anyway. So, no 
reason to build it in?

--
Best regards,
Vladimir




reply via email to

[Prev in Thread] Current Thread [Next in Thread]