diff mbox

[2/3] rbd: rbd workqueues need a resque worker

Message ID 1412965626-11165-3-git-send-email-idryomov@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ilya Dryomov Oct. 10, 2014, 6:27 p.m. UTC
Need to use WQ_MEM_RECLAIM for our workqueues to prevent I/O lockups
under memory pressure - we sit on the memory reclaim path.

Cc: stable@vger.kernel.org # 3.17, needs backporting for 3.16
Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
Tested-by: Micha Krause <micha@krausam.de>
---
 drivers/block/rbd.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Sage Weil Oct. 14, 2014, 3:57 p.m. UTC | #1
Reviewed-by: Sage Weil <sage@redhat.com>

On Fri, 10 Oct 2014, Ilya Dryomov wrote:

> Need to use WQ_MEM_RECLAIM for our workqueues to prevent I/O lockups
> under memory pressure - we sit on the memory reclaim path.
> 
> Cc: stable@vger.kernel.org # 3.17, needs backporting for 3.16
> Signed-off-by: Ilya Dryomov <idryomov@redhat.com>
> Tested-by: Micha Krause <micha@krausam.de>
> ---
>  drivers/block/rbd.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
> index 7712ae65753c..0a54c588e433 100644
> --- a/drivers/block/rbd.c
> +++ b/drivers/block/rbd.c
> @@ -5242,7 +5242,8 @@ static int rbd_dev_device_setup(struct rbd_device *rbd_dev)
>  	set_capacity(rbd_dev->disk, rbd_dev->mapping.size / SECTOR_SIZE);
>  	set_disk_ro(rbd_dev->disk, rbd_dev->mapping.read_only);
>  
> -	rbd_dev->rq_wq = alloc_workqueue("%s", 0, 0, rbd_dev->disk->disk_name);
> +	rbd_dev->rq_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0,
> +					 rbd_dev->disk->disk_name);
>  	if (!rbd_dev->rq_wq) {
>  		ret = -ENOMEM;
>  		goto err_out_mapping;
> -- 
> 1.7.10.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 7712ae65753c..0a54c588e433 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -5242,7 +5242,8 @@  static int rbd_dev_device_setup(struct rbd_device *rbd_dev)
 	set_capacity(rbd_dev->disk, rbd_dev->mapping.size / SECTOR_SIZE);
 	set_disk_ro(rbd_dev->disk, rbd_dev->mapping.read_only);
 
-	rbd_dev->rq_wq = alloc_workqueue("%s", 0, 0, rbd_dev->disk->disk_name);
+	rbd_dev->rq_wq = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0,
+					 rbd_dev->disk->disk_name);
 	if (!rbd_dev->rq_wq) {
 		ret = -ENOMEM;
 		goto err_out_mapping;