08 Aug, 2010

36 commits

  • Didn't cause a merge conflict, so fixed this one up manually
    post merge.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Fix extra brace typo that is causing build errors.

    Signed-off-by: Randy Dunlap
    Signed-off-by: Jens Axboe

    Randy Dunlap
     
  • 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

    Andi Kleen
     
  • Just some dead code.

    Signed-off-by: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Andi Kleen
     
  • 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

    Christoph Hellwig
     
  • 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

    Christoph Hellwig
     
  • 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

    Christoph Hellwig
     
  • Signed-off-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Christoph Hellwig
     
  • 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 switch

    which 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

    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

    Christoph Hellwig
     
  • 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

    Christoph Hellwig
     
  • 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

    FUJITA Tomonori
     
  • 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 space

    So 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

    FUJITA Tomonori
     
  • 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

    FUJITA Tomonori
     
  • 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

    Christoph Hellwig
     
  • 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

    Stephen Hemminger
     
  • Convert wait loops to use wait_event_ macros.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Stephen Hemminger
     
  • Ioctl cmd value is unsigned, so change normalize_ioctl

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Stephen Hemminger
     
  • As reported by sparse, cmos attribute is local.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Stephen Hemminger
     
  • 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

    Stephen Hemminger
     
  • 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

    Stephen Hemminger
     
  • 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

    Stephen Hemminger
     
  • 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

    Stephen Hemminger
     
  • 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

    Mike Miller
     
  • 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

    Mike Miller
     
  • 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

    Mike Miller
     
  • 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

    Mike Miller
     
  • 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

    Mike Miller
     
  • The code for nonrot, random, and io stats are completely identical.

    Signed-off-by: Jens Axboe

    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

    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

    Mike Miller
     
  • 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

    Mike Miller
     
  • 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

    Mike Miller
     
  • 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

    Mike Miller
     
  • 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

    Mike Miller
     
  • 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

    Mike Miller
     

02 Aug, 2010

2 commits


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()

    Linus Torvalds
     
  • * '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

    Linus Torvalds