Messages in this thread | | | Date | Tue, 13 May 2008 20:47:28 +0900 | From | Hirofumi Nakagawa <> | Subject | [RFC][PATCH 0/1] MAZE: Mazed processes monitor |
| |
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; } -- ---
| |