Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}