15 Apr, 2009

11 commits


08 Apr, 2009

2 commits

  • …nel/git/tip/linux-2.6-tip

    * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    branch tracer, intel-iommu: fix build with CONFIG_BRANCH_TRACER=y
    branch tracer: Fix for enabling branch profiling makes sparse unusable
    ftrace: Correct a text align for event format output
    Update /debug/tracing/README
    tracing/ftrace: alloc the started cpumask for the trace file
    tracing, x86: remove duplicated #include
    ftrace: Add check of sched_stopped for probe_sched_wakeup
    function-graph: add proper initialization for init task
    tracing/ftrace: fix missing include string.h
    tracing: fix incorrect return type of ns2usecs()
    tracing: remove CALLER_ADDR2 from wakeup tracer
    blktrace: fix pdu_len when tracing packet command requests
    blktrace: small cleanup in blk_msg_write()
    blktrace: NUL-terminate user space messages
    tracing: move scripts/trace/power.pl to scripts/tracing/power.pl

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    loop: mutex already unlocked in loop_clr_fd()
    cfq-iosched: don't let idling interfere with plugging
    block: remove unused REQ_UNPLUG
    cfq-iosched: kill two unused cfqq flags
    cfq-iosched: change dispatch logic to deal with single requests at the time
    mflash: initial support
    cciss: change to discover first memory BAR
    cciss: kernel scan thread for MSA2012
    cciss: fix residual count for block pc requests
    block: fix inconsistency in I/O stat accounting code
    block: elevator quiescing helpers

    Linus Torvalds
     

07 Apr, 2009

8 commits

  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    sata_mv: shorten register names
    sata_mv: workaround errata SATA#13
    sata_mv: cosmetic renames
    sata_mv: workaround errata SATA#26
    sata_mv: workaround errata PCI#7
    sata_mv: replace 0x1f with ATA_PIO4 (v2)
    sata_mv: fix irq mask races
    sata_mv: revert SoC irq breakage
    libata: ahci enclosure management bios workaround
    ata: Add TRIM infrastructure
    ata_piix: VGN-BX297XP wants the controller power up on suspend
    libata: Remove some redundant casts from pata_octeon_cf.c
    pata_artop: typo

    Linus Torvalds
     
  • When CFQ is waiting for a new request from a process, currently it'll
    immediately restart queuing when it sees such a request. This doesn't
    work very well with streamed IO, since we then end up splitting IO
    that would otherwise have been merged nicely. For a simple dd test,
    this causes 10x as many requests to be issued as we should have.
    Normally this goes unnoticed due to the low overhead of requests
    at the device side, but some hardware is very sensitive to request
    sizes and there it can cause big slow downs.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • The request inherits the unplug flag from the bio, but it isn't actually
    used. The bio flag stops at __make_request(), which tells it to unplug
    after submission. Passing it on to the request doesn't make any sense.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • We only manipulate the must_dispatch and queue_new flags, they are not
    tested anymore. So get rid of them.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • The IO scheduler core calls into the IO scheduler dispatch_request hook
    to move requests from the IO scheduler and into the driver dispatch
    list. It only does so when the dispatch list is empty. CFQ moves several
    requests to the dispatch list, which can cause higher latencies if we
    suddenly have to switch to some important sync IO. Change the logic to
    move one request at the time instead.

    This should almost be functionally equivalent to what we did before,
    except that we now honor 'quantum' as the maximum queue depth at the
    device side from any single cfqq. If there's just a single active
    cfqq, we allow up to 4 times the normal quantum.

    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • This forces in_flight to be zero when turning off or on the I/O stat
    accounting and stops updating I/O stats in attempt_merge() when
    accounting is turned off.

    Signed-off-by: Jerome Marchand
    Signed-off-by: Jens Axboe

    Jerome Marchand
     
  • Simple helper functions to quiesce the request queue. These are
    currently only used for switching IO schedulers on-the-fly, but
    we can use them to properly switch IO accounting on and off as well.

    Signed-off-by: Jerome Marchand
    Signed-off-by: Jens Axboe

    Jens Axboe
     
  • Fix a typo (this was in the original patch but was not merged when the code
    fixes were for some reason)

    Signed-off-by: Alan Cox
    Signed-off-by: Jeff Garzik

    Alan Cox
     

06 Apr, 2009

