[3.13.y.z extended stable] Patch "libceph: ceph-msgr workqueue needs a resque worker" has been added to staging queue

Kamal Mostafa kamal at canonical.com
Tue Oct 21 20:09:33 UTC 2014

This is a note to let you know that I have just added a patch titled

    libceph: ceph-msgr workqueue needs a resque worker

to the linux-3.13.y-queue branch of the 3.13.y.z extended stable tree 
which can be found at:


This patch is scheduled to be released in version

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.13.y.z tree, see



>From 64982ef81fcb89853ad8d7940181840cbad99691 Mon Sep 17 00:00:00 2001
From: Ilya Dryomov <idryomov at redhat.com>
Date: Fri, 10 Oct 2014 16:39:05 +0400
Subject: libceph: ceph-msgr workqueue needs a resque worker

commit f9865f06f7f18c6661c88d0511f05c48612319cc upstream.

Commit f363e45fd118 ("net/ceph: make ceph_msgr_wq non-reentrant")
effectively removed WQ_MEM_RECLAIM flag from ceph_msgr_wq.  This is
wrong - libceph is very much a memory reclaim path, so restore it.

Signed-off-by: Ilya Dryomov <idryomov at redhat.com>
Tested-by: Micha Krause <micha at krausam.de>
Reviewed-by: Sage Weil <sage at redhat.com>
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
 net/ceph/messenger.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 94e21b9..057017b 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -290,7 +290,11 @@ int ceph_msgr_init(void)
 	if (ceph_msgr_slab_init())
 		return -ENOMEM;

-	ceph_msgr_wq = alloc_workqueue("ceph-msgr", 0, 0);
+	/*
+	 * The number of active work items is limited by the number of
+	 * connections, so leave @max_active at default.
+	 */
+	ceph_msgr_wq = alloc_workqueue("ceph-msgr", WQ_MEM_RECLAIM, 0);
 	if (ceph_msgr_wq)
 		return 0;


More information about the kernel-team mailing list