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
10 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 -
cfq forced dispatching might not return all requests on the queue.
This bug can hang elevator switchinig and corrupt request ordering
during flush sequence.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe -
elevator_dispatch needs to run queue after forced dispatching;
otherwise, the queue might stall.Signed-off-by: Tejun Heo
Signed-off-by: Jens Axboe -
Use the symbolic name where appropriate and add a comment to the
disk_stats structure.Signed-off-by: Jens Axboe
-
In addition to the first patch, which is probably goodness, I found the
cause of my panic - applying this patch fixes it and now I am booting.
If the chosen_elevator[] is not found, fall back to noop.Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
I got a panic in the elevator code, backtrace :
Unable to handle kernel NULL pointer dereference at virtual address 00000060
..
EIP is at elevator_put+0x0/0x30 (null elevator_type passed)
..
elevator_init+0x38
blk_init_queu_node+0xc9
floppy_init+0xdb
do_initcalls+0x23
init+0x10a
init+0x0Clearly if the kmalloc here fails, e->elevator_type is not yet set; this
appears to be the correct fix, but I think I probably hit the second case
due to a race condition. Someone more familiar with the elevator code
should look at this more closely until I can determine if I can reproduce.Signed-off-by: Zachary Amsden
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe
08 Nov, 2005
1 commit
04 Nov, 2005
2 commits
-
With the recent reorg of the io scheduler selection, it unfortunately
became possible to select an io scheduler to be the default even if it
wasn't builtin. Fix this by requiring the default scheduler to be
builtin.Signed-off-by: Jens Axboe
-
drivers/block/ is right now a mix of core and driver parts. Lets move
the core parts to a new top level directory. Al will move the fs/
related block parts to block/ next.Signed-off-by: Jens Axboe