ttySMX* devices, /proc/vmstat change, /proc/meminfo change
This commit is contained in:
		| @@ -140,6 +140,7 @@ static const char low_density_names[][4] = { | |||||||
| "AM8",  "AM9",  "AM10", "AM11", "AM12", "AM13", "AM14", "AM15", | "AM8",  "AM9",  "AM10", "AM11", "AM12", "AM13", "AM14", "AM15", | ||||||
| "DB0",  "DB1",  "DB2",  "DB3",  "DB4",  "DB5",  "DB6",  "DB7", | "DB0",  "DB1",  "DB2",  "DB3",  "DB4",  "DB5",  "DB6",  "DB7", | ||||||
| "SG0", | "SG0", | ||||||
|  | "SMX0",  "SMX1",  "SMX2", | ||||||
| }; | }; | ||||||
|  |  | ||||||
| /* Try to guess the device name (useful until /proc/PID/tty is added) */ | /* Try to guess the device name (useful until /proc/PID/tty is added) */ | ||||||
|   | |||||||
| @@ -502,9 +502,9 @@ unsigned long kb_inactive; | |||||||
| unsigned long kb_mapped; | unsigned long kb_mapped; | ||||||
| unsigned long kb_pagetables; | unsigned long kb_pagetables; | ||||||
| // seen on a 2.6.x kernel: | // seen on a 2.6.x kernel: | ||||||
| unsigned long kb_vmalloc_chunk; | static unsigned long kb_vmalloc_chunk; | ||||||
| unsigned long kb_vmalloc_total; | static unsigned long kb_vmalloc_total; | ||||||
| unsigned long kb_vmalloc_used; | static unsigned long kb_vmalloc_used; | ||||||
|  |  | ||||||
| void meminfo(void){ | void meminfo(void){ | ||||||
|   char namebuf[16]; /* big enough to hold any row name */ |   char namebuf[16]; /* big enough to hold any row name */ | ||||||
| @@ -619,6 +619,27 @@ unsigned long vm_kswapd_steal; // pages reclaimed by kswapd | |||||||
| unsigned long vm_pageoutrun;  // times kswapd ran page reclaim | unsigned long vm_pageoutrun;  // times kswapd ran page reclaim | ||||||
| unsigned long vm_allocstall; // times a page allocator ran direct reclaim | unsigned long vm_allocstall; // times a page allocator ran direct reclaim | ||||||
| unsigned long vm_pgrotated; // pages rotated to the tail of the LRU for immediate reclaim | unsigned long vm_pgrotated; // pages rotated to the tail of the LRU for immediate reclaim | ||||||
|  | // seen on a 2.6.8-rc1 kernel, apparently replacing old fields | ||||||
|  | static unsigned long vm_pgalloc_dma;          //  | ||||||
|  | static unsigned long vm_pgalloc_high;         //  | ||||||
|  | static unsigned long vm_pgalloc_normal;       //  | ||||||
|  | static unsigned long vm_pgrefill_dma;         //  | ||||||
|  | static unsigned long vm_pgrefill_high;        //  | ||||||
|  | static unsigned long vm_pgrefill_normal;      //  | ||||||
|  | static unsigned long vm_pgscan_direct_dma;    //  | ||||||
|  | static unsigned long vm_pgscan_direct_high;   //  | ||||||
|  | static unsigned long vm_pgscan_direct_normal; //  | ||||||
|  | static unsigned long vm_pgscan_kswapd_dma;    //  | ||||||
|  | static unsigned long vm_pgscan_kswapd_high;   //  | ||||||
|  | static unsigned long vm_pgscan_kswapd_normal; //  | ||||||
|  | static unsigned long vm_pgsteal_dma;          //  | ||||||
|  | static unsigned long vm_pgsteal_high;         //  | ||||||
|  | static unsigned long vm_pgsteal_normal;       //  | ||||||
|  | // seen on a 2.6.8-rc1 kernel | ||||||
|  | static unsigned long vm_kswapd_inodesteal;    // | ||||||
|  | static unsigned long vm_nr_unstable;          // | ||||||
|  | static unsigned long vm_pginodesteal;         // | ||||||
|  | static unsigned long vm_slabs_scanned;        // | ||||||
|  |  | ||||||
| void vminfo(void){ | void vminfo(void){ | ||||||
|   char namebuf[16]; /* big enough to hold any row name */ |   char namebuf[16]; /* big enough to hold any row name */ | ||||||
| @@ -628,7 +649,7 @@ void vminfo(void){ | |||||||
|   char *tail; |   char *tail; | ||||||
|   static const vm_table_struct vm_table[] = { |   static const vm_table_struct vm_table[] = { | ||||||
|   {"allocstall",          &vm_allocstall}, |   {"allocstall",          &vm_allocstall}, | ||||||
|   {"kswapd_inodesteal",          &vm_}, |   {"kswapd_inodesteal",   &vm_kswapd_inodesteal}, | ||||||
|   {"kswapd_steal",        &vm_kswapd_steal}, |   {"kswapd_steal",        &vm_kswapd_steal}, | ||||||
|   {"nr_dirty",            &vm_nr_dirty},           // page version of meminfo Dirty |   {"nr_dirty",            &vm_nr_dirty},           // page version of meminfo Dirty | ||||||
|   {"nr_mapped",           &vm_nr_mapped},          // page version of meminfo Mapped |   {"nr_mapped",           &vm_nr_mapped},          // page version of meminfo Mapped | ||||||
| @@ -636,43 +657,48 @@ void vminfo(void){ | |||||||
|   {"nr_pagecache",        &vm_nr_pagecache},       // gone in 2.5.66+ kernels |   {"nr_pagecache",        &vm_nr_pagecache},       // gone in 2.5.66+ kernels | ||||||
|   {"nr_reverse_maps",     &vm_nr_reverse_maps},    // page version of meminfo ReverseMaps GONE |   {"nr_reverse_maps",     &vm_nr_reverse_maps},    // page version of meminfo ReverseMaps GONE | ||||||
|   {"nr_slab",             &vm_nr_slab},            // page version of meminfo Slab |   {"nr_slab",             &vm_nr_slab},            // page version of meminfo Slab | ||||||
|   {"nr_unstable",          &vm_}, |   {"nr_unstable",         &vm_nr_unstable}, | ||||||
|   {"nr_writeback",        &vm_nr_writeback},       // page version of meminfo Writeback |   {"nr_writeback",        &vm_nr_writeback},       // page version of meminfo Writeback | ||||||
|   {"pageoutrun",          &vm_pageoutrun}, |   {"pageoutrun",          &vm_pageoutrun}, | ||||||
|   {"pgactivate",          &vm_pgactivate}, |   {"pgactivate",          &vm_pgactivate}, | ||||||
|   {"pgalloc",             &vm_pgalloc},  // GONE (now separate dma,high,normal) |   {"pgalloc",             &vm_pgalloc},  // GONE (now separate dma,high,normal) | ||||||
|   {"pgalloc_dma",          &vm_}, |   {"pgalloc_dma",         &vm_pgalloc_dma}, | ||||||
|   {"pgalloc_high",          &vm_}, |   {"pgalloc_high",        &vm_pgalloc_high}, | ||||||
|   {"pgalloc_normal",          &vm_}, |   {"pgalloc_normal",      &vm_pgalloc_normal}, | ||||||
|   {"pgdeactivate",        &vm_pgdeactivate}, |   {"pgdeactivate",        &vm_pgdeactivate}, | ||||||
|   {"pgfault",             &vm_pgfault}, |   {"pgfault",             &vm_pgfault}, | ||||||
|   {"pgfree",              &vm_pgfree}, |   {"pgfree",              &vm_pgfree}, | ||||||
|   {"pginodesteal",          &vm_}, |   {"pginodesteal",        &vm_pginodesteal}, | ||||||
|   {"pgmajfault",          &vm_pgmajfault}, |   {"pgmajfault",          &vm_pgmajfault}, | ||||||
|   {"pgpgin",              &vm_pgpgin},     // important |   {"pgpgin",              &vm_pgpgin},     // important | ||||||
|   {"pgpgout",             &vm_pgpgout},     // important |   {"pgpgout",             &vm_pgpgout},     // important | ||||||
|   {"pgrefill",            &vm_pgrefill},  // GONE (now separate dma,high,normal) |   {"pgrefill",            &vm_pgrefill},  // GONE (now separate dma,high,normal) | ||||||
|   {"pgrefill_dma",          &vm_}, |   {"pgrefill_dma",        &vm_pgrefill_dma}, | ||||||
|   {"pgrefill_high",          &vm_}, |   {"pgrefill_high",       &vm_pgrefill_high}, | ||||||
|   {"pgrefill_normal",          &vm_}, |   {"pgrefill_normal",     &vm_pgrefill_normal}, | ||||||
|   {"pgrotated",           &vm_pgrotated}, |   {"pgrotated",           &vm_pgrotated}, | ||||||
|   {"pgscan",              &vm_pgscan},  // GONE (now separate direct,kswapd and dma,high,normal) |   {"pgscan",              &vm_pgscan},  // GONE (now separate direct,kswapd and dma,high,normal) | ||||||
|   {"pgscan_direct_dma",          &vm_}, |   {"pgscan_direct_dma",   &vm_pgscan_direct_dma}, | ||||||
|   {"pgscan_direct_high",          &vm_}, |   {"pgscan_direct_high",  &vm_pgscan_direct_high}, | ||||||
|   {"pgscan_direct_normal",          &vm_}, |   {"pgscan_direct_normal",&vm_pgscan_direct_normal}, | ||||||
|   {"pgscan_kswapd_dma",          &vm_}, |   {"pgscan_kswapd_dma",   &vm_pgscan_kswapd_dma}, | ||||||
|   {"pgscan_kswapd_high",          &vm_}, |   {"pgscan_kswapd_high",  &vm_pgscan_kswapd_high}, | ||||||
|   {"pgscan_kswapd_normal",          &vm_}, |   {"pgscan_kswapd_normal",&vm_pgscan_kswapd_normal}, | ||||||
|   {"pgsteal",             &vm_pgsteal},  // GONE (now separate dma,high,normal) |   {"pgsteal",             &vm_pgsteal},  // GONE (now separate dma,high,normal) | ||||||
|   {"pgsteal_dma",          &vm_}, |   {"pgsteal_dma",         &vm_pgsteal_dma}, | ||||||
|   {"pgsteal_high",          &vm_}, |   {"pgsteal_high",        &vm_pgsteal_high}, | ||||||
|   {"pgsteal_normal",          &vm_}, |   {"pgsteal_normal",      &vm_pgsteal_normal}, | ||||||
|   {"pswpin",              &vm_pswpin},     // important |   {"pswpin",              &vm_pswpin},     // important | ||||||
|   {"pswpout",             &vm_pswpout}     // important |   {"pswpout",             &vm_pswpout},     // important | ||||||
|   {"slabs_scanned",          &vm_}, |   {"slabs_scanned",       &vm_slabs_scanned}, | ||||||
|   }; |   }; | ||||||
|   const int vm_table_count = sizeof(vm_table)/sizeof(vm_table_struct); |   const int vm_table_count = sizeof(vm_table)/sizeof(vm_table_struct); | ||||||
|  |  | ||||||
|  |   vm_pgalloc = 0; | ||||||
|  |   vm_pgrefill = 0; | ||||||
|  |   vm_pgscan = 0; | ||||||
|  |   vm_pgsteal = 0; | ||||||
|  |  | ||||||
|   FILE_TO_BUF(VMINFO_FILE,vminfo_fd); |   FILE_TO_BUF(VMINFO_FILE,vminfo_fd); | ||||||
|  |  | ||||||
|   head = buf; |   head = buf; | ||||||
| @@ -700,6 +726,15 @@ nextline: | |||||||
|     if(!tail) break; |     if(!tail) break; | ||||||
|     head = tail+1; |     head = tail+1; | ||||||
|   } |   } | ||||||
|  |   if(!vm_pgalloc) | ||||||
|  |     vm_pgalloc  = vm_pgalloc_dma + vm_pgalloc_high + vm_pgalloc_normal; | ||||||
|  |   if(!vm_pgrefill) | ||||||
|  |     vm_pgrefill = vm_pgrefill_dma + vm_pgrefill_high + vm_pgrefill_normal; | ||||||
|  |   if(!vm_pgscan) | ||||||
|  |     vm_pgscan   = vm_pgscan_direct_dma + vm_pgscan_direct_high + vm_pgscan_direct_normal | ||||||
|  |                 + vm_pgscan_kswapd_dma + vm_pgscan_kswapd_high + vm_pgscan_kswapd_normal; | ||||||
|  |   if(!vm_pgsteal) | ||||||
|  |     vm_pgsteal  = vm_pgsteal_dma + vm_pgsteal_high + vm_pgsteal_normal; | ||||||
| } | } | ||||||
|  |  | ||||||
| /////////////////////////////////////////////////////////////////////// | /////////////////////////////////////////////////////////////////////// | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 albert
					albert