All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHSET] workqueue: update workqueue users - replace create_workqueue()
@ 2011-01-03 13:49 Tejun Heo
  2011-01-03 13:49 ` [PATCH 01/32] arm/omap: use system_wq in mailbox Tejun Heo
                   ` (32 more replies)
  0 siblings, 33 replies; 119+ messages in thread
From: Tejun Heo @ 2011-01-03 13:49 UTC (permalink / raw)
  To: linux-kernel

Hello,

This patchset examines each user of create_workqueue() and update them
to better fit the new workqueue implementation.  For backward
compatibility, create_workqueue() is mapped to

 alloc_workqueue(@name, WQ_MEM_RECLAIM, 1)

but for a lot of its users, WQ_MEM_RECLAIM is not required,
@max_active of 1 is unnecessarily strict, or the dedicated workqueue
simply isn't needed.

* As the system workqueues can now host higher concurrency, a lot of
  users can drop dedicated workqueues and use the system ones.

* There are cases where keeping dedicated workqueues are necessary.
  e.g. They are depended upon during memory reclaim, need to be
  highpri or CPU intensive, serve work items which free themselves
  (and thus work items can't be explicitly queued), or need to limit
  max concurrency level from workqueue.  In these cases,
  alloc_workqueue() calls with better fitting parameters are used.

* This patchset mostly concentrates on converting create_workqueue()
  users but it also updates general workqueue usages when it makes
  sense to update them together.  Please read description of each
  patch for deatils.

This simplifies code, removes unnecessary rescuer kernel thread and
makes workqueue utilized more efficiently.

This patchset contains the following 32 patches.

 0001-arm-omap-use-system_wq-in-mailbox.patch
 0002-powerpc-cell-use-system_wq-in-cpufreq_spudemand.patch
 0003-block-make-kblockd_workqueue-smarter.patch
 0004-bio-integrity-mark-kintegrityd_wq-highpri-and-CPU-in.patch
 0005-crypto-mark-crypto-workqueues-CPU_INTENSIVE.patch
 0006-acpi-kacpi-_wq-don-t-need-WQ_MEM_RECLAIM.patch
 0007-cpufreq-use-system_wq-instead-of-dedicated-workqueue.patch
 0008-drm-nouveau-use-system_wq-instead-of-dev_priv-wq.patch
 0009-drm-radeon-use-system_wq-instead-of-dev_priv-wq.patch
 0010-input-tps6507x-ts-use-system_wq-instead-of-dedicated.patch
 0011-v4l-cx18-update-workqueue-usage.patch
 0012-i2o-use-alloc_workqueue-instead-of-create_workqueue.patch
 0013-misc-iwmc3200top-use-system_wq-instead-of-dedicated-.patch
 0014-wireless-ipw2x00-use-system_wq-instead-of-dedicated-.patch
 0015-wireless-libertas-_tf-use-system_wq-instead-of-dedic.patch
 0016-scsi-be2iscsi-qla2xxx-convert-to-alloc_workqueue.patch
 0017-scsi-ibmvstgt-use-system_wq-instead-of-vtgtd-workque.patch
 0018-scsi-scsi_tgt_lib-scsi_tgtd-isn-t-used-in-memory-rec.patch
 0019-usb-ueagle-atm-use-system_wq-instead-of-dedicated-wo.patch
 0020-video-msm_fb-use-system_wq-instead-of-dedicated-work.patch
 0021-fs-aio-aio_wq-isn-t-used-in-memory-reclaim-path.patch
 0022-ceph-fsc-_wq-s-aren-t-used-in-memory-reclaim-path.patch
 0023-net-ceph-make-ceph_msgr_wq-non-reentrant.patch
 0024-dlm-dlm-workqueues-aren-t-used-in-memory-reclaim-pat.patch
 0025-ext4-convert-to-alloc_workqueue.patch
 0026-ocfs2-use-system_wq-instead-of-ocfs2_quota_wq.patch
 0027-reiserfs-make-commit_wq-use-the-default-concurrency-.patch
 0028-xfs-convert-to-alloc_workqueue.patch
 0029-net-9p-use-system_wq-instead-of-p9_mux_wq.patch
 0030-net-9p-replace-p9_poll_task-with-a-work.patch
 0031-rds-ib-use-system_wq-instead-of-rds_ib_fmr_wq.patch
 0032-rxrpc-rxrpc_workqueue-isn-t-used-during-memory-recla.patch

The patches are based on 2.6.37-rc8 (b518a649) and available in the
following git branch.

 git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.g replace-create_workqueue

 arch/arm/plat-omap/mailbox.c                    |   10 -
 arch/powerpc/platforms/cell/cpufreq_spudemand.c |   20 --
 block/blk-core.c                                |    4
 crypto/crypto_wq.c                              |    3
 crypto/pcrypt.c                                 |    3
 drivers/acpi/osl.c                              |    6
 drivers/cpufreq/cpufreq_conservative.c          |   22 --
 drivers/cpufreq/cpufreq_ondemand.c              |   20 --
 drivers/gpu/drm/nouveau/nouveau_drv.h           |    1
 drivers/gpu/drm/nouveau/nouveau_irq.c           |    9 -
 drivers/gpu/drm/nouveau/nouveau_state.c         |   19 +-
 drivers/gpu/drm/nouveau/nv50_display.c          |    4
 drivers/gpu/drm/radeon/evergreen.c              |    2
 drivers/gpu/drm/radeon/r100.c                   |    2
 drivers/gpu/drm/radeon/r600.c                   |    2
 drivers/gpu/drm/radeon/radeon.h                 |    1
 drivers/gpu/drm/radeon/radeon_device.c          |    6
 drivers/gpu/drm/radeon/radeon_irq_kms.c         |    5
 drivers/gpu/drm/radeon/radeon_pm.c              |   47 +----
 drivers/gpu/drm/radeon/rs600.c                  |    2
 drivers/input/touchscreen/tps6507x-ts.c         |   12 -
 drivers/media/video/cx18/cx18-driver.c          |   24 --
 drivers/media/video/cx18/cx18-driver.h          |    3
 drivers/media/video/cx18/cx18-streams.h         |    3
 drivers/message/i2o/driver.c                    |    3
 drivers/misc/iwmc3200top/iwmc3200top.h          |    4
 drivers/misc/iwmc3200top/main.c                 |   14 -
 drivers/net/wireless/ipw2x00/ipw2100.c          |   70 +++-----
 drivers/net/wireless/ipw2x00/ipw2100.h          |    1
 drivers/net/wireless/ipw2x00/ipw2200.c          |  196 ++++++++++--------------
 drivers/net/wireless/ipw2x00/ipw2200.h          |    2
 drivers/net/wireless/libertas/if_sdio.c         |   10 -
 drivers/net/wireless/libertas_tf/cmd.c          |    6
 drivers/net/wireless/libertas_tf/libertas_tf.h  |    2
 drivers/net/wireless/libertas_tf/main.c         |   16 -
 drivers/scsi/be2iscsi/be_main.c                 |    2
 drivers/scsi/ibmvscsi/ibmvstgt.c                |   15 -
 drivers/scsi/qla2xxx/qla_os.c                   |    2
 drivers/scsi/scsi_tgt_lib.c                     |    2
 drivers/usb/atm/ueagle-atm.c                    |   19 --
 drivers/video/msm/msm_fb.c                      |   11 -
 fs/aio.c                                        |    4
 fs/bio-integrity.c                              |    7
 fs/ceph/super.c                                 |   10 -
 fs/dlm/lowcomms.c                               |   19 --
 fs/ext4/super.c                                 |    7
 fs/ocfs2/quota.h                                |    3
 fs/ocfs2/quota_global.c                         |   27 ---
 fs/ocfs2/super.c                                |    7
 fs/reiserfs/journal.c                           |    2
 fs/xfs/linux-2.6/xfs_buf.c                      |    5
 fs/xfs/xfs_mru_cache.c                          |    2
 include/linux/ceph/messenger.h                  |    5
 net/9p/trans_fd.c                               |   52 +-----
 net/ceph/messenger.c                            |   46 -----
 net/rds/ib.c                                    |    9 -
 net/rds/ib.h                                    |    2
 net/rds/ib_rdma.c                               |   27 ---
 net/rxrpc/af_rxrpc.c                            |    2
 59 files changed, 270 insertions(+), 571 deletions(-)

--
tejun

^ permalink raw reply	[flat|nested] 119+ messages in thread

end of thread, other threads:[~2011-02-04 11:04 UTC | newest]

Thread overview: 119+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-03 13:49 [PATCHSET] workqueue: update workqueue users - replace create_workqueue() Tejun Heo
2011-01-03 13:49 ` [PATCH 01/32] arm/omap: use system_wq in mailbox Tejun Heo
2011-01-03 21:35   ` Kanigeri, Hari
2011-01-04  5:24     ` Tejun Heo
2011-01-25 13:47       ` Tejun Heo
2011-01-25 15:34         ` Hari Kanigeri
2011-01-25 15:34           ` Hari Kanigeri
2011-01-25 15:37           ` Tejun Heo
2011-01-03 13:49 ` [PATCH 02/32] powerpc/cell: use system_wq in cpufreq_spudemand Tejun Heo
2011-01-03 13:49   ` Tejun Heo
2011-01-03 13:49 ` [PATCH 03/32] block: make kblockd_workqueue smarter Tejun Heo
2011-01-03 14:00   ` Jens Axboe
2011-01-03 13:49 ` [PATCH 04/32] bio-integrity: mark kintegrityd_wq highpri and CPU intensive Tejun Heo
2011-01-03 13:49 ` [PATCH 05/32] crypto: mark crypto workqueues CPU_INTENSIVE Tejun Heo
2011-01-03 13:49   ` Tejun Heo
2011-01-04  4:38   ` Herbert Xu
2011-01-04  4:38     ` Herbert Xu
2011-01-03 13:49 ` [PATCH 06/32] acpi: kacpi*_wq don't need WQ_MEM_RECLAIM Tejun Heo
2011-01-03 13:49 ` [PATCH 07/32] cpufreq: use system_wq instead of dedicated workqueues Tejun Heo
2011-01-03 13:49 ` [PATCH 08/32] drm/nouveau: use system_wq instead of dev_priv->wq Tejun Heo
2011-01-03 13:49   ` Tejun Heo
2011-01-05  1:07   ` Ben Skeggs
2011-01-05  1:16     ` Ben Skeggs
2011-01-06 17:29       ` Tejun Heo
2011-01-26 16:49         ` [PATCH UPDATED " Tejun Heo
2011-02-01 10:41           ` Tejun Heo
2011-02-04  1:53             ` Ben Skeggs
2011-02-04 11:03               ` Tejun Heo
2011-01-03 13:49 ` [PATCH 09/32] drm/radeon: " Tejun Heo
2011-01-03 13:49   ` Tejun Heo
2011-01-05  0:21   ` Alex Deucher
2011-01-06  4:31     ` Dave Airlie
2011-01-03 13:49 ` [PATCH 10/32] input/tps6507x-ts: use system_wq instead of dedicated workqueue Tejun Heo
2011-01-03 14:39   ` Dan Carpenter
2011-01-03 16:34     ` Todd Fischer
2011-01-25 14:19       ` Tejun Heo
2011-01-25 16:13         ` Todd Fischer
2011-01-25 16:50           ` Dmitry Torokhov
2011-01-26 10:43             ` Tejun Heo
2011-01-03 13:49 ` [PATCH 11/32] v4l/cx18: update workqueue usage Tejun Heo
2011-01-04  0:54   ` Andy Walls
2011-01-04  8:36     ` Tejun Heo
2011-01-04 13:21       ` Andy Walls
2011-01-08 17:03   ` Andy Walls
2011-01-03 13:49 ` [PATCH 12/32] i2o: use alloc_workqueue() instead of create_workqueue() Tejun Heo
2011-01-03 13:49 ` [PATCH 13/32] misc/iwmc3200top: use system_wq instead of dedicated workqueues Tejun Heo
2011-01-03 13:49 ` [PATCH 14/32] wireless/ipw2x00: " Tejun Heo
2011-01-06 20:51   ` John W. Linville
2011-01-03 13:49 ` [PATCH 15/32] wireless/libertas[_tf]: " Tejun Heo
2011-02-01 10:52   ` Tejun Heo
2011-01-03 13:49 ` [PATCH 16/32] scsi/be2iscsi,qla2xxx: convert to alloc_workqueue() Tejun Heo
2011-02-01 23:45   ` Mike Christie
2011-02-02 10:25     ` Tejun Heo
2011-02-02 20:41       ` Mike Christie
2011-02-03  9:31         ` Tejun Heo
2011-01-03 13:49 ` [PATCH 17/32] scsi/ibmvstgt: use system_wq instead of vtgtd workqueue Tejun Heo
2011-01-03 17:45   ` Bart Van Assche
2011-01-04  5:20     ` Tejun Heo
2011-01-24 16:09   ` Bart Van Assche
2011-01-24 16:24     ` Tejun Heo
2011-02-01 10:40       ` Tejun Heo
2011-02-01 14:18         ` FUJITA Tomonori
2011-02-01 14:25           ` James Bottomley
2011-02-01 14:29           ` Tejun Heo
2011-01-03 13:49 ` [PATCH 18/32] scsi/scsi_tgt_lib: scsi_tgtd isn't used in memory reclaim path Tejun Heo
2011-01-03 13:49 ` [PATCH 19/32] usb/ueagle-atm: use system_wq instead of dedicated workqueues Tejun Heo
2011-01-03 13:49 ` [PATCH 20/32] video/msm_fb: " Tejun Heo
     [not found]   ` <1294062595-30097-21-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
2011-01-03 17:06     ` Stanislaw Gruszka
2011-01-03 17:06       ` Stanislaw Gruszka
     [not found]       ` <20110103170615.GB2285-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-01-03 18:10         ` Daniel Walker
2011-01-03 18:10           ` Daniel Walker
     [not found]           ` <1294078245.18295.5.camel-y5Owza0q8UhBVvN7MMdr1KRtKmQZhJ7pQQ4Iyu8u01E@public.gmane.org>
2011-01-25 13:45             ` Tejun Heo
2011-01-25 13:45               ` Tejun Heo
     [not found]               ` <20110125134558.GY27510-Gd/HAXX7CRxy/B6EtB590w@public.gmane.org>
2011-01-25 18:00                 ` Daniel Walker
2011-01-25 18:00                   ` Daniel Walker
2011-01-25 19:14                   ` David Brown
2011-01-25 19:16                     ` Daniel Walker
     [not found]                       ` <1295982976.25496.29.camel-y5Owza0q8UhBVvN7MMdr1KRtKmQZhJ7pQQ4Iyu8u01E@public.gmane.org>
2011-01-25 22:08                         ` Carl Vanderlip
2011-01-25 22:08                           ` Carl Vanderlip
2011-01-25 23:21   ` David Brown
2011-01-26 10:41     ` Tejun Heo
2011-01-26 18:04       ` David Brown
2011-01-03 13:49 ` [PATCH 21/32] fs/aio: aio_wq isn't used in memory reclaim path Tejun Heo
2011-01-04 15:56   ` Jeff Moyer
2011-01-05 11:28     ` Tejun Heo
2011-01-05 14:50       ` Jeff Moyer
2011-01-05 15:00         ` Benjamin LaHaise
2011-01-05 15:49           ` Jeff Moyer
2011-01-26 11:21   ` [PATCH UPDATED " Tejun Heo
2011-01-26 16:29     ` Jeff Moyer
2011-01-26 16:38       ` Tejun Heo
2011-01-03 13:49 ` [PATCH 22/32] ceph: fsc->*_wq's aren't " Tejun Heo
2011-01-03 17:58   ` Sage Weil
2011-01-03 13:49 ` [PATCH 23/32] net/ceph: make ceph_msgr_wq non-reentrant Tejun Heo
2011-01-03 17:58   ` Sage Weil
2011-01-03 13:49 ` [PATCH 24/32] dlm: dlm workqueues aren't used in memory reclaim path Tejun Heo
2011-01-03 13:58   ` Steven Whitehouse
2011-01-03 13:58     ` [Cluster-devel] " Steven Whitehouse
2011-01-03 14:01     ` Tejun Heo
2011-01-03 14:21       ` Steven Whitehouse
2011-01-03 14:21         ` [Cluster-devel] " Steven Whitehouse
2011-01-03 14:27         ` Tejun Heo
2011-01-03 14:39           ` Steven Whitehouse
2011-01-03 14:39             ` [Cluster-devel] " Steven Whitehouse
2011-01-03 14:44             ` Tejun Heo
2011-01-03 13:49 ` [PATCH 25/32] ext4: convert to alloc_workqueue() Tejun Heo
2011-01-03 13:49 ` [PATCH 26/32] ocfs2: use system_wq instead of ocfs2_quota_wq Tejun Heo
2011-01-03 13:49 ` [PATCH 27/32] reiserfs: make commit_wq use the default concurrency level Tejun Heo
2011-01-03 13:49 ` [PATCH 28/32] xfs: convert to alloc_workqueue() Tejun Heo
2011-01-03 13:49 ` [PATCH 29/32] net/9p: use system_wq instead of p9_mux_wq Tejun Heo
2011-01-03 13:49 ` [PATCH 30/32] net/9p: replace p9_poll_task with a work Tejun Heo
2011-01-03 13:49 ` [PATCH 31/32] rds/ib: use system_wq instead of rds_ib_fmr_wq Tejun Heo
2011-01-03 13:49 ` [PATCH 32/32] rxrpc: rxrpc_workqueue isn't used during memory reclaim Tejun Heo
2011-01-25 14:29 ` [PATCHSET] workqueue: update workqueue users - replace create_workqueue() Tejun Heo
2011-01-25 16:26   ` Dave Jones
2011-01-26 10:40     ` Tejun Heo
2011-01-25 17:47   ` Madhu Iyengar
2011-01-26  4:46   ` Greg KH
2011-02-01 10:44   ` Tejun Heo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.