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;
}
--
---
|  |