-----Original Message----- From: Alexander Atanasov <alexander.atana...@virtuozzo.com> Date: Friday, 21 October 2022 at 6:08 PM To: Kui Liu <kui....@acronis.com>, Konstantin Khorenko <khore...@virtuozzo.com>, Alexey Kuznetsov <kuz...@acronis.com> Cc: Devel <devel@openvz.org> Subject: Re: [Devel] [PATCH RH9] dm-ploop: port the standby mode feature.
On 19.10.22 11:25, Kui Liu wrote: > > > -----Original Message----- > From: Alexander Atanasov <alexander.atana...@virtuozzo.com> > Date: Wednesday, 19 October 2022 at 4:02 PM > To: Kui Liu <kui....@acronis.com>, Konstantin Khorenko <khore...@virtuozzo.com>, Alexey Kuznetsov <kuz...@acronis.com> > Cc: Devel <devel@openvz.org> > Subject: Re: [Devel] [PATCH RH9] dm-ploop: port the standby mode feature. > > On 19.10.22 9:58, Kui Liu wrote: > > > > > > > > > > > > + if (blk_queue_standby_en(ploop_blk_queue(ploop))) { > > > > + blk_queue_flag_clear(QUEUE_FLAG_STANDBY, ploop_blk_queue(ploop)); > > > > + if (!static_key_enabled(&ploop_standby_check)) { > > > > + static_key_enable(&ploop_standby_check); > > > > + pr_info("ploop: standby mode check enabled\n"); > > > > + } > > > > + } > > > > + > > > > > > > > [LIU]: This may not work, because normally a ploop device is created first before being attached to SCST, which means 'ploop_ctr' is called before QUEUE_FLAG_STANDBY_EN can be set. We need to put " static_key_enable(&ploop_standby_check))" somewhere else. > > > > > > I am not sure i undestand that correctly but dm-ploop maps the ploop > > > device over existing device. It first opens the files that are on the > > > existing device then passes the fds to dm-ploop. To do this the target > > > must be up and running. device mapper setups the table before calling > > > the ploop ctr. You already checked the queue lifecycle. > > > Is there any other precodition for the target to set the EN flag? > > > > > > > > > There is one more alternative to pass the stanby enable flag enable from > > > userspace . > > > > > > [LIU]: well, you are right about the dm-ploop setup process. However SCST can only set the EN flag after the ploop device is assigned to > > > SCST, before which the table could have been loaded. So if setup sequence is 1) create ploop device -> 2) load table -> 3) assign ploop > > > device to SCST, then the outer if condition won't be true, hence not triggering static_key_enable(). > > > My concern is this should not be the only place where the static key can be enabled. Now that there is one more alternative in user space > > > , above code is OK. > > > > Ok - for the user space there are two options: > > 1. add an argument to enable at creation time > > 2. command standby_enable /if using the enable it is possible to > > implement a disable command too/. > > > > I prefer the second approach but let's hear other opinions too. > > And yes we can possibly do both but is there a use case ? > > > > [LIU]: Since the static key is a global option, I also think the second approach is better. > > In case of nodes with vStorage + ploop + iSCSI setup, we just need to enable the static > > key early in system init or iSCSI service init. I don't think it is necessary to implement both. > > You are right. It will need at least one ploop device created to issue a > device mapper command to enable standby. Would a module parameter work? > > [LIU] Yes, I think it is better to make the static key a module parameter. This rised a question - how and who will pass the module parameter when required ? How we will handle the existin users ? What do you think ? [LIU]: Like add a conf file ploop.conf in /etc/modprobe.d or lib/modeprobe.d? This conf file can be shipped with the release image, or installed later. Are you referring to VZ7 as existing users? I saw you also made the changes to VZ7, but I'm not sure whether it is necessary to backport these changes to VZ7. -- Regards, Alexander Atanasov _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel