* [GIT PULL] Block IO bits for 3.3-rc
@ 2012-01-15 9:45 Jens Axboe
2012-01-15 20:33 ` Linus Torvalds
0 siblings, 1 reply; 3+ messages in thread
From: Jens Axboe @ 2012-01-15 9:45 UTC (permalink / raw)
To: Linus Torvalds, linux-kernel
Hi Linus,
See below for the initial 3.3-rc1 git pull request in the block IO area.
Not too much queued up for this round, mostly some code churn to improve
some of the existing functionality.
It has the following changes:
- The big io context cleanup from Tejun.
- Remove duplicated block plug in mpage_readpages(). read_pages()
already does the plugging, and it's the only call path to
mpage_readpages().
- ioctl to query rotational nature of a device from Martin.
- Getting rid of the bio integrity macros, use proper functions instead.
- Recursive merging was added and then disabled, it's suspected to be
our cause for empty cfqq crashes. It'll be re-enabled once we get to
the bottom of this.
Please pull!
git://git.kernel.dk/linux-block.git for-3.3/core
Jens Axboe (2):
block: ioc_cgroup_changed() needs to be exported
Revert "block: recursive merge requests"
Martin K. Petersen (3):
block: Introduce blk_set_stacking_limits function
block: Add BLKROTATIONAL ioctl
block: Stop using macro stubs for the bio data integrity calls
Namjae Jeon (1):
fs: remove unneeded plug in mpage_readpages()
Shaohua Li (2):
block, cfq: fix empty queue crash caused by request merge
block: recursive merge requests
Stephen Rothwell (1):
blockdev: convert some macros to static inlines
Tejun Heo (28):
block, sx8: kill blk_insert_request()
block: add blk_queue_dead()`
block: fix drain_all condition in blk_drain_queue()
block: add missing blk_queue_dead() checks
block, cfq: move cfqd->cic_index to q->id
block: misc ioc cleanups
block: make ioc get/put interface more conventional and fix race on alloction
block: misc updates to blk_get_queue()
block, cfq: misc updates to cfq_io_context
block, cfq: move ioc ioprio/cgroup changed handling to cic
block, cfq: fix race condition in cic creation path and tighten locking
block, cfq: fix cic lookup locking
block, cfq: unlink cfq_io_context's immediately
block, cfq: remove delayed unlink
block, cfq: kill ioc_gone
block, cfq: kill cic->key
block, cfq: replace current_io_context() with create_io_context()
block: reorder elevator switch sequence
block: remove elevator_queue->ops
block, cfq: reorganize cfq_io_context into generic and cfq specific parts
block, cfq: move cfqd->icq_list to request_queue and add request->elv.icq
block, cfq: move io_cq lookup to blk-ioc.c
block, cfq: move icq cache management to block core
block, cfq: move io_cq exit/release to blk-ioc.c
block, cfq: restructure io_cq creation path for io_context interface cleanup
block, cfq: move icq creation and rq->elv.icq association to block core
block: an exiting task should be allowed to create io_context
block: remove WARN_ON_ONCE() in exit_io_context()
block/blk-cgroup.c | 11 +-
block/blk-core.c | 203 +++++++++------
block/blk-exec.c | 8 +-
block/blk-ioc.c | 485 +++++++++++++++++++++++++++++------
block/blk-settings.c | 32 ++-
block/blk-sysfs.c | 12 +-
block/blk-throttle.c | 4 +-
block/blk.h | 58 ++++-
block/bsg.c | 4 +-
block/cfq-iosched.c | 619 +++++++++------------------------------------
block/compat_ioctl.c | 3 +
block/deadline-iosched.c | 4 +-
block/elevator.c | 217 ++++++++--------
block/genhd.c | 2 +-
block/ioctl.c | 2 +
block/noop-iosched.c | 4 +-
drivers/block/sx8.c | 12 +-
drivers/md/dm-table.c | 6 +-
drivers/md/md.c | 1 +
drivers/scsi/scsi_scan.c | 2 +-
fs/ioprio.c | 24 +--
fs/mpage.c | 4 -
include/linux/bio.h | 66 ++++-
include/linux/blkdev.h | 101 ++++++--
include/linux/elevator.h | 41 ++--
include/linux/fs.h | 1 +
include/linux/iocontext.h | 136 +++++++---
kernel/fork.c | 8 +-
28 files changed, 1133 insertions(+), 937 deletions(-)
--
Jens Axboe
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [GIT PULL] Block IO bits for 3.3-rc
2012-01-15 9:45 [GIT PULL] Block IO bits for 3.3-rc Jens Axboe
@ 2012-01-15 20:33 ` Linus Torvalds
2012-01-16 7:22 ` Tejun Heo
0 siblings, 1 reply; 3+ messages in thread
From: Linus Torvalds @ 2012-01-15 20:33 UTC (permalink / raw)
To: Jens Axboe, Tejun Heo; +Cc: linux-kernel
On Sun, Jan 15, 2012 at 1:45 AM, Jens Axboe <axboe@kernel.dk> wrote:
>
> See below for the initial 3.3-rc1 git pull request in the block IO area.
> Not too much queued up for this round, mostly some code churn to improve
> some of the existing functionality.
>
> It has the following changes:
>
> - The big io context cleanup from Tejun.
Ok. This got some conflicts that I think I got right, but I'd really
like Tejun to check it out. There were changes mainly to things he had
removed, and I think all the changes were made irrelevant by his
cleanups, but...
Tejun?
Linus
>
> - Remove duplicated block plug in mpage_readpages(). read_pages()
> already does the plugging, and it's the only call path to
> mpage_readpages().
>
> - ioctl to query rotational nature of a device from Martin.
>
> - Getting rid of the bio integrity macros, use proper functions instead.
>
> - Recursive merging was added and then disabled, it's suspected to be
> our cause for empty cfqq crashes. It'll be re-enabled once we get to
> the bottom of this.
>
>
> Please pull!
>
>
> git://git.kernel.dk/linux-block.git for-3.3/core
>
>
> Jens Axboe (2):
> block: ioc_cgroup_changed() needs to be exported
> Revert "block: recursive merge requests"
>
> Martin K. Petersen (3):
> block: Introduce blk_set_stacking_limits function
> block: Add BLKROTATIONAL ioctl
> block: Stop using macro stubs for the bio data integrity calls
>
> Namjae Jeon (1):
> fs: remove unneeded plug in mpage_readpages()
>
> Shaohua Li (2):
> block, cfq: fix empty queue crash caused by request merge
> block: recursive merge requests
>
> Stephen Rothwell (1):
> blockdev: convert some macros to static inlines
>
> Tejun Heo (28):
> block, sx8: kill blk_insert_request()
> block: add blk_queue_dead()`
> block: fix drain_all condition in blk_drain_queue()
> block: add missing blk_queue_dead() checks
> block, cfq: move cfqd->cic_index to q->id
> block: misc ioc cleanups
> block: make ioc get/put interface more conventional and fix race on alloction
> block: misc updates to blk_get_queue()
> block, cfq: misc updates to cfq_io_context
> block, cfq: move ioc ioprio/cgroup changed handling to cic
> block, cfq: fix race condition in cic creation path and tighten locking
> block, cfq: fix cic lookup locking
> block, cfq: unlink cfq_io_context's immediately
> block, cfq: remove delayed unlink
> block, cfq: kill ioc_gone
> block, cfq: kill cic->key
> block, cfq: replace current_io_context() with create_io_context()
> block: reorder elevator switch sequence
> block: remove elevator_queue->ops
> block, cfq: reorganize cfq_io_context into generic and cfq specific parts
> block, cfq: move cfqd->icq_list to request_queue and add request->elv.icq
> block, cfq: move io_cq lookup to blk-ioc.c
> block, cfq: move icq cache management to block core
> block, cfq: move io_cq exit/release to blk-ioc.c
> block, cfq: restructure io_cq creation path for io_context interface cleanup
> block, cfq: move icq creation and rq->elv.icq association to block core
> block: an exiting task should be allowed to create io_context
> block: remove WARN_ON_ONCE() in exit_io_context()
>
> block/blk-cgroup.c | 11 +-
> block/blk-core.c | 203 +++++++++------
> block/blk-exec.c | 8 +-
> block/blk-ioc.c | 485 +++++++++++++++++++++++++++++------
> block/blk-settings.c | 32 ++-
> block/blk-sysfs.c | 12 +-
> block/blk-throttle.c | 4 +-
> block/blk.h | 58 ++++-
> block/bsg.c | 4 +-
> block/cfq-iosched.c | 619 +++++++++------------------------------------
> block/compat_ioctl.c | 3 +
> block/deadline-iosched.c | 4 +-
> block/elevator.c | 217 ++++++++--------
> block/genhd.c | 2 +-
> block/ioctl.c | 2 +
> block/noop-iosched.c | 4 +-
> drivers/block/sx8.c | 12 +-
> drivers/md/dm-table.c | 6 +-
> drivers/md/md.c | 1 +
> drivers/scsi/scsi_scan.c | 2 +-
> fs/ioprio.c | 24 +--
> fs/mpage.c | 4 -
> include/linux/bio.h | 66 ++++-
> include/linux/blkdev.h | 101 ++++++--
> include/linux/elevator.h | 41 ++--
> include/linux/fs.h | 1 +
> include/linux/iocontext.h | 136 +++++++---
> kernel/fork.c | 8 +-
> 28 files changed, 1133 insertions(+), 937 deletions(-)
>
> --
> Jens Axboe
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [GIT PULL] Block IO bits for 3.3-rc
2012-01-15 20:33 ` Linus Torvalds
@ 2012-01-16 7:22 ` Tejun Heo
0 siblings, 0 replies; 3+ messages in thread
From: Tejun Heo @ 2012-01-16 7:22 UTC (permalink / raw)
To: Linus Torvalds; +Cc: Jens Axboe, linux-kernel
Hello,
On Sun, Jan 15, 2012 at 12:33:20PM -0800, Linus Torvalds wrote:
> On Sun, Jan 15, 2012 at 1:45 AM, Jens Axboe <axboe@kernel.dk> wrote:
> > See below for the initial 3.3-rc1 git pull request in the block IO area.
> > Not too much queued up for this round, mostly some code churn to improve
> > some of the existing functionality.
> >
> > It has the following changes:
> >
> > - The big io context cleanup from Tejun.
>
> Ok. This got some conflicts that I think I got right, but I'd really
> like Tejun to check it out. There were changes mainly to things he had
> removed, and I think all the changes were made irrelevant by his
> cleanups, but...
In cfq-iosched.c, there were the following three mainline commits
which weren't in the block branch.
- 2984ff38cc "cfq-iosched: free cic_index if blkio_alloc_blkg_stats fails"
This fixes cic->cic_index freeing in alloc failure path.
cic_index got moved to q->id which is allocated in
blk_alloc_queue_node() and properly freed after any failure.
This doesn't cause any conflict per-se but causes compiler
failure as cic_index no longer exists. Changes made by this
patch should be removed.
- 5eb46851de "cfq-iosched: fix cfq_cic_link() race confition"
This fixes install race handling in unlock-alloc-lock-install
sequence. The logic got moved to ioc_create_icq() which
already deals with it properly. Ignoring conflict and
removing the conflicted part from mainline should do.
- 6ae0516b8a "block, cfq: fix empty queue crash caused by request merge"
The same commit existed in block as 4a0b75c7d0. Nothing to
do.
In blk-ioc.c, the following commit.
- bb9d97b6df "cgroup: don't use subsys->can_attach_task() or ->attach_task()"
It conflicts with three block commits updating how ioc is
obtained and the changed flag is set. Putting the updated
per-task logic from block inside cgroup_taskset_for_each()
loop is the correct resolution.
So, yeap, my merge matches yours exactly and everything looks good to
me.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-01-16 7:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-01-15 9:45 [GIT PULL] Block IO bits for 3.3-rc Jens Axboe
2012-01-15 20:33 ` Linus Torvalds
2012-01-16 7:22 ` 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.