static void mlog_vmstat(void) { int cpu; unsigned long v[NR_VM_EVENT_ITEMS]; memset(v, 0, NR_VM_EVENT_ITEMS * sizeof(unsigned long)); for_each_online_cpu(cpu) { struct vm_event_state *this = &per_cpu(vm_event_states, cpu); v[PSWPIN] += this->event[PSWPIN]; v[PSWPOUT] += this->event[PSWPOUT]; v[PGFMFAULT] += this->event[PGFMFAULT]; // TODO: porting PGANFAULT to kernel-3.10 #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)) v[PGANFAULT] += this->event[PGANFAULT]; #endif } spin_lock_bh(&mlogbuf_lock); mlog_emit_32(v[PSWPIN]); mlog_emit_32(v[PSWPOUT]); mlog_emit_32(v[PGFMFAULT]); // TODO: porting PGANFAULT to kernel-3.10 #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) mlog_emit_32(0); #else mlog_emit_32(v[PGANFAULT]); #endif spin_unlock_bh(&mlogbuf_lock); }
static void mlog_meminfo(void) { unsigned long memfree; unsigned long swapfree; unsigned long cached; unsigned int gpuuse = 0; unsigned int gpu_page_cache = 0; unsigned long mlock; unsigned long zram; unsigned long active, inactive; unsigned long shmem; memfree = P2K(global_page_state(NR_FREE_PAGES) + mtkpasr_show_page_reserved()); #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)) swapfree = P2K(get_nr_swap_pages()); cached = P2K(global_page_state(NR_FILE_PAGES) - total_swapcache_pages()); #else swapfree = P2K(get_nr_swap_pages()); cached = P2K(global_page_state(NR_FILE_PAGES) - total_swapcache_pages); #endif #ifdef COLLECT_GPU_MEMINFO if (mtk_get_gpu_memory_usage(&gpuuse)) gpuuse = B2K(gpuuse); if (mtk_get_gpu_page_cache(&gpu_page_cache)) gpu_page_cache = B2K(gpu_page_cache); #endif mlock = P2K(global_page_state(NR_MLOCK)); #if defined(CONFIG_ZRAM) & defined(CONFIG_ZSMALLOC) zram = (zram_devices && zram_devices->init_done && zram_devices->meta) ? B2K(zs_get_total_size_bytes(zram_devices->meta->mem_pool)) : 0; #else zram = 0; #endif active = P2K(global_page_state(NR_ACTIVE_ANON) + global_page_state(NR_ACTIVE_FILE)); inactive = P2K(global_page_state(NR_INACTIVE_ANON) + global_page_state(NR_INACTIVE_FILE)); /* MLOG_PRINTK("active: %lu, inactive: %lu\n", active, inactive); */ shmem = P2K(global_page_state(NR_SHMEM)); spin_lock_bh(&mlogbuf_lock); mlog_emit_32(memfree); mlog_emit_32(swapfree); mlog_emit_32(cached); mlog_emit_32(gpuuse); mlog_emit_32(gpu_page_cache); mlog_emit_32(mlock); mlog_emit_32(zram); mlog_emit_32(active); mlog_emit_32(inactive); mlog_emit_32(shmem); spin_unlock_bh(&mlogbuf_lock); }