Criando pool de memória para o módulo do driver

1

Eu criei meu próprio pool de memória para cache e inseri meu módulo em espaço do kernel no Linux 2.6 e funcionou. Ele exibiu as informações do cache usando cat /proc/slabinfo .

PROBLEMA: Meu problema é agora eu estou usando o Linux versão 3.5 e eu testei o mesmo módulo do driver, mas não exibe informações de cache em cat /proc/slabinfo .

Aqui está o código de trabalho do Linux 2.6:

#include<linux/module.h>
#include<linux/kernel.h>
#include<linux/version.h>
#include<linux/init.h>
#include<linux/slab.h>
#include<linux/mempool.h>

#define SUCCESS 0

mempool_t *mem;
struct kmem_cache *cache_ptr;

int *ret;

typedef struct abc {
        int a;
        int b;
        int c;
} abc_t;

abc_t *ptr;
static int var = 12;
static void func(void);

void func(void) {

        ptr = (struct abc_t *)mempool_alloc(mem,GFP_KERNEL);
        ptr->a = 100;
        ptr->b = 300;
        ptr->c = 700;

        printk("val is %d\n",ptr->a);
 }

int init_module(void) {

        cache_ptr = kmem_cache_create("cache_mem1",var,0,SLAB_HWCACHE_ALIGN,NULL);
        mem = mempool_create(20,mempool_alloc_slab,mempool_free_slab,cache_ptr);

        if(mem == NULL)
            return -ENOMEM;
        printk("\n module loaded");
        func();

        return SUCCESS;
}


void cleanup_module(void) {

        printk("\n module removed");
        mempool_free(ptr,mem);
        mempool_destroy(mem);
        kmem_cache_destroy(cache_ptr);
}

MODULE_AUTHOR("KOTI");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("CACHE_SLAB");
    
por swaroop burre 02.07.2016 / 12:42

0 respostas