Closed piller-imre closed 4 years ago
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
#include <linux/init.h> /* Needed for the macros */
#include <linux/sched/signal.h>
#include <linux/sched.h>
#include <linux/sched/rt.h>
struct rq *ready;
struct task_struct *p;
struct list_head *list;
///< The author -- visible when you use modinfo
MODULE_AUTHOR("Vass Dávid Attila");
///< The description -- see modinfo
MODULE_DESCRIPTION("Process information getter");
MODULE_LICENSE("GPL");
static int __init processinfo_init(void)
{
for_each_process(p)
{
printk(KERN_CRIT "/comm/and: %s pid: %d prio: %d rt_prio: %d weight: %lu vruntime: %llu pcount:%lu \nsum_exec_runtime:%llu prev_sum_exec_runtime:%llu exec_start:%llu\n",p->comm,p->pid,p->prio,rt_task(p),p->se.load.weight,p->se.vruntime,p->sched_info.pcount,p->se.sum_exec_runtime,p->se.prev_sum_exec_runtime,p->se.exec_start);
printk(KERN_CRIT "utime: %llu stime: %llu gtime: %llu",p->utime,p->stime,p->gtime);
}
return 0;
}
static void __exit processinfo_end(void)
{
printk(KERN_INFO "Goodbye world\n");
}
module_init(processinfo_init);
module_exit(processinfo_end);
rt_prio - 1 az értéke ha az adott processz, valós idejű. 0 ha normál processz pcount - ez a változó, az amelyik megmutatja hogy az adott processzt hányszor választották már meg futásra. vruntime - virtuális futásideje az adott processznek
A futáshoz kapcsolódó adatokat kinyerni valahogy a kernelből táblázatos formában. Az oszlopok például pid, priority, időszelet. Érdemes a kontextusváltásokat is közé tenni.