mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 03:06:10 +00:00
Kernel logs when thread ends
This commit is contained in:
parent
ddf2ede927
commit
bd4b19f8a7
3 changed files with 34 additions and 0 deletions
|
@ -17,6 +17,7 @@ struct ReplyMessage{
|
|||
|
||||
#define EXECVE_MESSAGE 1
|
||||
#define CLONE_MESSAGE 2
|
||||
#define EXIT_MESSAGE 3
|
||||
#ifdef AHA_DEBUG
|
||||
#define AHA_PRINTK(args...) printk(args)
|
||||
#else
|
||||
|
@ -30,4 +31,5 @@ void aha_handle_insult_messages(struct ReplyMessage *msg, char __user* file,\
|
|||
char __user* __user* argv);
|
||||
void aha_get_reply_message(char* key, struct ReplyMessage *msg);
|
||||
void aha_record_sys_clone(int pid, int ppid);
|
||||
void aha_dump_exits(void);
|
||||
#endif
|
||||
|
|
|
@ -232,3 +232,33 @@ void aha_record_sys_clone(int pid, int ppid)
|
|||
#undef buf__size
|
||||
}
|
||||
|
||||
/* Tracks if a thread exits, aiming to free up pids in the process trees
|
||||
* Process trees are internally read fronm task_struct
|
||||
*/
|
||||
void aha_dump_exits(void)
|
||||
{
|
||||
int mode = 0644;
|
||||
int fd;
|
||||
struct openflags flg;
|
||||
char filename[32];
|
||||
char qn[64];
|
||||
char buf[16];
|
||||
flg.w = 1;
|
||||
flg.c = 1;
|
||||
if (aha_create_filename((char*)&filename,32)>0){
|
||||
/* Put message in output queue */
|
||||
if (snprintf((char*)&qn,64,"out/%s",filename)>0){
|
||||
if ((fd = os_open_file(qn,flg,mode))>0){
|
||||
__aha_set_type_tag(fd,(char*)&buf,16,EXIT_MESSAGE);
|
||||
__aha_dump_pid_ppids(fd,(char*)&buf,16);
|
||||
__aha_set_done_tag (fd,(char*)&buf,16);
|
||||
os_close_file(fd);
|
||||
}
|
||||
}else{
|
||||
AHA_PRINTK("record-exit: Could not put filename in output queue\n");
|
||||
}
|
||||
}else{
|
||||
AHA_PRINTK("record-exit: No filename could be generated\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include "os.h"
|
||||
#include "skas.h"
|
||||
#include "tlb.h"
|
||||
#include "shared/aha.h"
|
||||
|
||||
/*
|
||||
* This is a per-cpu array. A processor only modifies its entry and it only
|
||||
|
@ -123,6 +124,7 @@ void interrupt_end(void)
|
|||
|
||||
void exit_thread(void)
|
||||
{
|
||||
aha_dump_exits();
|
||||
}
|
||||
|
||||
void *get_current(void)
|
||||
|
|
Loading…
Reference in a new issue