5 commits

  • By default, CFQ will anticipate more IO from a given io context if the
    previously completed IO was sync. This used to be fine, since the only
    sync IO was reads and O_DIRECT writes. But with more "normal" sync writes
    being used now, we don't want to anticipate for those.

    Add a bio/request flag that informs the IO scheduler that this is a sync
    request that we should not idle for. Introduce WRITE_ODIRECT specifically
    for O_DIRECT writes, and make sure that the other sync writes set this
    flag.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • For the older SSD devices that don't do command queuing, we do want to
    enable plugging to get better merging.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • This makes sure that we never wait on async IO for sync requests, instead
    of doing the split on writes vs reads.

    Signed-off-by: Jens Axboe
    Signed-off-by: Linus Torvalds

    Jens Axboe
     
  • * 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)
    tracing, net: fix net tree and tracing tree merge interaction
    tracing, powerpc: fix powerpc tree and tracing tree interaction
    ring-buffer: do not remove reader page from list on ring buffer free
    function-graph: allow unregistering twice
    trace: make argument 'mem' of trace_seq_putmem() const
    tracing: add missing 'extern' keywords to trace_output.h
    tracing: provide trace_seq_reserve()
    blktrace: print out BLK_TN_MESSAGE properly
    blktrace: extract duplidate code
    blktrace: fix memory leak when freeing struct blk_io_trace
    blktrace: fix blk_probes_ref chaos
    blktrace: make classic output more classic
    blktrace: fix off-by-one bug
    blktrace: fix the original blktrace
    blktrace: fix a race when creating blk_tree_root in debugfs
    blktrace: fix timestamp in binary output
    tracing, Text Edit Lock: cleanup
    tracing: filter fix for TRACE_EVENT_FORMAT events
    ftrace: Using FTRACE_WARN_ON() to check "freed record" in ftrace_release()
    x86: kretprobe-booster interrupt emulation code fix
    ...

    Fix up trivial conflicts in
    arch/parisc/include/asm/ftrace.h
    include/linux/memory.h
    kernel/extable.c
    kernel/module.c

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask: (36 commits)
    cpumask: remove cpumask allocation from idle_balance, fix
    numa, cpumask: move numa_node_id default implementation to topology.h, fix
    cpumask: remove cpumask allocation from idle_balance
    x86: cpumask: x86 mmio-mod.c use cpumask_var_t for downed_cpus
    x86: cpumask: update 32-bit APM not to mug current->cpus_allowed
    x86: microcode: cleanup
    x86: cpumask: use work_on_cpu in arch/x86/kernel/microcode_core.c
    cpumask: fix CONFIG_CPUMASK_OFFSTACK=y cpu hotunplug crash
    numa, cpumask: move numa_node_id default implementation to topology.h
    cpumask: convert node_to_cpumask_map[] to cpumask_var_t
    cpumask: remove x86 cpumask_t uses.
    cpumask: use cpumask_var_t in uv_flush_tlb_others.
    cpumask: remove cpumask_t assignment from vector_allocation_domain()
    cpumask: make Xen use the new operators.
    cpumask: clean up summit's send_IPI functions
    cpumask: use new cpumask functions throughout x86
    x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask
    cpumask: convert struct cpuinfo_x86's llc_shared_map to cpumask_var_t
    cpumask: convert node_to_cpumask_map[] to cpumask_var_t
    x86: unify 32 and 64-bit node_to_cpumask_map
    ...

    Linus Torvalds
     

04 Apr, 2009

1 commit


03 Apr, 2009

