Thanks for the review, that’s good point. Improved patch is on its way.

Marcin Dzięgielewski

> -----Original Message-----
> From: Matias Bjørling [mailto:m...@lightnvm.io]
> Sent: Thursday, May 24, 2018 10:20 AM
> To: Dziegielewski, Marcin <marcin.dziegielew...@intel.com>
> Cc: linux-block@vger.kernel.org; Konopko, Igor J
> <igor.j.kono...@intel.com>
> Subject: Re: [PATCH 1/2] lightnvm: pblk: add possibility to set write buffer
> size manually
> 
> On 05/23/2018 05:17 PM, Marcin Dziegielewski wrote:
> > 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.dziegielew...@intel.com>
> > Signed-off-by: Igor Konopko <igor.j.kono...@intel.com>
> > ---
> >   drivers/lightnvm/pblk-init.c | 14 ++++++++++++--
> >   1 file changed, 12 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/lightnvm/pblk-init.c
> > b/drivers/lightnvm/pblk-init.c index d65d2f9..9a7213e 100644
> > --- a/drivers/lightnvm/pblk-init.c
> > +++ b/drivers/lightnvm/pblk-init.c
> > @@ -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);
> > @@ -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)
> > +           buffer_size = write_buffer_size;
> > +   else
> > +           buffer_size = pblk->pgs_in_buffer;
> > +
> > +   nr_entries = pblk_rb_calculate_size(buffer_size);
> 
> Would it make sense to include a check to make sure that buffer size does
> not become less than pblk->pgs_in_buffer?
> 
> >
> >     entries = vzalloc(nr_entries * sizeof(struct pblk_rb_entry));
> >     if (!entries)
> >

Reply via email to