linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHSET] blkcg: kill policy node and blkg->dev, take#4
@ 2012-02-01 20:50 Tejun Heo
  2012-02-01 20:50 ` [PATCH 01/16] blkcg: make CONFIG_BLK_CGROUP bool Tejun Heo
                   ` (15 more replies)
  0 siblings, 16 replies; 20+ messages in thread
From: Tejun Heo @ 2012-02-01 20:50 UTC (permalink / raw)
  To: axboe, vgoyal; +Cc: ctalbott, rni, linux-kernel

Hello, guys.

This is the fourth take of blkcg-kill-policy-node-and-blkg_dev
patchset.  Changes from the last take[L] are,

* blkcg_clear_queue() renamed to blkg_destroy_all() and relocated for
  consistency with later changes.

* blk_lookup_create() updated to take @for_root to allow root blkg
  creation during elevator switch while the queue is being bypassed.
  The function is also updated to return ERR_PTR() value so that the
  caller can distinguish transitional failure due to queue bypass.

* blkg root group creation now uses blkg_lookup_create() directly for
  both blk-throttle and cfq-iosched.  This allows making both policy
  specific blkg lookup_create functions behave similarly.

* cfq_clear_queue() checks q->elevator before dereferencing it to
  determine elevator type.  This avoids NULL dereference during policy
  [un]registration.

blk-cgroup, blk-throttle and cfq-iosched are pretty tightly tangled
and untangling requires seemingly unrelated changes and addition of
some transitional stuff.  Some are in this patchset but they'll be
more prominent in the second patchset.  This patchset concentrates on
removing blkio_policy_node and blkio_group->dev, and preparing for the
next patchset which will unify blkg so that there's single blkg per
cgroup - request_queue pair.

blkio_policy_node carries configuration per cgroup-request_queue
association separately from the matching blkio_group.  The goal seems
to be allowing configuration of missing devices and retaining
configuration across hot unplug/plug cycles.  Such behavior is very
different from existing conventions, misleading and unnecessary.  This
patchset moves configuration to blkio_group and removes
blkio_policy_node.

blkg->dev removal is much simpler.  blkg->dev is used to print out
device number when printing out per-device configurations or
statistics.  The device name can be easily determined by following the
associated request_queue from blkg instead.

This patchset makes the following two userland visible behavior
changes.

* Per-device blkcg configuration can't be done for non-existing
  devices.  This behavior change is intentional and permanent.

* Switching elevator clears per-device blk-throtl configuration.  This
  behavior change is transitional and will be restored with later
  patches.

This patchset contains the following 16 patches.

0001-blkcg-make-CONFIG_BLK_CGROUP-bool.patch
0002-cfq-don-t-register-propio-policy-if-CONFIG_CFQ_GROUP.patch
0003-elevator-clear-auxiliary-data-earlier-during-elevato.patch
0004-elevator-make-elevator_init_fn-return-0-errno.patch
0005-block-implement-blk_queue_bypass_start-end.patch
0006-block-extend-queue-bypassing-to-cover-blkcg-policies.patch
0007-blkcg-shoot-down-blkio_groups-on-elevator-switch.patch
0008-blkcg-move-rcu_read_lock-outside-of-blkio_group-get-.patch
0009-blkcg-update-blkg-get-functions-take-blkio_cgroup-as.patch
0010-blkcg-use-q-and-plid-instead-of-opaque-void-for-blki.patch
0011-blkcg-add-blkio_policy-array-and-allow-one-policy-pe.patch
0012-blkcg-use-the-usual-get-blkg-path-for-root-blkio_gro.patch
0013-blkcg-factor-out-blkio_group-creation.patch
0014-blkcg-don-t-allow-or-retain-configuration-of-missing.patch
0015-blkcg-kill-blkio_policy_node.patch
0016-blkcg-kill-the-mind-bending-blkg-dev.patch

0001-0004: misc preps including elevator switch update

0005-0007: ensure blkcg policies are quiescent across elvswitch

0008-0013: move common part of blkg management into blkcg core

0014-0015: kill blkio_policy_node

0016     : kill blkg->dev

