On 11/11/2015 02:27 PM, Jens Axboe wrote: > On 11/11/2015 03:06 AM, Matias Bjørling wrote: >> Add support for registering as a LightNVM device. This allows us to >> evaluate the performance of the LightNVM library. >> >> In /drivers/Makefile, LightNVM is moved above block device drivers >> to make sure that the LightNVM media managers have been initialized >> before drivers under /drivers/block are initialized. > > Generally looks ok. One question: > >> +static void *null_lnvm_create_dma_pool(struct request_queue *q, char >> *name) >> +{ >> + mempool_t *virtmem_pool; >> + >> + ppa_cache = kmem_cache_create(name, PAGE_SIZE, 0, 0, NULL); >> + if (!ppa_cache) { >> + pr_err("null_nvm: Unable to create kmem cache\n"); >> + return NULL; >> + } >> + >> + virtmem_pool = mempool_create_slab_pool(64, ppa_cache); >> + if (!virtmem_pool) { >> + pr_err("null_nvm: Unable to create virtual memory pool\n"); >> + return NULL; >> + } >> + >> + return virtmem_pool; >> +} > > Why create a slab cache if it's pages? Why not just have the mempool > alloc/free alloc single pages? Ala attached. Also fixes a leak of not freeing the ppa_cache slab cache. Did you try and load/reload the module? I'm thinking it would have crashed. -- Jens Axboe