1 commit

  • Impact: output all of packet commands - not just the first 4 / 8 bytes

    Since commit d7e3c3249ef23b4617393c69fe464765b4ff1645 ("block: add
    large command support"), struct request->cmd has been changed from
    unsinged char cmd[BLK_MAX_CDB] to unsigned char *cmd.

    v1 -> v2: by: FUJITA Tomonori

    - make sure rq->cmd_len is always intialized, and then we can use
    rq->cmd_len instead of BLK_MAX_CDB.

    Signed-off-by: Li Zefan
    Acked-by: FUJITA Tomonori
    Cc: Arnaldo Carvalho de Melo
    Cc: Steven Rostedt
    Cc: Frederic Weisbecker
    Cc: Jens Axboe
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Li Zefan
     

02 Apr, 2009

1 commit


31 Mar, 2009

1 commit


29 Mar, 2009

2 commits

  • …nux/kernel/git/tip/linux-2.6-tip

    * 'percpu-cpumask-x86-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (682 commits)
    percpu: fix spurious alignment WARN in legacy SMP percpu allocator
    percpu: generalize embedding first chunk setup helper
    percpu: more flexibility for @dyn_size of pcpu_setup_first_chunk()
    percpu: make x86 addr <-> pcpu ptr conversion macros generic
    linker script: define __per_cpu_load on all SMP capable archs
    x86: UV: remove uv_flush_tlb_others() WARN_ON
    percpu: finer grained locking to break deadlock and allow atomic free
    percpu: move fully free chunk reclamation into a work
    percpu: move chunk area map extension out of area allocation
    percpu: replace pcpu_realloc() with pcpu_mem_alloc() and pcpu_mem_free()
    x86, percpu: setup reserved percpu area for x86_64
    percpu, module: implement reserved allocation and use it for module percpu variables
    percpu: add an indirection ptr for chunk page map access
    x86: make embedding percpu allocator return excessive free space
    percpu: use negative for auto for pcpu_setup_first_chunk() arguments
    percpu: improve first chunk initial area map handling
    percpu: cosmetic renames in pcpu_setup_first_chunk()
    percpu: clean up percpu constants
    x86: un-__init fill_pud/pmd/pte
    x86: remove vestigial fix_ioremap prototypes
    ...

    Manually merge conflicts in arch/ia64/kernel/irq_ia64.c

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (119 commits)
    [SCSI] scsi_dh_rdac: Retry for NOT_READY check condition
    [SCSI] mpt2sas: make global symbols unique
    [SCSI] sd: Make revalidate less chatty
    [SCSI] sd: Try READ CAPACITY 16 first for SBC-2 devices
    [SCSI] sd: Refactor sd_read_capacity()
    [SCSI] mpt2sas v00.100.11.15
    [SCSI] mpt2sas: add MPT2SAS_MINOR(221) to miscdevice.h
    [SCSI] ch: Add scsi type modalias
    [SCSI] 3w-9xxx: add power management support
    [SCSI] bsg: add linux/types.h include to bsg.h
    [SCSI] cxgb3i: fix function descriptions
    [SCSI] libiscsi: fix possbile null ptr session command cleanup
    [SCSI] iscsi class: remove host no argument from session creation callout
    [SCSI] libiscsi: pass session failure a session struct
    [SCSI] iscsi lib: remove qdepth param from iscsi host allocation
    [SCSI] iscsi lib: have lib create work queue for transmitting IO
    [SCSI] iscsi class: fix lock dep warning on logout
    [SCSI] libiscsi: don't cap queue depth in iscsi modules
    [SCSI] iscsi_tcp: replace scsi_debug/tcp_debug logging with iscsi conn logging
    [SCSI] libiscsi_tcp: replace tcp_debug/scsi_debug logging with session/conn logging
    ...

    Linus Torvalds
     

28 Mar, 2009

1 commit


26 Mar, 2009

2 commits


24 Mar, 2009

3 commits

  • Currently inherited from sg.c bsg will submit asynchronous request
    at the head-of-the-queue, (using "at_head" set in the call to
    blk_execute_rq_nowait()). This is bad in situation where the queues
    are full, requests will execute out of order, and can cause
    starvation of the first submitted requests.

    The sg_io_v4->flags member is used and a bit is allocated to denote the
    Q_AT_TAIL. Zero is to queue at_head as before, to be compatible with old
    code at the write/read path. SG_IO code path behavior was changed so to
    be the same as write/read behavior. SG_IO was very rarely used and breaking
    compatibility with it is OK at this stage.

    sg_io_hdr at sg.h also has a flags member and uses 3 bits from the first
    nibble and one bit from the last nibble. Even though none of these bits
    are supported by bsg, The second nibble is allocated for use by bsg. Just
    in case.

    Signed-off-by: Boaz Harrosh
    CC: Douglas Gilbert
    Signed-off-by: Jens Axboe

    Boaz Harrosh
     
  • Signed-off-by: Jens Axboe

    Jens Axboe
     
  • It calls blk_queue_make_request(), which sets the identical set of limits.

    Signed-off-by: Jens Axboe

    Jens Axboe
     

13 Mar, 2009

2 commits