Skip to content

Commit

Permalink
lightnvm: pblk: add possibility to set write buffer size manually
Browse files Browse the repository at this point in the history
In some cases, users can want set write buffer size manually, e.g. to
adjust it to specific workload. This patch provides the possibility
to set write buffer size via module parameter feature.

Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Signed-off-by: Igor Konopko <igor.j.konopko@intel.com>
Signed-off-by: Matias Bjørling <mb@lightnvm.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Marcin Dziegielewski authored and Jens Axboe committed Jun 1, 2018
1 parent fbadca7 commit 4a82888
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions drivers/lightnvm/pblk-init.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@

#include "pblk.h"

unsigned int write_buffer_size;

module_param(write_buffer_size, uint, 0644);
MODULE_PARM_DESC(write_buffer_size, "number of entries in a write buffer");

static struct kmem_cache *pblk_ws_cache, *pblk_rec_cache, *pblk_g_rq_cache,
*pblk_w_rq_cache;
static DECLARE_RWSEM(pblk_lock);
Expand Down Expand Up @@ -172,10 +177,15 @@ static int pblk_rwb_init(struct pblk *pblk)
struct nvm_tgt_dev *dev = pblk->dev;
struct nvm_geo *geo = &dev->geo;
struct pblk_rb_entry *entries;
unsigned long nr_entries;
unsigned long nr_entries, buffer_size;
unsigned int power_size, power_seg_sz;

nr_entries = pblk_rb_calculate_size(pblk->pgs_in_buffer);
if (write_buffer_size && (write_buffer_size > pblk->pgs_in_buffer))
buffer_size = write_buffer_size;
else
buffer_size = pblk->pgs_in_buffer;

nr_entries = pblk_rb_calculate_size(buffer_size);

entries = vzalloc(nr_entries * sizeof(struct pblk_rb_entry));
if (!entries)
Expand Down

0 comments on commit 4a82888

Please sign in to comment.