Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <linux/kernel.h>
- #include <linux/sched.h>
- #include <linux/mm_types.h>
- #include <linux/mmzone.h>
- #include <asm/pgtable.h>
- #include <stdio.h>
- #include <linux/page-flags.h>
- asmlinkage int sys_zone_stats(void){
- struct zone *actualmemory;
- struct page *actualpage;
- struct list_head actualLru;
- int i,active, inactive,referencedA, referencedI;
- active=inactive=referencedA=referencedI=0;
- for_each_zone(actualmemory){
- for_each_lru(i) {
- actualLru = actualmemory->zone_pgdat->lruvec.lists[i];
- list_for_each_entry(actualpage, &actualLru.list, lru) {
- if(i == LRU_ACTIVE_ANON || i == LRU_ACTIVE_FILE){
- active++;
- if(PageReferenced(actualpage)){
- referencedA ++;
- }
- }else{
- inactive++;
- if(PageReferenced(actualpage)){
- referencedI++;
- }
- }
- }
- }
- }
- printk("Pages activos: %d \n", active);
- printk("Pages inactivos: %d \n", inactive);
- printk("Pages activos con bit de referencia: %d \n", referencedA);
- printk("Pages inactivos con bit de referencia: %d \n", referencedI);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement