/* * appldata_get_mem_data() * * gather memory data */ static void appldata_get_mem_data(void *data) { /* * don't put large structures on the stack, we are * serialized through the appldata_ops_lock and can use static */ static struct sysinfo val; unsigned long ev[NR_VM_EVENT_ITEMS]; struct appldata_mem_data *mem_data; mem_data = data; mem_data->sync_count_1++; all_vm_events(ev); mem_data->pgpgin = ev[PGPGIN] >> 1; mem_data->pgpgout = ev[PGPGOUT] >> 1; mem_data->pswpin = ev[PSWPIN]; mem_data->pswpout = ev[PSWPOUT]; mem_data->pgalloc = ev[PGALLOC_NORMAL]; #ifdef CONFIG_ZONE_DMA mem_data->pgalloc += ev[PGALLOC_DMA]; #endif mem_data->pgfault = ev[PGFAULT]; mem_data->pgmajfault = ev[PGMAJFAULT]; si_meminfo(&val); mem_data->sharedram = val.sharedram; mem_data->totalram = P2K(val.totalram); mem_data->freeram = P2K(val.freeram); mem_data->totalhigh = P2K(val.totalhigh); mem_data->freehigh = P2K(val.freehigh); mem_data->bufferram = P2K(val.bufferram); mem_data->cached = P2K(global_page_state(NR_FILE_PAGES) - val.bufferram); si_swapinfo(&val); mem_data->totalswap = P2K(val.totalswap); mem_data->freeswap = P2K(val.freeswap); mem_data->timestamp = get_clock(); mem_data->sync_count_2++; #ifdef APPLDATA_DEBUG appldata_debug_print(mem_data); #endif }
/* * appldata_get_mem_data() * * gather memory data */ static void appldata_get_mem_data(void *data) { /* * don't put large structures on the stack, we are * serialized through the appldata_ops_lock and can use static */ static struct sysinfo val; static struct page_state ps; struct appldata_mem_data *mem_data; mem_data = data; mem_data->sync_count_1++; get_full_page_state(&ps); mem_data->pgpgin = ps.pgpgin >> 1; mem_data->pgpgout = ps.pgpgout >> 1; mem_data->pswpin = ps.pswpin; mem_data->pswpout = ps.pswpout; mem_data->pgalloc = ps.pgalloc_high + ps.pgalloc_normal + ps.pgalloc_dma; mem_data->pgfault = ps.pgfault; mem_data->pgmajfault = ps.pgmajfault; si_meminfo(&val); mem_data->sharedram = val.sharedram; mem_data->totalram = P2K(val.totalram); mem_data->freeram = P2K(val.freeram); mem_data->totalhigh = P2K(val.totalhigh); mem_data->freehigh = P2K(val.freehigh); mem_data->bufferram = P2K(val.bufferram); mem_data->cached = P2K(atomic_read(&nr_pagecache) - val.bufferram); si_swapinfo(&val); mem_data->totalswap = P2K(val.totalswap); mem_data->freeswap = P2K(val.freeswap); mem_data->timestamp = get_clock(); mem_data->sync_count_2++; #ifdef APPLDATA_DEBUG appldata_debug_print(mem_data); #endif }