7b1058bc59
The workqueue "chp_wq" is involved in performing pending configure tasks for channel paths. It has a single work item(&cfg_work) and hence doesn't require ordering. Also, it is not being used on a memory reclaim path. Hence, the singlethreaded workqueue has been replaced with the use of system_wq. System workqueues have been able to handle high level of concurrency for a long time now and hence it's not required to have a singlethreaded workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue created with create_singlethread_workqueue(), system_wq allows multiple work items to overlap executions even on the same CPU; however, a per-cpu workqueue doesn't have any CPU locality or global ordering guarantee unless the target CPU is explicitly specified and thus the increase of local concurrency shouldn't make any difference. Signed-off-by: Bhaktipriya Shridhar <bhaktipriya96@gmail.com> Signed-off-by: Sebastian Ott <sebott@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> |
||
---|---|---|
.. | ||
airq.c | ||
blacklist.c | ||
blacklist.h | ||
ccwgroup.c | ||
ccwreq.c | ||
chp.c | ||
chp.h | ||
chsc_sch.c | ||
chsc_sch.h | ||
chsc.c | ||
chsc.h | ||
cio_debug.h | ||
cio.c | ||
cio.h | ||
cmf.c | ||
crw.c | ||
css.c | ||
css.h | ||
device_fsm.c | ||
device_id.c | ||
device_ops.c | ||
device_pgid.c | ||
device_status.c | ||
device.c | ||
device.h | ||
eadm_sch.c | ||
eadm_sch.h | ||
fcx.c | ||
idset.c | ||
idset.h | ||
io_sch.h | ||
ioasm.c | ||
ioasm.h | ||
isc.c | ||
itcw.c | ||
Makefile | ||
orb.h | ||
qdio_debug.c | ||
qdio_debug.h | ||
qdio_main.c | ||
qdio_setup.c | ||
qdio_thinint.c | ||
qdio.h | ||
scm.c | ||
trace.c | ||
trace.h |