02 Feb, 2006
1 commit
-
Record I/O timing statistics
The start time is added to struct dm_io, an existing structure allocated
privately internally within dm and attached to each incoming bio.We export disk_round_stats() from block/ll_rw_blk.c instead of creating a
private clone.Signed-off-by: Jun'ichi "Nick" Nomura
Signed-off-by: Alasdair G Kergon
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
31 Jan, 2006
1 commit
-
Signed-off-by: Jens Axboe
24 Jan, 2006
5 commits
-
This makes XFS barrier mounts succeed on my SCSI system.
Signed-off-by: Tetsuo Takata
Signed-off-by: Jens Axboe -
Jens has decided that allowing the default scheduler to be a module is
a bug, and should not be allowed under kconfig. However, I find that
scenario useful for debugging, and wish for the kernel to be able to
handle this situation without OOPSing, if I enable such an option in
the .config directly. This patch dynamically checks for the presence
of the compiled-in default, and falls back to no-op, emitting a
suitable error message, when the default is not availableTested for a range of boot options on 2.6.16-rc1-mm2.
Signed-off-by: Nate Diller
Signed-off-by: Jens Axboe -
My previous default iosched patch did a poor job dealing with the
'elevator=' boot-time option. The old behavior falls back to the
compiled-in default if the requested one is not registered at boot
time. This patch dynamically evaluates which default
to use, and emits a suitable error message when the requested scheduler
is not available. It also does the 'as' -> 'anticipatory' conversion
before elevator registration, which along with a modified registration
function, allows it to correctly indicate which default scheduler is
in use.Tested for a range of boot options on 2.6.16-rc1-mm2.
Signed-off-by: Nate Diller
Signed-off-by: Jens Axboe -
It can legally be called with interrupts/preemption enabled.
Signed-off-by: Jens Axboe
-
IDE lba48 can support full 64k request size, which overflows the
max_hw_sectors variable.Signed-off-by: Jens Axboe
16 Jan, 2006
2 commits
-
Signed-off-by: Jens Axboe
-
Signed-off-by: Chuck Ebbert
Signed-off-by: Jens Axboe
15 Jan, 2006
1 commit
-
A Christoph suggested that the /proc/devices file be converted to use the
seq_file interface. This patch does that.I've obxerved one or two installation that had sufficiently large sans that
they overran the 4k limit on /proc/devices.Signed-off-by: Neil Horman
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
13 Jan, 2006
1 commit
-
If ordered tag isn't supported, request ordering for barrier
sequencing is performed by queue draining, which basically hangs the
request queue until elv_completed_request() reports completion of all
previous fs requests.The condition check in elv_completed_request() was only performed for
fs requests. If a special request is queued between the last
to-be-drained request and the barrier sequence, draining is never
completed and the queue is stalled forever.This patch moves the end-of-draining condition check such that it's
performed for all requests.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe
Signed-off-by: Linus Torvalds
12 Jan, 2006
1 commit
-
- Move capable() from sched.h to capability.h;
- Use where capable() is used
(in include/, block/, ipc/, kernel/, a few drivers/,
mm/, security/, & sound/;
many more drivers/ to go)Signed-off-by: Randy Dunlap
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
10 Jan, 2006
1 commit
-
Manual merge for trivial #include changes
09 Jan, 2006
6 commits
-
Request completion can be a quite heavy process, since it needs to
iterate through the entire request and complete the bio's it holds.
This patch adds blk_complete_request() which moves this processing
into a dedicated block softirq.Signed-off-by: Jens Axboe
-
It's a broken interface, it's done way too late. And apparently it triggers
slab problems in recent kernels as well (most likely after the generic dispatch
code was merged). So kill it, ide-cd is the only user of it.Signed-off-by: Jens Axboe
-
Signed-off-by: Jens Axboe
-
elv_try_last_merge().
Signed-off-by: Coywolf Qi Hunt
Signed-off-by: Jens Axboe -
linux/blkdev.h included twice
Signed-off-by: Nicolas Kaiser
Signed-off-by: Jens Axboe -
HDIO_GETGEO is implemented in most block drivers, and all of them have to
duplicate the code to copy the structure to userspace, as well as getting
the start sector. This patch moves that to common code [1] and adds a
->getgeo method to fill out the raw kernel hd_geometry structure. For many
drivers this means ->ioctl can go away now.[1] the s390 block drivers are odd in this respect. xpram sets ->start
to 4 always which seems more than odd, and the dasd driver shifts
the start offset around, probably because of it's non-standard
sector size.Signed-off-by: Christoph Hellwig
Cc: Jens Axboe
Cc:
Cc: Jeff Dike
Cc: Paolo Giarrusso
Cc: Bartlomiej Zolnierkiewicz
Cc: Neil Brown
Cc: Markus Lidel
Cc: Russell King
Cc: David Woodhouse
Cc: Martin Schwidefsky
Cc: James Bottomley
Signed-off-by: Adrian Bunk
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
07 Jan, 2006
2 commits
-
Manual fixup for merge with Jens' "Suspend support for libata", commit
ID 9b847548663ef1039dd49f0eb4463d001e596bc3.Signed-off-by: Linus Torvalds
-
Sanitize some s390 Kconfig options. We have ARCH_S390, ARCH_S390X,
ARCH_S390_31, 64BIT, S390_SUPPORT and COMPAT. Replace these 6 options by
S390, 64BIT and COMPAT.Signed-off-by: Martin Schwidefsky
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
06 Jan, 2006
6 commits
-
Reimplement handling of barrier requests.
* Flexible handling to deal with various capabilities of
target devices.
* Retry support for falling back.
* Tagged queues which don't support ordered tag can do ordered.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe -
Separate out bio initialization part from __make_request. It
will be used by the following blk_ordered_reimpl.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe -
add @uptodate argument to end_that_request_last() and @error
to rq_end_io_fn(). there's no generic way to pass error code
to request completion function, making generic error handling
of non-fs request difficult (rq->errors is driver-specific and
each driver uses it differently). this patch adds @uptodate
to end_that_request_last() and @error to rq_end_io_fn().for fs requests, this doesn't really matter, so just using the
same uptodate argument used in the last call to
end_that_request_first() should suffice. imho, this can also
help the generic command-carrying request jens is working on.Signed-off-by: tejun heo
Signed-Off-By: Jens Axboe -
the patch below marks various read-only variables in block/* as const,
so that gcc can optimize the use of them; eg gcc will replace the use by
the value directly now and will even remove the memory usage of these.Signed-off-by: Arjan van de Ven
Signed-off-by: Jens Axboe -
Originally from: Nick Piggin
Move current_io_context out of the get_request fastpth. Also try to
streamline a few other things in this area.Signed-off-by: Jens Axboe
-
Unlike other ioscheds, as-iosched handles alias by chaing them using
rq->queuelist. As aliased requests are very rare in the first place,
this complicates merge/dispatch handling without meaningful
performance improvement. This patch updates as-iosched to dump
aliased requests into dispatch queue as other ioscheds do.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe
05 Jan, 2006
3 commits
-
Trivial manual merge fixup for usb_find_interface clashes.
-
Leave the overloaded "hotplug" word to susbsystems which are handling
real devices. The driver core does not "plug" anything, it just exports
the state to userspace and generates events.Signed-off-by: Kay Sievers
Signed-off-by: Greg Kroah-Hartman
20 Dec, 2005
1 commit
-
This is just a basic cleanup. No change in functionality.
Signed-off-by: Ben Collins
Signed-off-by: Linus Torvalds
16 Dec, 2005
1 commit
-
- export __blk_put_request and blk_execute_rq_nowait
needed for async REQ_BLOCK_PC requests
- seperate max_hw_sectors and max_sectors for block/scsi_ioctl.c and
SG_IO bio.c helpers per Jens's last comments. Since block/scsi_ioctl.c SG_IO was
already testing against max_sectors and SCSI-ml was setting max_sectors and
max_hw_sectors to the same value this does not change any scsi SG_IO behavior. It only
prepares ll_rw_blk.c, scsi_ioctl.c and bio.c for when SCSI-ml begins to set
a valid max_hw_sectors for all LLDs. Today if a LLD does not set it
SCSI-ml sets it to a safe default and some LLDs set it to a artificial low
value to overcome memory and feedback issues.Note: Since we now cap max_sectors to BLK_DEF_MAX_SECTORS, which is 1024,
drivers that used to call blk_queue_max_sectors with a large value of
max_sectors will now see the fs requests capped to BLK_DEF_MAX_SECTORS.Signed-off-by: Mike Christie
Signed-off-by: James Bottomley
15 Dec, 2005
1 commit
-
To send async requests we need these two functions exported.
Signed-off-by: Mike Christie
Signed-off-by: James Bottomley
22 Nov, 2005
1 commit
-
Kill the arq->state poison statement in as_add_request(), it can trigger
for perfectly valid code that just reuses a request after io completion
instead of freeing it and allocating a new one. We probably should
introduce a blk_init_request() to start from scratch, but for now just
kill it as we will be removing the as specific poisoning soon.Signed-off-by: Jens Axboe
Signed-off-by: Linus Torvalds
19 Nov, 2005
1 commit
-
Some leftover comments referring to drivers/block that are now block/.
They don't add any information we don't already have, so kill them.Signed-off-by: Coywolf Qi Hunt
Signed-off-by: Jens Axboe
12 Nov, 2005
5 commits
-
With generic dispatch queue update, implicit former/latter request
handling using rq->queuelist.prev/next doesn't work as expected
anymore. Also, the only iosched dependent on this feature was
noop-iosched and it has been reimplemented to have its own
latter/former methods. This patch removes implicit former/latter
handling.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe -
The original implementation directly used dispatch queue. As new
generic dispatch queue imposes stricter rules over ioscheds and
dispatch queue usage, this direct use becomes somewhat problematic.
This patch reimplements noop-iosched such that it complies to generic
iosched model better. Request merging with q->last_merge and
rq->queuelist.prev/next work again now.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe <axboe@suse.de -
When cfq slice expires, remainder of slice is calculated and stored in
cfqq->slice_left. Current code calculates the opposite of remainder -
how many jiffies the cfqq has used past slice end. This patch fixes
the bug.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe -
elv_iosched_store doesn't terminate string passed from userspace if
it's too long. Also, if the written length is zero (probably not
possible), it accesses elevator_name[-1]. This patch fixes both bugs.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe -
This patch adds request_queue->nr_sorted which keeps the number of
requests in the iosched and implement elv_drain_elevator which
performs forced dispatching. elv_drain_elevator checks whether
iosched actually dispatches all requests it has and prints error
message if it doesn't. As buggy forced dispatching can result in
wrong barrier operations, I think this extra check is worthwhile.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe