* [PATCH 0/2] New timeout while waiting for mdmon
@ 2024-05-07 3:38 Kinga Stefaniuk
2024-05-07 3:38 ` [PATCH 1/2] util.c: change devnm to const in mdmon functions Kinga Stefaniuk
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Kinga Stefaniuk @ 2024-05-07 3:38 UTC (permalink / raw)
To: linux-raid; +Cc: jes, mariusz.tkaczyk
This series of patches contains adding new timeout
which is needed to have mdmon started completely.
Kinga Stefaniuk (2):
util.c: change devnm to const in mdmon functions
Wait for mdmon when it is stared via systemd
Assemble.c | 4 ++--
Grow.c | 7 ++++---
mdadm.h | 6 ++++--
util.c | 33 +++++++++++++++++++++++++++++++--
4 files changed, 41 insertions(+), 9 deletions(-)
--
2.35.3
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] util.c: change devnm to const in mdmon functions
2024-05-07 3:38 [PATCH 0/2] New timeout while waiting for mdmon Kinga Stefaniuk
@ 2024-05-07 3:38 ` Kinga Stefaniuk
2024-05-07 3:38 ` [PATCH 2/2] Wait for mdmon when it is stared via systemd Kinga Stefaniuk
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Kinga Stefaniuk @ 2024-05-07 3:38 UTC (permalink / raw)
To: linux-raid; +Cc: jes, mariusz.tkaczyk
Devnm shall not be changed inside mdmon_running()
and mdmon_pid() functions, change this parameter to const.
Signed-off-by: Kinga Stefaniuk <kinga.stefaniuk@intel.com>
---
mdadm.h | 4 ++--
util.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/mdadm.h b/mdadm.h
index ae2106a2f28f..af4c484afdf7 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -1767,8 +1767,8 @@ extern int is_subarray_active(char *subarray, char *devname);
extern int open_subarray(char *dev, char *subarray, struct supertype *st, int quiet);
extern struct superswitch *version_to_superswitch(char *vers);
-extern int mdmon_running(char *devnm);
-extern int mdmon_pid(char *devnm);
+extern int mdmon_running(const char *devnm);
+extern int mdmon_pid(const char *devnm);
extern int check_env(char *name);
extern __u32 random32(void);
extern void random_uuid(__u8 *buf);
diff --git a/util.c b/util.c
index 9e8370450a8d..65056a19e2cd 100644
--- a/util.c
+++ b/util.c
@@ -1891,7 +1891,7 @@ unsigned long long min_recovery_start(struct mdinfo *array)
return recovery_start;
}
-int mdmon_pid(char *devnm)
+int mdmon_pid(const char *devnm)
{
char path[100];
char pid[10];
@@ -1911,7 +1911,7 @@ int mdmon_pid(char *devnm)
return atoi(pid);
}
-int mdmon_running(char *devnm)
+int mdmon_running(const char *devnm)
{
int pid = mdmon_pid(devnm);
if (pid <= 0)
--
2.35.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] Wait for mdmon when it is stared via systemd
2024-05-07 3:38 [PATCH 0/2] New timeout while waiting for mdmon Kinga Stefaniuk
2024-05-07 3:38 ` [PATCH 1/2] util.c: change devnm to const in mdmon functions Kinga Stefaniuk
@ 2024-05-07 3:38 ` Kinga Stefaniuk
2024-05-14 9:17 ` Paul Menzel
2024-05-07 4:28 ` [PATCH 0/2] New timeout while waiting for mdmon Paul E Luse
2024-05-14 9:09 ` Mariusz Tkaczyk
3 siblings, 1 reply; 8+ messages in thread
From: Kinga Stefaniuk @ 2024-05-07 3:38 UTC (permalink / raw)
To: linux-raid; +Cc: jes, mariusz.tkaczyk
When mdmon is being started it may need few seconds to start.
For now, we didn't wait for it. Introduce wait_for_mdmon()
function, which waits up to 5 seconds for mdmon to start completely.
Signed-off-by: Kinga Stefaniuk <kinga.stefaniuk@intel.com>
---
Assemble.c | 4 ++--
Grow.c | 7 ++++---
mdadm.h | 2 ++
util.c | 29 +++++++++++++++++++++++++++++
4 files changed, 37 insertions(+), 5 deletions(-)
diff --git a/Assemble.c b/Assemble.c
index f6c5b99e25e2..9cb1747df0a3 100644
--- a/Assemble.c
+++ b/Assemble.c
@@ -2175,8 +2175,8 @@ int assemble_container_content(struct supertype *st, int mdfd,
if (!mdmon_running(st->container_devnm))
start_mdmon(st->container_devnm);
ping_monitor(st->container_devnm);
- if (mdmon_running(st->container_devnm) &&
- st->update_tail == NULL)
+ if (wait_for_mdmon(st->container_devnm) == MDADM_STATUS_SUCCESS &&
+ !st->update_tail)
st->update_tail = &st->updates;
}
diff --git a/Grow.c b/Grow.c
index 074f19956e17..0e44fae4891e 100644
--- a/Grow.c
+++ b/Grow.c
@@ -2085,7 +2085,7 @@ int Grow_reshape(char *devname, int fd,
if (!mdmon_running(st->container_devnm))
start_mdmon(st->container_devnm);
ping_monitor(container);
- if (mdmon_running(st->container_devnm) == false) {
+ if (wait_for_mdmon(st->container_devnm) != MDADM_STATUS_SUCCESS) {
pr_err("No mdmon found. Grow cannot continue.\n");
goto release;
}
@@ -3176,7 +3176,8 @@ static int reshape_array(char *container, int fd, char *devname,
if (!mdmon_running(container))
start_mdmon(container);
ping_monitor(container);
- if (mdmon_running(container) && st->update_tail == NULL)
+ if (wait_for_mdmon(container) == MDADM_STATUS_SUCCESS &&
+ !st->update_tail)
st->update_tail = &st->updates;
}
}
@@ -5140,7 +5141,7 @@ int Grow_continue_command(char *devname, int fd,
start_mdmon(container);
ping_monitor(container);
- if (mdmon_running(container) == false) {
+ if (wait_for_mdmon(container) != MDADM_STATUS_SUCCESS) {
pr_err("No mdmon found. Grow cannot continue.\n");
ret_val = 1;
goto Grow_continue_command_exit;
diff --git a/mdadm.h b/mdadm.h
index af4c484afdf7..9b8fb3f6f8d8 100644
--- a/mdadm.h
+++ b/mdadm.h
@@ -1769,6 +1769,8 @@ extern struct superswitch *version_to_superswitch(char *vers);
extern int mdmon_running(const char *devnm);
extern int mdmon_pid(const char *devnm);
+extern mdadm_status_t wait_for_mdmon(const char *devnm);
+
extern int check_env(char *name);
extern __u32 random32(void);
extern void random_uuid(__u8 *buf);
diff --git a/util.c b/util.c
index 65056a19e2cd..df12cf2bb2b1 100644
--- a/util.c
+++ b/util.c
@@ -1921,6 +1921,35 @@ int mdmon_running(const char *devnm)
return 0;
}
+/*
+ * wait_for_mdmon() - Waits for mdmon within specified time.
+ * @devnm: Device for which mdmon should start.
+ *
+ * Function waits for mdmon to start. It may need few seconds
+ * to start, we set timeout to 5, it should be sufficient.
+ * Do not wait if mdmon has been started.
+ *
+ * Return: MDADM_STATUS_SUCCESS if mdmon is running, error code otherwise.
+ */
+mdadm_status_t wait_for_mdmon(const char *devnm)
+{
+ const time_t mdmon_timeout = 5;
+ time_t start_time = time(0);
+
+ if (mdmon_running(devnm))
+ return MDADM_STATUS_SUCCESS;
+
+ pr_info("Waiting for mdmon to start\n");
+ while (time(0) - start_time < mdmon_timeout) {
+ sleep_for(0, MSEC_TO_NSEC(200), true);
+ if (mdmon_running(devnm))
+ return MDADM_STATUS_SUCCESS;
+ };
+
+ pr_err("Timeout waiting for mdmon\n");
+ return MDADM_STATUS_ERROR;
+}
+
int start_mdmon(char *devnm)
{
int i;
--
2.35.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] New timeout while waiting for mdmon
2024-05-07 3:38 [PATCH 0/2] New timeout while waiting for mdmon Kinga Stefaniuk
2024-05-07 3:38 ` [PATCH 1/2] util.c: change devnm to const in mdmon functions Kinga Stefaniuk
2024-05-07 3:38 ` [PATCH 2/2] Wait for mdmon when it is stared via systemd Kinga Stefaniuk
@ 2024-05-07 4:28 ` Paul E Luse
2024-05-08 7:22 ` Kinga Tanska
2024-05-14 9:09 ` Mariusz Tkaczyk
3 siblings, 1 reply; 8+ messages in thread
From: Paul E Luse @ 2024-05-07 4:28 UTC (permalink / raw)
To: Kinga Stefaniuk; +Cc: linux-raid, jes, mariusz.tkaczyk
On Tue, 7 May 2024 05:38:54 +0200
Kinga Stefaniuk <kinga.stefaniuk@intel.com> wrote:
> This series of patches contains adding new timeout
> which is needed to have mdmon started completely.
>
Thanks Kinga! What is the end user experience w/o this patch? (ie what
negative impact does this patch address? mystery hang? missing events?)
-Paul
> Kinga Stefaniuk (2):
> util.c: change devnm to const in mdmon functions
> Wait for mdmon when it is stared via systemd
>
> Assemble.c | 4 ++--
> Grow.c | 7 ++++---
> mdadm.h | 6 ++++--
> util.c | 33 +++++++++++++++++++++++++++++++--
> 4 files changed, 41 insertions(+), 9 deletions(-)
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] New timeout while waiting for mdmon
2024-05-07 4:28 ` [PATCH 0/2] New timeout while waiting for mdmon Paul E Luse
@ 2024-05-08 7:22 ` Kinga Tanska
0 siblings, 0 replies; 8+ messages in thread
From: Kinga Tanska @ 2024-05-08 7:22 UTC (permalink / raw)
To: Paul E Luse, jes, mariusz.tkaczyk; +Cc: Kinga Stefaniuk, linux-raid
On Mon, 6 May 2024 21:28:59 -0700
Paul E Luse <paul.e.luse@linux.intel.com> wrote:
> On Tue, 7 May 2024 05:38:54 +0200
> Kinga Stefaniuk <kinga.stefaniuk@intel.com> wrote:
>
> > This series of patches contains adding new timeout
> > which is needed to have mdmon started completely.
> >
>
> Thanks Kinga! What is the end user experience w/o this patch? (ie
> what negative impact does this patch address? mystery hang? missing
> events?)
>
> -Paul
>
> > Kinga Stefaniuk (2):
> > util.c: change devnm to const in mdmon functions
> > Wait for mdmon when it is stared via systemd
> >
> > Assemble.c | 4 ++--
> > Grow.c | 7 ++++---
> > mdadm.h | 6 ++++--
> > util.c | 33 +++++++++++++++++++++++++++++++--
> > 4 files changed, 41 insertions(+), 9 deletions(-)
> >
>
>
Hi Paul,
we have an issue for R0 - if grow is run for R0 to n-number of drives,
R0 has to move to R4, then mdmon is started for it. After that, mdadm
finishes --grow command, and systemd runs --grow-continue to have this
reshape continued for prepared array. With new kernels, we noticed that
R4 has not enough time to has mdmon started during this process, and for
this reason, the next command, --grow-continue failed.
Another problem is reboot during resync, sometimes mdmon has not
enough time to start too, and resync has been not continued after
reboot.
That's why I've proposed timeout which will address this problem.
Kinga
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] New timeout while waiting for mdmon
2024-05-07 3:38 [PATCH 0/2] New timeout while waiting for mdmon Kinga Stefaniuk
` (2 preceding siblings ...)
2024-05-07 4:28 ` [PATCH 0/2] New timeout while waiting for mdmon Paul E Luse
@ 2024-05-14 9:09 ` Mariusz Tkaczyk
3 siblings, 0 replies; 8+ messages in thread
From: Mariusz Tkaczyk @ 2024-05-14 9:09 UTC (permalink / raw)
To: Kinga Stefaniuk; +Cc: linux-raid, jes
On Tue, 7 May 2024 05:38:54 +0200
Kinga Stefaniuk <kinga.stefaniuk@intel.com> wrote:
> This series of patches contains adding new timeout
> which is needed to have mdmon started completely.
>
> Kinga Stefaniuk (2):
> util.c: change devnm to const in mdmon functions
> Wait for mdmon when it is stared via systemd
>
> Assemble.c | 4 ++--
> Grow.c | 7 ++++---
> mdadm.h | 6 ++++--
> util.c | 33 +++++++++++++++++++++++++++++++--
> 4 files changed, 41 insertions(+), 9 deletions(-)
>
Applied!
Thanks,
Mariusz
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Wait for mdmon when it is stared via systemd
2024-05-07 3:38 ` [PATCH 2/2] Wait for mdmon when it is stared via systemd Kinga Stefaniuk
@ 2024-05-14 9:17 ` Paul Menzel
2024-05-14 10:56 ` Kinga Stefaniuk
0 siblings, 1 reply; 8+ messages in thread
From: Paul Menzel @ 2024-05-14 9:17 UTC (permalink / raw)
To: Kinga Stefaniuk; +Cc: linux-raid, jes, mariusz.tkaczyk
Dear Kinga,
Thank you for the patch. There is a small typo in the summary: star*t*ed.
Am 07.05.24 um 05:38 schrieb Kinga Stefaniuk:
> When mdmon is being started it may need few seconds to start.
> For now, we didn't wait for it. Introduce wait_for_mdmon()
> function, which waits up to 5 seconds for mdmon to start completely.
>
> Signed-off-by: Kinga Stefaniuk <kinga.stefaniuk@intel.com>
> ---
> Assemble.c | 4 ++--
> Grow.c | 7 ++++---
> mdadm.h | 2 ++
> util.c | 29 +++++++++++++++++++++++++++++
> 4 files changed, 37 insertions(+), 5 deletions(-)
>
> diff --git a/Assemble.c b/Assemble.c
> index f6c5b99e25e2..9cb1747df0a3 100644
> --- a/Assemble.c
> +++ b/Assemble.c
> @@ -2175,8 +2175,8 @@ int assemble_container_content(struct supertype *st, int mdfd,
> if (!mdmon_running(st->container_devnm))
> start_mdmon(st->container_devnm);
> ping_monitor(st->container_devnm);
> - if (mdmon_running(st->container_devnm) &&
> - st->update_tail == NULL)
> + if (wait_for_mdmon(st->container_devnm) == MDADM_STATUS_SUCCESS &&
> + !st->update_tail)
> st->update_tail = &st->updates;
> }
>
> diff --git a/Grow.c b/Grow.c
> index 074f19956e17..0e44fae4891e 100644
> --- a/Grow.c
> +++ b/Grow.c
> @@ -2085,7 +2085,7 @@ int Grow_reshape(char *devname, int fd,
> if (!mdmon_running(st->container_devnm))
> start_mdmon(st->container_devnm);
> ping_monitor(container);
> - if (mdmon_running(st->container_devnm) == false) {
> + if (wait_for_mdmon(st->container_devnm) != MDADM_STATUS_SUCCESS) {
> pr_err("No mdmon found. Grow cannot continue.\n");
> goto release;
> }
> @@ -3176,7 +3176,8 @@ static int reshape_array(char *container, int fd, char *devname,
> if (!mdmon_running(container))
> start_mdmon(container);
> ping_monitor(container);
> - if (mdmon_running(container) && st->update_tail == NULL)
> + if (wait_for_mdmon(container) == MDADM_STATUS_SUCCESS &&
> + !st->update_tail)
> st->update_tail = &st->updates;
> }
> }
> @@ -5140,7 +5141,7 @@ int Grow_continue_command(char *devname, int fd,
> start_mdmon(container);
> ping_monitor(container);
>
> - if (mdmon_running(container) == false) {
> + if (wait_for_mdmon(container) != MDADM_STATUS_SUCCESS) {
> pr_err("No mdmon found. Grow cannot continue.\n");
> ret_val = 1;
> goto Grow_continue_command_exit;
> diff --git a/mdadm.h b/mdadm.h
> index af4c484afdf7..9b8fb3f6f8d8 100644
> --- a/mdadm.h
> +++ b/mdadm.h
> @@ -1769,6 +1769,8 @@ extern struct superswitch *version_to_superswitch(char *vers);
>
> extern int mdmon_running(const char *devnm);
> extern int mdmon_pid(const char *devnm);
> +extern mdadm_status_t wait_for_mdmon(const char *devnm);
> +
> extern int check_env(char *name);
> extern __u32 random32(void);
> extern void random_uuid(__u8 *buf);
> diff --git a/util.c b/util.c
> index 65056a19e2cd..df12cf2bb2b1 100644
> --- a/util.c
> +++ b/util.c
> @@ -1921,6 +1921,35 @@ int mdmon_running(const char *devnm)
> return 0;
> }
>
> +/*
> + * wait_for_mdmon() - Waits for mdmon within specified time.
> + * @devnm: Device for which mdmon should start.
> + *
> + * Function waits for mdmon to start. It may need few seconds
> + * to start, we set timeout to 5, it should be sufficient.
> + * Do not wait if mdmon has been started.
> + *
> + * Return: MDADM_STATUS_SUCCESS if mdmon is running, error code otherwise.
> + */
> +mdadm_status_t wait_for_mdmon(const char *devnm)
> +{
> + const time_t mdmon_timeout = 5;
> + time_t start_time = time(0);
> +
> + if (mdmon_running(devnm))
> + return MDADM_STATUS_SUCCESS;
> +
> + pr_info("Waiting for mdmon to start\n");
> + while (time(0) - start_time < mdmon_timeout) {
> + sleep_for(0, MSEC_TO_NSEC(200), true);
> + if (mdmon_running(devnm))
> + return MDADM_STATUS_SUCCESS;
> + };
> +
> + pr_err("Timeout waiting for mdmon\n");
Please print the timeout limit.
> + return MDADM_STATUS_ERROR;
> +}
> +
> int start_mdmon(char *devnm)
> {
> int i;
Doesn’t systemd have some interface sd_ on how to notify about a
successful start?
Kind nregards,
Paul
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] Wait for mdmon when it is stared via systemd
2024-05-14 9:17 ` Paul Menzel
@ 2024-05-14 10:56 ` Kinga Stefaniuk
0 siblings, 0 replies; 8+ messages in thread
From: Kinga Stefaniuk @ 2024-05-14 10:56 UTC (permalink / raw)
To: Paul Menzel; +Cc: Kinga Stefaniuk, linux-raid, jes, mariusz.tkaczyk
On Tue, 14 May 2024 11:17:16 +0200
Paul Menzel <pmenzel@molgen.mpg.de> wrote:
> Dear Kinga,
>
>
> Thank you for the patch. There is a small typo in the summary:
> star*t*ed.
>
> Am 07.05.24 um 05:38 schrieb Kinga Stefaniuk:
> > When mdmon is being started it may need few seconds to start.
> > For now, we didn't wait for it. Introduce wait_for_mdmon()
> > function, which waits up to 5 seconds for mdmon to start completely.
> >
> > Signed-off-by: Kinga Stefaniuk <kinga.stefaniuk@intel.com>
> > ---
> > Assemble.c | 4 ++--
> > Grow.c | 7 ++++---
> > mdadm.h | 2 ++
> > util.c | 29 +++++++++++++++++++++++++++++
> > 4 files changed, 37 insertions(+), 5 deletions(-)
> >
> > diff --git a/Assemble.c b/Assemble.c
> > index f6c5b99e25e2..9cb1747df0a3 100644
> > --- a/Assemble.c
> > +++ b/Assemble.c
> > @@ -2175,8 +2175,8 @@ int assemble_container_content(struct
> > supertype *st, int mdfd, if (!mdmon_running(st->container_devnm))
> > start_mdmon(st->container_devnm);
> > ping_monitor(st->container_devnm);
> > - if (mdmon_running(st->container_devnm) &&
> > - st->update_tail == NULL)
> > + if (wait_for_mdmon(st->container_devnm) ==
> > MDADM_STATUS_SUCCESS &&
> > + !st->update_tail)
> > st->update_tail = &st->updates;
> > }
> >
> > diff --git a/Grow.c b/Grow.c
> > index 074f19956e17..0e44fae4891e 100644
> > --- a/Grow.c
> > +++ b/Grow.c
> > @@ -2085,7 +2085,7 @@ int Grow_reshape(char *devname, int fd,
> > if (!mdmon_running(st->container_devnm))
> > start_mdmon(st->container_devnm);
> > ping_monitor(container);
> > - if (mdmon_running(st->container_devnm) ==
> > false) {
> > + if (wait_for_mdmon(st->container_devnm) !=
> > MDADM_STATUS_SUCCESS) { pr_err("No mdmon found. Grow cannot
> > continue.\n"); goto release;
> > }
> > @@ -3176,7 +3176,8 @@ static int reshape_array(char *container, int
> > fd, char *devname, if (!mdmon_running(container))
> > start_mdmon(container);
> > ping_monitor(container);
> > - if (mdmon_running(container) &&
> > st->update_tail == NULL)
> > + if (wait_for_mdmon(container) ==
> > MDADM_STATUS_SUCCESS &&
> > + !st->update_tail)
> > st->update_tail = &st->updates;
> > }
> > }
> > @@ -5140,7 +5141,7 @@ int Grow_continue_command(char *devname, int
> > fd, start_mdmon(container);
> > ping_monitor(container);
> >
> > - if (mdmon_running(container) == false) {
> > + if (wait_for_mdmon(container) !=
> > MDADM_STATUS_SUCCESS) { pr_err("No mdmon found. Grow cannot
> > continue.\n"); ret_val = 1;
> > goto Grow_continue_command_exit;
> > diff --git a/mdadm.h b/mdadm.h
> > index af4c484afdf7..9b8fb3f6f8d8 100644
> > --- a/mdadm.h
> > +++ b/mdadm.h
> > @@ -1769,6 +1769,8 @@ extern struct superswitch
> > *version_to_superswitch(char *vers);
> > extern int mdmon_running(const char *devnm);
> > extern int mdmon_pid(const char *devnm);
> > +extern mdadm_status_t wait_for_mdmon(const char *devnm);
> > +
> > extern int check_env(char *name);
> > extern __u32 random32(void);
> > extern void random_uuid(__u8 *buf);
> > diff --git a/util.c b/util.c
> > index 65056a19e2cd..df12cf2bb2b1 100644
> > --- a/util.c
> > +++ b/util.c
> > @@ -1921,6 +1921,35 @@ int mdmon_running(const char *devnm)
> > return 0;
> > }
> >
> > +/*
> > + * wait_for_mdmon() - Waits for mdmon within specified time.
> > + * @devnm: Device for which mdmon should start.
> > + *
> > + * Function waits for mdmon to start. It may need few seconds
> > + * to start, we set timeout to 5, it should be sufficient.
> > + * Do not wait if mdmon has been started.
> > + *
> > + * Return: MDADM_STATUS_SUCCESS if mdmon is running, error code
> > otherwise.
> > + */
> > +mdadm_status_t wait_for_mdmon(const char *devnm)
> > +{
> > + const time_t mdmon_timeout = 5;
> > + time_t start_time = time(0);
> > +
> > + if (mdmon_running(devnm))
> > + return MDADM_STATUS_SUCCESS;
> > +
> > + pr_info("Waiting for mdmon to start\n");
> > + while (time(0) - start_time < mdmon_timeout) {
> > + sleep_for(0, MSEC_TO_NSEC(200), true);
> > + if (mdmon_running(devnm))
> > + return MDADM_STATUS_SUCCESS;
> > + };
> > +
> > + pr_err("Timeout waiting for mdmon\n");
>
> Please print the timeout limit.
>
> > + return MDADM_STATUS_ERROR;
> > +}
> > +
> > int start_mdmon(char *devnm)
> > {
> > int i;
>
> Doesn’t systemd have some interface sd_ on how to notify about a
> successful start?
>
>
> Kind nregards,
>
> Paul
>
Hi Paul,
mdadm has its own mechanism to verify if mdmon is running and using it
we are not limited only to systemd, so it's better to use this way.
Thanks,
Kinga
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-05-14 10:56 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-07 3:38 [PATCH 0/2] New timeout while waiting for mdmon Kinga Stefaniuk
2024-05-07 3:38 ` [PATCH 1/2] util.c: change devnm to const in mdmon functions Kinga Stefaniuk
2024-05-07 3:38 ` [PATCH 2/2] Wait for mdmon when it is stared via systemd Kinga Stefaniuk
2024-05-14 9:17 ` Paul Menzel
2024-05-14 10:56 ` Kinga Stefaniuk
2024-05-07 4:28 ` [PATCH 0/2] New timeout while waiting for mdmon Paul E Luse
2024-05-08 7:22 ` Kinga Tanska
2024-05-14 9:09 ` Mariusz Tkaczyk
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).