kernel-ark/include/linux/ceph
Tejun Heo f363e45fd1 net/ceph: make ceph_msgr_wq non-reentrant
ceph messenger code does a rather complex dancing around multithread
workqueue to make sure the same work item isn't executed concurrently
on different CPUs.  This restriction can be provided by workqueue with
WQ_NON_REENTRANT.

Make ceph_msgr_wq non-reentrant workqueue with the default concurrency
level and remove the QUEUED/BUSY logic.

* This removes backoff handling in con_work() but it couldn't reliably
  block execution of con_work() to begin with - queue_con() can be
  called after the work started but before BUSY is set.  It seems that
  it was an optimization for a rather cold path and can be safely
  removed.

* The number of concurrent work items is bound by the number of
  connections and connetions are independent from each other.  With
  the default concurrency level, different connections will be
  executed independently.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Sage Weil <sage@newdream.net>
Cc: ceph-devel@vger.kernel.org
Signed-off-by: Sage Weil <sage@newdream.net>
2011-01-12 15:15:14 -08:00
..
auth.h
buffer.h
ceph_debug.h
ceph_frag.h
ceph_fs.h ceph: add dir_layout to inode 2011-01-12 15:15:12 -08:00
ceph_hash.h
debugfs.h
decode.h
libceph.h ceph: mark user pages dirty on direct-io reads 2010-12-17 09:54:40 -08:00
mdsmap.h
messenger.h net/ceph: make ceph_msgr_wq non-reentrant 2011-01-12 15:15:14 -08:00
mon_client.h
msgpool.h
msgr.h
osd_client.h ceph: make page alignment explicit in osd interface 2010-11-09 12:43:12 -08:00
osdmap.h
pagelist.h
rados.h
types.h