This patchset is on top of v3.3-rc2 and also available in the
following git branch.

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git blkcg-kill-pn

 block/Kconfig.iosched    |    4 
 block/blk-cgroup.c       |  701 +++++++++++++++++------------------------------
 block/blk-cgroup.h       |  106 ++-----
 block/blk-core.c         |   53 +++
 block/blk-throttle.c     |  297 +++++++------------
 block/blk.h              |    6 
 block/cfq-iosched.c      |  296 ++++++++-----------
 block/cfq.h              |    7 
 block/deadline-iosched.c |    8 
 block/elevator.c         |  116 +++----
 block/noop-iosched.c     |    8 
 include/linux/blkdev.h   |    5 
 include/linux/elevator.h |    2 
 init/Kconfig             |    2 
 14 files changed, 639 insertions(+), 972 deletions(-)

Thanks.

--
tejun

[L] http://thread.gmane.org/gmane.linux.kernel/1242764

^ permalink raw reply	[flat|nested] 20+ messages in thread
* [PATCHSET] blkcg: kill policy node and blkg->dev, take#3
@ 2012-01-23 23:09 Tejun Heo
  2012-01-23 23:09 ` [PATCH 08/16] blkcg: move rcu_read_lock() outside of blkio_group get functions Tejun Heo
  0 siblings, 1 reply; 20+ messages in thread
From: Tejun Heo @ 2012-01-23 23:09 UTC (permalink / raw)
  To: axboe, vgoyal; +Cc: ctalbott, rni, linux-kernel

Hello, guys.

This is the third take of blkcg-kill-policy-node-and-blkg_dev
patchset.  Changes from the last take[L] are,

* 0001-blkcg-make-CONFIG_BLK_CGROUP-bool.patch fixed as suggested by
  Vivek.

* 0007-blkcg-make-blkio_list_lock-irq-safe.patch dropped and
  lock order inversion involving blkio_list_lock fixed.

* 0007-blkcg-shoot-down-blkio_groups-on-elevator-switch.patch updated
  to avoid shooting down blk-throtl's root_group and retry when lost
  race against blkcg removal.

blk-cgroup, blk-throttle and cfq-iosched are pretty tightly tangled
and untangling requires seemingly unrelated changes and addition of
some transitional stuff.  Some are in this patchset but they'll be
more prominent in the second patchset.  This patchset concentrates on
removing blkio_policy_node and blkio_group->dev, and preparing for the
next patchset which will unify blkg so that there's single blkg per
cgroup - request_queue pair.

blkio_policy_node carries configuration per cgroup-request_queue
association separately from the matching blkio_group.  The goal seems
to be allowing configuration of missing devices and retaining
configuration across hot unplug/plug cycles.  Such behavior is very
different from existing conventions, misleading and unnecessary.  This
patchset moves configuration to blkio_group and removes
blkio_policy_node.

blkg->dev removal is much simpler.  blkg->dev is used to print out
device number when printing out per-device configurations or
statistics.  The device name can be easily determined by following the
associated request_queue from blkg instead.

This patchset makes the following two userland visible behavior
changes.

* Per-device blkcg configuration can't be done for non-existing
  devices.  This behavior change is intentional and permanent.

* Switching elevator clears per-device blk-throtl configuration.  This
  behavior change is transitional and will be restored with later
  patches.

This patchset contains the following 16 patches.

 0001-blkcg-make-CONFIG_BLK_CGROUP-bool.patch
 0002-cfq-don-t-register-propio-policy-if-CONFIG_CFQ_GROUP.patch
 0003-elevator-clear-auxiliary-data-earlier-during-elevato.patch
 0004-elevator-make-elevator_init_fn-return-0-errno.patch
 0005-block-implement-blk_queue_bypass_start-end.patch
 0006-block-extend-queue-bypassing-to-cover-blkcg-policies.patch
 0007-blkcg-shoot-down-blkio_groups-on-elevator-switch.patch
 0008-blkcg-move-rcu_read_lock-outside-of-blkio_group-get-.patch
 0009-blkcg-update-blkg-get-functions-take-blkio_cgroup-as.patch
 0010-blkcg-use-q-and-plid-instead-of-opaque-void-for-blki.patch
 0011-blkcg-add-blkio_policy-array-and-allow-one-policy-pe.patch
 0012-blkcg-use-the-usual-get-blkg-path-for-root-blkio_gro.patch
 0013-blkcg-factor-out-blkio_group-creation.patch
 0014-blkcg-don-t-allow-or-retain-configuration-of-missing.patch
 0015-blkcg-kill-blkio_policy_node.patch
 0016-blkcg-kill-the-mind-bending-blkg-dev.patch

0001-0004: misc preps including elevator switch update

0005-0007: ensure blkcg policies are quiescent across elvswitch

0008-0013: move common part of blkg management into blkcg core

0014-0015: kill blkio_policy_node

0016     : kill blkg->dev

This patchset is on top of v3.3-rc1 and also available in the
following git branch.

  git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc.git blkcg-kill-pn

 block/Kconfig.iosched    |    4 
 block/blk-cgroup.c       |  686 ++++++++++++++++-------------------------------
 block/blk-cgroup.h       |  106 ++-----
 block/blk-core.c         |   53 +++
 block/blk-throttle.c     |  286 ++++++-------------
 block/blk.h              |    6 
 block/cfq-iosched.c      |  296 ++++++++------------
 block/cfq.h              |    7 
 block/deadline-iosched.c |    8 
 block/elevator.c         |  116 +++----
 block/noop-iosched.c     |    8 
 include/linux/blkdev.h   |    5 
 include/linux/elevator.h |    2 
 init/Kconfig             |    2 
 14 files changed, 606 insertions(+), 979 deletions(-)

Thanks.

--
tejun

[L] http://thread.gmane.org/gmane.linux.kernel/1242220

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

end of thread, other threads:[~2012-02-02 17:14 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-01 20:50 [PATCHSET] blkcg: kill policy node and blkg->dev, take#4 Tejun Heo
2012-02-01 20:50 ` [PATCH 01/16] blkcg: make CONFIG_BLK_CGROUP bool Tejun Heo
2012-02-02  6:53   ` Li Zefan
2012-02-02 17:14     ` Tejun Heo
2012-02-01 20:50 ` [PATCH 02/16] cfq: don't register propio policy if !CONFIG_CFQ_GROUP_IOSCHED Tejun Heo
2012-02-01 20:50 ` [PATCH 03/16] elevator: clear auxiliary data earlier during elevator switch Tejun Heo
2012-02-01 20:50 ` [PATCH 04/16] elevator: make elevator_init_fn() return 0/-errno Tejun Heo
2012-02-01 20:50 ` [PATCH 05/16] block: implement blk_queue_bypass_start/end() Tejun Heo
2012-02-01 20:50 ` [PATCH 06/16] block: extend queue bypassing to cover blkcg policies Tejun Heo
2012-02-01 20:50 ` [PATCH 07/16] blkcg: shoot down blkio_groups on elevator switch Tejun Heo
2012-02-01 20:50 ` [PATCH 08/16] blkcg: move rcu_read_lock() outside of blkio_group get functions Tejun Heo
2012-02-01 20:50 ` [PATCH 09/16] blkcg: update blkg get functions take blkio_cgroup as parameter Tejun Heo
2012-02-01 20:50 ` [PATCH 10/16] blkcg: use q and plid instead of opaque void * for blkio_group association Tejun Heo
2012-02-01 20:50 ` [PATCH 11/16] blkcg: add blkio_policy[] array and allow one policy per policy ID Tejun Heo
2012-02-01 20:50 ` [PATCH 12/16] blkcg: use the usual get blkg path for root blkio_group Tejun Heo
2012-02-01 20:50 ` [PATCH 13/16] blkcg: factor out blkio_group creation Tejun Heo
2012-02-01 20:50 ` [PATCH 14/16] blkcg: don't allow or retain configuration of missing devices Tejun Heo
2012-02-01 20:50 ` [PATCH 15/16] blkcg: kill blkio_policy_node Tejun Heo
2012-02-01 20:50 ` [PATCH 16/16] blkcg: kill the mind-bending blkg->dev Tejun Heo
  -- strict thread matches above, loose matches on Subject: below --
2012-01-23 23:09 [PATCHSET] blkcg: kill policy node and blkg->dev, take#3 Tejun Heo
2012-01-23 23:09 ` [PATCH 08/16] blkcg: move rcu_read_lock() outside of blkio_group get functions Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).