Re: [RFC][PATCH 0/1] MAZE: Mazed processes monitor

From: Andrew Morton
Date: Tue May 13 2008 - 11:42:19 EST


On Tue, 13 May 2008 20:47:28 +0900 Hirofumi Nakagawa <hnakagawa@xxxxxxxxxxxxxxxx> wrote:

> Hi all.
>
> This patch provides the mazed process monitor,named MAZE.
> MAZE's purpose is to notify or terminate registered processes when they are mazed.
> The definition of mazed process is a process using excessive CPU cycles,
> that is long time keeping TASK_RUNNING state.
> MAZE detects mazed processes and sends specified signals to them.
> This implements a CGL (Carrier Grade Linux) requirement (AVL.14.0).
>
> Possible uses:
> * High-Availability system
> * system using many Real-Time processes such as embedded
>
> Please any comments!
>
> Hirofumi Nakagawa
>
> --- Usage
> Add monitoring process.
>
> % echo "1234 10000 20000 24 9" > /proc/maze/entries
>
> The numeric values are "pid","soft limit [msec]","hard limit [msec]",
> "soft signal" and "hard signal".
>
>
> Get monitoring process list.
>
> % cat /proc/maze/entries
>
> --- Example
> As follows example express the feature of MAZE function.
>
> --
> #include <sys/types.h>
> #include <sys/wait.h>
> #include <unistd.h>
>
> #include <stdio.h>
> #include <stdlib.h>
>
> int main(int argc, char *argv[])
> {
> int state,i;
> char cmd[128];
>
> sprintf(cmd, "echo \"%d 10000 20000 24 9\" > /proc/maze/entries", getpid());
> system(cmd);
>
> if (!fork()) {
> printf("Mazed process start.\n");
> for(;;);
> }
>
> if (!fork()) {
> printf("Not mazed process start.\n");
> for(i = 0;i < 20; i++)
> sleep(1);
> printf("Not mazed process finish.\n");
> exit(0);
> }
>
> for (i = 0;i < 2; i++)
> wait(&state);
>
> return 0;
> }

Please include (and maintain) all the above changelog information with
the patch itself rather than separately. Because if I were to merge
this patch, I'd just have to copy-n-paste it all over anwyay.

Please send the text of AVL.14.0 (or a sufficient part of it for us to
understand the requirement) and maintain that within the changelog
also.

The immediate quesstion is, of course, "why does this need to be done
in-kernel?". I am unable to answer that from the provided changelog
information, and I should be able to do that.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/