Re: [PATCH 1/2] xen/blkback: turn the cache purge LRU interval into a parameter
On Thu, 15 Oct 2020 16:24:15 +0200 Roger Pau Monne wrote: > Assume that reads and writes to the variable will be atomic. The worse > that could happen is that one of the LRU intervals is not calculated > properly if a partially written value is read, but that would only be > a transient issue. > > Signed-off-by: Roger Pau Monné > --- > Cc: Konrad Rzeszutek Wilk > Cc: Jens Axboe > Cc: Boris Ostrovsky > Cc: SeongJae Park > Cc: xen-de...@lists.xenproject.org > Cc: linux-bl...@vger.kernel.org > Cc: J. Roeleveld > Cc: Jürgen Groß > --- > Documentation/ABI/testing/sysfs-driver-xen-blkback | 10 ++ > drivers/block/xen-blkback/blkback.c| 9 ++--- > 2 files changed, 16 insertions(+), 3 deletions(-) > > diff --git a/Documentation/ABI/testing/sysfs-driver-xen-blkback > b/Documentation/ABI/testing/sysfs-driver-xen-blkback > index ecb7942ff146..776f25d335ca 100644 > --- a/Documentation/ABI/testing/sysfs-driver-xen-blkback > +++ b/Documentation/ABI/testing/sysfs-driver-xen-blkback > @@ -35,3 +35,13 @@ Description: > controls the duration in milliseconds that blkback will not > cache any page not backed by a grant mapping. > The default is 10ms. > + > +What: /sys/module/xen_blkback/parameters/lru_internval > +Date: October 2020 > +KernelVersion: 5.10 > +Contact:Roger Pau Monné > +Description: > +The LRU mechanism to clean the lists of persistent grants > needs > +to be executed periodically. This parameter controls the time > +interval between consecutive executions of the purge > mechanism > +is set in ms. I think noticing the default value (100ms) here would be better. Thanks, SeongJae Park
Re: [PATCH 1/2] xen/blkback: turn the cache purge LRU interval into a parameter
On 15.10.20 16:24, Roger Pau Monne wrote: Assume that reads and writes to the variable will be atomic. The worse that could happen is that one of the LRU intervals is not calculated properly if a partially written value is read, but that would only be a transient issue. Signed-off-by: Roger Pau Monné --- Cc: Konrad Rzeszutek Wilk Cc: Jens Axboe Cc: Boris Ostrovsky Cc: SeongJae Park Cc: xen-de...@lists.xenproject.org Cc: linux-bl...@vger.kernel.org Cc: J. Roeleveld Cc: Jürgen Groß --- Documentation/ABI/testing/sysfs-driver-xen-blkback | 10 ++ drivers/block/xen-blkback/blkback.c| 9 ++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-driver-xen-blkback b/Documentation/ABI/testing/sysfs-driver-xen-blkback index ecb7942ff146..776f25d335ca 100644 --- a/Documentation/ABI/testing/sysfs-driver-xen-blkback +++ b/Documentation/ABI/testing/sysfs-driver-xen-blkback @@ -35,3 +35,13 @@ Description: controls the duration in milliseconds that blkback will not cache any page not backed by a grant mapping. The default is 10ms. + +What: /sys/module/xen_blkback/parameters/lru_internval s/lru_internval/lru_interval/ +Date: October 2020 +KernelVersion: 5.10 +Contact:Roger Pau Monné +Description: +The LRU mechanism to clean the lists of persistent grants needs +to be executed periodically. This parameter controls the time +interval between consecutive executions of the purge mechanism +is set in ms. diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c index adfc9352351d..6ad9b76fdb2b 100644 --- a/drivers/block/xen-blkback/blkback.c +++ b/drivers/block/xen-blkback/blkback.c @@ -117,7 +117,10 @@ MODULE_PARM_DESC(max_ring_page_order, "Maximum order of pages to be used for the * be executed periodically. The time interval between consecutive executions * of the purge mechanism is set in ms. */ -#define LRU_INTERVAL 100 +static unsigned int lru_interval = 100; +module_param_named(lru_interval, lru_interval, uint, 0644); +MODULE_PARM_DESC(lru_internval, s/lru_internval/lru_interval/ +"Time interval between consecutive executions of the cache purge mechanism (in ms)"); /* * When the persistent grants list is full we will remove unused grants @@ -620,7 +623,7 @@ int xen_blkif_schedule(void *arg) if (unlikely(vbd->size != vbd_sz(vbd))) xen_vbd_resize(blkif); - timeout = msecs_to_jiffies(LRU_INTERVAL); + timeout = msecs_to_jiffies(lru_interval); timeout = wait_event_interruptible_timeout( ring->wq, @@ -650,7 +653,7 @@ int xen_blkif_schedule(void *arg) if (blkif->vbd.feature_gnt_persistent && time_after(jiffies, ring->next_lru)) { purge_persistent_gnt(ring); - ring->next_lru = jiffies + msecs_to_jiffies(LRU_INTERVAL); + ring->next_lru = jiffies + msecs_to_jiffies(lru_interval); } /* Shrink the free pages pool if it is too large. */ Juergen
[PATCH 1/2] xen/blkback: turn the cache purge LRU interval into a parameter
Assume that reads and writes to the variable will be atomic. The worse that could happen is that one of the LRU intervals is not calculated properly if a partially written value is read, but that would only be a transient issue. Signed-off-by: Roger Pau Monné --- Cc: Konrad Rzeszutek Wilk Cc: Jens Axboe Cc: Boris Ostrovsky Cc: SeongJae Park Cc: xen-de...@lists.xenproject.org Cc: linux-bl...@vger.kernel.org Cc: J. Roeleveld Cc: Jürgen Groß --- Documentation/ABI/testing/sysfs-driver-xen-blkback | 10 ++ drivers/block/xen-blkback/blkback.c| 9 ++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Documentation/ABI/testing/sysfs-driver-xen-blkback b/Documentation/ABI/testing/sysfs-driver-xen-blkback index ecb7942ff146..776f25d335ca 100644 --- a/Documentation/ABI/testing/sysfs-driver-xen-blkback +++ b/Documentation/ABI/testing/sysfs-driver-xen-blkback @@ -35,3 +35,13 @@ Description: controls the duration in milliseconds that blkback will not cache any page not backed by a grant mapping. The default is 10ms. + +What: /sys/module/xen_blkback/parameters/lru_internval +Date: October 2020 +KernelVersion: 5.10 +Contact:Roger Pau Monné +Description: +The LRU mechanism to clean the lists of persistent grants needs +to be executed periodically. This parameter controls the time +interval between consecutive executions of the purge mechanism +is set in ms. diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c index adfc9352351d..6ad9b76fdb2b 100644 --- a/drivers/block/xen-blkback/blkback.c +++ b/drivers/block/xen-blkback/blkback.c @@ -117,7 +117,10 @@ MODULE_PARM_DESC(max_ring_page_order, "Maximum order of pages to be used for the * be executed periodically. The time interval between consecutive executions * of the purge mechanism is set in ms. */ -#define LRU_INTERVAL 100 +static unsigned int lru_interval = 100; +module_param_named(lru_interval, lru_interval, uint, 0644); +MODULE_PARM_DESC(lru_internval, +"Time interval between consecutive executions of the cache purge mechanism (in ms)"); /* * When the persistent grants list is full we will remove unused grants @@ -620,7 +623,7 @@ int xen_blkif_schedule(void *arg) if (unlikely(vbd->size != vbd_sz(vbd))) xen_vbd_resize(blkif); - timeout = msecs_to_jiffies(LRU_INTERVAL); + timeout = msecs_to_jiffies(lru_interval); timeout = wait_event_interruptible_timeout( ring->wq, @@ -650,7 +653,7 @@ int xen_blkif_schedule(void *arg) if (blkif->vbd.feature_gnt_persistent && time_after(jiffies, ring->next_lru)) { purge_persistent_gnt(ring); - ring->next_lru = jiffies + msecs_to_jiffies(LRU_INTERVAL); + ring->next_lru = jiffies + msecs_to_jiffies(lru_interval); } /* Shrink the free pages pool if it is too large. */ -- 2.28.0