08 Aug, 2010
36 commits
-
Didn't cause a merge conflict, so fixed this one up manually
post merge.Signed-off-by: Jens Axboe
-
Fix extra brace typo that is causing build errors.
Signed-off-by: Randy Dunlap
Signed-off-by: Jens Axboe -
No real bugs I believe, just some dead code, and some
shut up code.Signed-off-by: Andi Kleen
Cc: Eric Paris
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Just some dead code.
Signed-off-by: Andi Kleen
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Allocating a fixed payload for discard requests always was a horrible hack,
and it's not coming to byte us when adding support for discard in DM/MD.So change the code to leave the allocation of a payload to the lowlevel
driver. Unfortunately that means we'll need another hack, which allows
us to update the various block layer length fields indicating that we
have a payload. Instead of hiding this in sd.c, which we already partially
do for UNMAP support add a documented helper in the core block layer for it.Signed-off-by: Christoph Hellwig
Acked-by: Mike Snitzer
Signed-off-by: Jens Axboe -
Move all code for the writeback thread into fs/fs-writeback.c instead of
splitting it over two functions in two files.Signed-off-by: Christoph Hellwig
Signed-off-by: Jens Axboe -
The wb_list member of struct backing_device_info always has exactly one
element. Just use the direct bdi->wb pointer instead and simplify some
code.Also remove bdi_task_init which is now trivial to prepare for the next
patch.Signed-off-by: Christoph Hellwig
Signed-off-by: Jens Axboe -
Signed-off-by: Christoph Hellwig
Signed-off-by: Jens Axboe -
On compilation, gcc correctly detects that we do not handle
all types:In function ‘blk_done’:
warning: enumeration value ‘REQ_TYPE_FS’ not handled in switch
warning: enumeration value ‘REQ_TYPE_SENSE’ not handled in switch
warning: enumeration value ‘REQ_TYPE_PM_SUSPEND’ not handled in switch
warning: enumeration value ‘REQ_TYPE_PM_RESUME’ not handled in switch
warning: enumeration value ‘REQ_TYPE_PM_SHUTDOWN’ not handled in switch
warning: enumeration value ‘REQ_TYPE_LINUX_BLOCK’ not handled in switch
warning: enumeration value ‘REQ_TYPE_ATA_TASKFILE’ not handled in switch
warning: enumeration value ‘REQ_TYPE_ATA_PC’ not handled in switchwhich is a bit pointless since this is at the end of the request
processessing. Add a default case that just breaks out.Signed-off-by: Jens Axboe
-
Remove the current bio flags and reuse the request flags for the bio, too.
This allows to more easily trace the type of I/O from the filesystem
down to the block driver. There were two flags in the bio that were
missing in the requests: BIO_RW_UNPLUG and BIO_RW_AHEAD. Also I've
renamed two request flags that had a superflous RW in them.Note that the flags are in bio.h despite having the REQ_ name - as
blkdev.h includes bio.h that is the only way to go for now.Signed-off-by: Christoph Hellwig
Signed-off-by: Jens Axboe -
Remove all the trivial wrappers for the cmd_type and cmd_flags fields in
struct requests. This allows much easier grepping for different request
types instead of unwinding through macros.Signed-off-by: Christoph Hellwig
Signed-off-by: Jens Axboe -
Architectures don't need to define ISA_DMA_THRESHOLD anymore.
Signed-off-by: FUJITA Tomonori
Acked-by: James Bottomley
Acked-by: David Howells
Signed-off-by: Jens Axboe -
block uses ISA_DMA_THRESHOLD for BLK_BOUNCE_ISA. Only SCSI uses
ISA_DMA_THRESHOLD for ancient drivers with non-zero
unchecked_isa_dma. Nowadays drivers (and subsystems) use dma_mask
properly instead of ISA_DMA_THRESHOLD.Documentation/scsi/scsi_mid_low_api.txt says:
unchecked_isa_dma - 1=>only use bottom 16 MB of ram (ISA DMA addressing
restriction), 0=>can use full 32 bit (or better) DMA
address spaceSo block simply uses DMA_BIT_MASK(24) for BLK_BOUNCE_ISA for SCSI.
Signed-off-by: FUJITA Tomonori
Acked-by: James Bottomley
Signed-off-by: Jens Axboe -
We can safely remove ISA_DMA_THRESHOLD usage in aha1542. aha1542 uses
ISA_DMA_THRESHOLD to see if:- the buffers in scatter/list are below 16MB.
- scsi_host is below 16MB.Both checkings were added in the ancient times but aren't necessary
nowadays since we properly bounce the buffers and allocate scsi_host
below 16MB with non-zero unchecked_isa_dma.Signed-off-by: FUJITA Tomonori
Acked-by: James Bottomley
Signed-off-by: Jens Axboe -
A barrier request should by defintion have priority in get_request
and let the queue be unplugged immediately as it's blocking all forward
progress due to the queue draining.Most filesystems already get this implicitly by the way how submit_bh
treats the buffer_ordered flag, and gfs2 sets it explicitly. But btrfs
and XFS are still forgetting to set the flag, as is blkdev_issue_flush
and some places in DM/MD.For XFS on metadata heavy workloads this gives a consistent speedup
in the 2-3% range.Signed-off-by: Christoph Hellwig
Signed-off-by: Jens Axboe -
Convert assertions to use WARN(). There are several error checks in the
code for things that should never happen. Convert them to standard
warnings so kerneloops.org will see them.Signed-off-by: Stephen Hemminger
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Convert wait loops to use wait_event_ macros.
Signed-off-by: Stephen Hemminger
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Ioctl cmd value is unsigned, so change normalize_ioctl
Signed-off-by: Stephen Hemminger
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
As reported by sparse, cmos attribute is local.
Signed-off-by: Stephen Hemminger
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
The usage_count was being protected by a lock which was only there to
create an atomic counter.Signed-off-by: Stephen Hemminger
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
The first thing the floppy does is read block 0 to test geometry and to
test for disk presence. If disk is not present this causes a console
warning message about failed I/O. Set flag to silence.Signed-off-by: Stephen Hemminger
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
These routines are all big enough that is better to let the compiler
decide to inline or not.Signed-off-by: Stephen Hemminger
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Set debug jiffies offset at initialization. Avoids wierd values showing
up if debugging enabled.Signed-off-by: Stephen Hemminger
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Change the command padding on 32-bit systems to 0 since setting it to 32
has the identical effect.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Remove a debug statement left behind by accident Ths debug statement got
left behind. It was commented out after use but not deleted.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
The definition of next_command also ended up in wrong place It ended up
inside an "#ifdef CONFIG_PROCFS". Already caught by Randy Dunlap and a
couple others. Tried to put it somewhere that made sense.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
call to put_controller_in_performant_mode was in the wrong place
The call inadvertently ended up in an error path.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Make sure we register the performant mode interrupt Another blunder.
Seemed to work because the call to put_controller_into_performant_mode was
never called.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
The code for nonrot, random, and io stats are completely identical.
Signed-off-by: Jens Axboe
-
There are two reasons for doing this:
- On SSD disks, the completion times aren't as random as they
are for rotational drives. So it's questionable whether they
should contribute to the random pool in the first place.- Calling add_disk_randomness() has a lot of overhead.
This adds /sys/block//queue/add_random that will allow you to
switch off on a per-device basis. The default setting is on, so there
should be no functional changes from this patch.Signed-off-by: Jens Axboe
-
Add support for new controllers due out next year. HP must continue to
support new controllers in older distros. All vendors require support be
upstream. These controllers support only 16 commands in simple mode but
can support up to 1024 in performant mode. See patch 5/6/ We have no
marketing names yet.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Add a mode of controller operation called Performant Mode. Even though
cciss has been deprecated in favor of hpsa there are new controllers due
out next year that HP must support in older vendor distros. Vendors
require all fixes/features be upstream. These new controllers support
only 16 commands in simple mode but support up to 1024 in performant mode.
This requires us to add this support at this late date.The performant mode transport minimizes host PCI accesses by performinf
many completions per read. PCI writes are posted so the host can write
then immediately get off the bus not waiting for the writwe to complete to
the target. In the context of performant mode the host read out to a
controller pulls all posted writes into host memory ensuring the reply
queue is coherent.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Change the return type of our interrupt access routines to bool from
unsigned long. It makes more sense that way.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Check to see if h->msi[x]_vector is set. We need this for a following
patch. Without this check we process one interrupt then stop because in
msi[x] mode the interrupt pending bit is not set. Not sure why we didn't
encounter this before.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Simplify the interrupt handler code to more closely match hpsa and to
hopefully make it easier to follow.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe -
Clean up some code where we subit our io. The same 5 lines appeared
several times. Also helps for a following patch.Signed-off-by: Mike Miller
Cc: Stephen M. Cameron
Signed-off-by: Andrew Morton
Signed-off-by: Jens Axboe
02 Aug, 2010
2 commits
-
nfs_commit_inode() needs to be defined irrespectively of whether or not
we are supporting NFSv3 and NFSv4.Allow the compiler to optimise away code in the NFSv2-only case by
converting it into an inlined stub function.Reported-and-tested-by: Ingo Molnar
Signed-off-by: Trond Myklebust
Signed-off-by: Linus Torvalds
31 Jul, 2010
2 commits
-
* master.kernel.org:/home/rmk/linux-2.6-arm:
cyber2000fb: fix console in truecolor modes
cyber2000fb: fix machine hang on module load
SA1111: Eliminate use after free
ARM: Fix Versatile/Realview/VExpress MMC card detection sense
ARM: 6279/1: highmem: fix SMP preemption bug in kmap_high_l1_vipt
ARM: Add barriers to io{read,write}{8,16,32} accessors as well
ARM: 6273/1: Add barriers to the I/O accessors if ARM_DMA_MEM_BUFFERABLE
ARM: 6272/1: Convert L2x0 to use the IO relaxed operations
ARM: 6271/1: Introduce *_relaxed() I/O accessors
ARM: 6275/1: ux500: don't use writeb() in uncompress.h
ARM: 6270/1: clean files in arch/arm/boot/compressed/
ARM: Fix csum_partial_copy_from_user() -
* 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
NFS: Ensure that writepage respects the nonblock flag
NFS: kswapd must not block in nfs_release_page
nfs: include space for the NUL in root path