Added support for faulty pagers and their threads to become zombies

Added support for pagers that fault to suspend and become zombies
along with all the threads that they manage. Zombie killing is to
be done at a later time, from this special zombie queue.

The implementation works same as a suspension, with the added action
that the thread is moved to a queue in kernel container.
This commit is contained in:
Bahadir Balban
2009-10-19 18:48:55 +03:00
parent 9177166817
commit cfa35e4a66
8 changed files with 110 additions and 78 deletions

View File

@@ -8,8 +8,6 @@
#define __RESOURCES_H__
/* Number of containers defined at compile-time */
#include <l4/config.h>
#include <l4/generic/capability.h>
#include <l4/lib/idpool.h>
#include INC_SUBARCH(mm.h)
@@ -41,6 +39,13 @@ container_head_init(struct container_head *chead)
link_init(&chead->list);
}
/* Hash table for all existing tasks */
struct ktcb_list {
struct link list;
struct spinlock list_lock;
int count;
};
/*
* Everything on the platform is described and stored
* in the structure below.
@@ -81,6 +86,9 @@ struct kernel_container {
struct mem_cache *mutex_cache;
struct mem_cache *cap_cache;
struct mem_cache *cont_cache;
/* Zombie thread list */
struct ktcb_list zombie_list;
};
extern struct kernel_container kernel_container;