Создание пула памяти для модуля драйвера

Я создал свой собственный пул памяти для кэша и вставил мой модуль в пространство ядра в Linux 2.6, и это работало. Это отобразило использование информации о кэше cat /proc/slabinfo.

ПРОБЛЕМА: Моя проблема теперь, я использую версию Linux 3.5, и я протестировал тот же модуль драйвера, но не отобразил информацию о кэше в cat /proc/slabinfo.

Вот рабочий код для 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");
1
задан 2 July 2016 в 14:28

0 ответов

Другие вопросы по тегам:

Похожие вопросы: