10 Oct, 2016

1 commit

  • Pull blk-mq irq/cpu mapping updates from Jens Axboe:
    "This is the block-irq topic branch for 4.9-rc. It's mostly from
    Christoph, and it allows drivers to specify their own mappings, and
    more importantly, to share the blk-mq mappings with the IRQ affinity
    mappings. It's a good step towards making this work better out of the
    box"

    * 'for-4.9/block-irq' of git://git.kernel.dk/linux-block:
    blk_mq: linux/blk-mq.h does not include all the headers it depends on
    blk-mq: kill unused blk_mq_create_mq_map()
    blk-mq: get rid of the cpumask in struct blk_mq_tags
    nvme: remove the post_scan callout
    nvme: switch to use pci_alloc_irq_vectors
    blk-mq: provide a default queue mapping for PCI device
    blk-mq: allow the driver to pass in a queue mapping
    blk-mq: remove ->map_queue
    blk-mq: only allocate a single mq_map per tag_set
    blk-mq: don't redistribute hardware queues on a CPU hotplug event

    Linus Torvalds
     

19 Sep, 2016

1 commit


17 Sep, 2016

1 commit

  • This is a generally useful data structure, so make it available to
    anyone else who might want to use it. It's also a nice cleanup
    separating the allocation logic from the rest of the tag handling logic.

    The code is behind a new Kconfig option, CONFIG_SBITMAP, which is only
    selected by CONFIG_BLOCK for now.

    This should be a complete noop functionality-wise.

    Signed-off-by: Omar Sandoval
    Signed-off-by: Jens Axboe

    Omar Sandoval
     

04 Aug, 2016

1 commit

  • The functionality for block device DAX was already removed with commit
    acc93d30d7d4 ("Revert "block: enable dax for raw block devices"")

    However, we still had a config option hanging around that was always
    disabled because it depended on CONFIG_BROKEN. This config option was
    introduced in commit 03cdadb04077 ("block: disable block device DAX by
    default")

    This change reverts that commit, removing the dead config option.

    Link: http://lkml.kernel.org/r/20160729182314.6368-1-ross.zwisler@linux.intel.com
    Signed-off-by: Ross Zwisler
    Cc: Dave Hansen
    Acked-by: Dan Williams
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ross Zwisler
     

28 Feb, 2016

1 commit

  • The recent *sync enabling discovered that we are inserting into the
    block_device pagecache counter to the expectations of the dirty data
    tracking for dax mappings. This can lead to data corruption.

    We want to support DAX for block devices eventually, but it requires
    wider changes to properly manage the pagecache.

    dump_stack+0x85/0xc2
    dax_writeback_mapping_range+0x60/0xe0
    blkdev_writepages+0x3f/0x50
    do_writepages+0x21/0x30
    __filemap_fdatawrite_range+0xc6/0x100
    filemap_write_and_wait+0x4a/0xa0
    set_blocksize+0x70/0xd0
    sb_set_blocksize+0x1d/0x50
    ext4_fill_super+0x75b/0x3360
    mount_bdev+0x180/0x1b0
    ext4_mount+0x15/0x20
    mount_fs+0x38/0x170

    Mark the support broken so its disabled by default, but otherwise still
    available for testing.

    Signed-off-by: Dan Williams
    Signed-off-by: Ross Zwisler
    Reported-by: Ross Zwisler
    Suggested-by: Dave Chinner
    Reviewed-by: Jan Kara
    Cc: Jens Axboe
    Cc: Matthew Wilcox
    Cc: Al Viro
    Cc: Theodore Ts'o
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Williams
     

27 Sep, 2014

1 commit

  • The T10 Protection Information format is also used by some devices that
    do not go through the SCSI layer (virtual block devices, NVMe). Relocate
    the relevant functions to a block layer library that can be used without
    involving SCSI.

    Signed-off-by: Martin K. Petersen
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Martin K. Petersen
     

01 Oct, 2013

1 commit

  • Recently commit bab55417b10c ("block: support embedded device command
    line partition") introduced CONFIG_CMDLINE_PARSER. However, that name
    is too generic and sounds like it enables/disables generic kernel boot
    arg processing, when it really is block specific.

    Before this option becomes a part of a full/final release, add the BLK_
    prefix to it so that it is clear in absence of any other context that it
    is block specific.

    In addition, fix up the following less critical items:
    - help text was not really at all helpful.
    - index file for Documentation was not updated
    - add the new arg to Documentation/kernel-parameters.txt
    - clarify wording in source comments

    Signed-off-by: Paul Gortmaker
    Cc: Jens Axboe
    Cc: Cai Zhiyong
    Cc: Wei Yongjun
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Gortmaker
     

12 Sep, 2013

1 commit

  • Read block device partition table from command line. The partition used
    for fixed block device (eMMC) embedded device. It is no MBR, save
    storage space. Bootloader can be easily accessed by absolute address of
    data on the block device. Users can easily change the partition.

    This code reference MTD partition, source "drivers/mtd/cmdlinepart.c"
    About the partition verbose reference
    "Documentation/block/cmdline-partition.txt"

    [akpm@linux-foundation.org: fix printk text]
    [yongjun_wei@trendmicro.com.cn: fix error return code in parse_parts()]
    Signed-off-by: Cai Zhiyong
    Cc: Karel Zak
    Cc: "Wanglin (Albert)"
    Cc: Marius Groeger
    Cc: David Woodhouse
    Cc: Jens Axboe
    Cc: Brian Norris
    Cc: Artem Bityutskiy
    Signed-off-by: Wei Yongjun
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cai Zhiyong
     

22 Feb, 2013

1 commit


18 Dec, 2012

1 commit

  • Currently only block_dev and uprobes use percpu_rw_semaphore,
    add the config option selected by BLOCK || UPROBES.

    Signed-off-by: Oleg Nesterov
    Cc: Anton Arapov
    Cc: Ingo Molnar
    Cc: Linus Torvalds
    Cc: Michal Marek
    Cc: Mikulas Patocka
    Cc: "Paul E. McKenney"
    Cc: Peter Zijlstra
    Cc: Srikar Dronamraju
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     

24 Oct, 2012

1 commit

  • This config item has not carried much meaning for a while now and is
    almost always enabled by default. As agreed during the Linux kernel
    summit, remove it.

    CC: Jens Axboe
    Signed-off-by: Kees Cook
    Signed-off-by: Jens Axboe

    Kees Cook
     

04 Jan, 2012

1 commit


01 Aug, 2011

1 commit

  • This moves the FC classes bsg code to the block layer and
    makes it a lib so that other classes like iscsi and SAS can use it.

    It is helpful because working with the request queue, bios,
    creating scatterlists, etc are a pain that the LLD does not
    have to worry about with normal IOs and should not have to
    worry about for bsg requests.

    Signed-off-by: Mike Christie
    Signed-off-by: Jens Axboe

    Mike Christie
     

21 Jan, 2011

1 commit

  • The meaning of CONFIG_EMBEDDED has long since been obsoleted; the option
    is used to configure any non-standard kernel with a much larger scope than
    only small devices.

    This patch renames the option to CONFIG_EXPERT in init/Kconfig and fixes
    references to the option throughout the kernel. A new CONFIG_EMBEDDED
    option is added that automatically selects CONFIG_EXPERT when enabled and
    can be used in the future to isolate options that should only be
    considered for embedded systems (RISC architectures, SLOB, etc).

    Calling the option "EXPERT" more accurately represents its intention: only
    expert users who understand the impact of the configuration changes they
    are making should enable it.

    Reviewed-by: Ingo Molnar
    Acked-by: David Woodhouse
    Signed-off-by: David Rientjes
    Cc: Greg KH
    Cc: "David S. Miller"
    Cc: Jens Axboe
    Cc: Arnd Bergmann
    Cc: Robin Holt
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Rientjes
     

16 Sep, 2010

1 commit


27 Apr, 2010

1 commit

  • This patch fixes few usability and configurability issues.

    o All the cgroup based controller options are configurable from
    "Genral Setup/Control Group Support/" menu. blkio is the only exception.
    Hence make this option visible in above menu and make it configurable from
    there to bring it inline with rest of the cgroup based controllers.

    o Get rid of CONFIG_DEBUG_CFQ_IOSCHED.

    This option currently does two things.

    - Enable printing of cgroup paths in blktrace
    - Enables CONFIG_DEBUG_BLK_CGROUP, which in turn displays additional stat
    files in cgroup.

    If we are using group scheduling, blktrace data is of not really much use
    if cgroup information is not present. To get this data, currently one has to
    also enable CONFIG_DEBUG_CFQ_IOSCHED, which in turn brings the overhead of
    all the additional debug stat files which is not desired.

    Hence, this patch moves printing of cgroup paths under
    CONFIG_CFQ_GROUP_IOSCHED.

    This allows us to get rid of CONFIG_DEBUG_CFQ_IOSCHED completely. Now all
    the debug stat files are controlled only by CONFIG_DEBUG_BLK_CGROUP which
    can be enabled through config menu.

    Signed-off-by: Vivek Goyal
    Acked-by: Divyesh Shah
    Reviewed-by: Gui Jianfeng
    Signed-off-by: Jens Axboe

    Vivek Goyal
     

16 Mar, 2010

1 commit


04 Dec, 2009

2 commits


05 Aug, 2009

1 commit


19 Jun, 2009

1 commit

  • Follow-up to "block: enable by default support for large devices
    and files on 32-bit archs".

    Rename CONFIG_LBD to CONFIG_LBDAF to:
    - allow update of existing [def]configs for "default y" change
    - reflect that it is used also for large files support nowadays

    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Jens Axboe

    Bartlomiej Zolnierkiewicz
     

28 Apr, 2009

1 commit

  • Enable by default support for large devices and files (CONFIG_LBD):

    - With 1TB disks being a commodity hardware it is quite easy to hit 2TB
    limitation while building RAIDs etc. and many distros have been using
    CONFIG_LBD=y by default already (at least Fedora 10 and openSUSE 11.1).

    - This should also prevent a subtle ext4 filesystem compatibility issue:
    mke2fs.ext4 defaults to creating filesystems with huge_files feature
    enabled and such filesystems cannot be later mounted read-write on
    machines with CONFIG_LBD=n (it should be quite easy to hit this issue
    when trying to use filesystem created using distro kernel on system
    running the self-build kernel, think about USB disk enclosures & co.).

    While at it:

    - Clarify config option help text w.r.t. mounting ext4 filesystems
    (they can be mounted with CONFIG_LBD=n but in the read-only mode).

    Cc: "Theodore Ts'o"
    Signed-off-by: Bartlomiej Zolnierkiewicz
    Signed-off-by: Jens Axboe

    Bartlomiej Zolnierkiewicz
     

09 Feb, 2009

1 commit


27 Jan, 2009

1 commit


07 Jan, 2009

1 commit


29 Dec, 2008

1 commit

  • We have two seperate config entries for large devices/files. One
    is CONFIG_LBD that guards just the devices, the other is CONFIG_LSF
    that handles large files. This doesn't make a lot of sense, you typically
    want both or none. So get rid of CONFIG_LSF and change CONFIG_LBD wording
    to indicate that it covers both.

    Acked-by: Jean Delvare
    Signed-off-by: Jens Axboe

    Jens Axboe
     

26 Nov, 2008

1 commit

  • This was a forward port of work done by Mathieu Desnoyers, I changed it to
    encode the 'what' parameter on the tracepoint name, so that one can register
    interest in specific events and not on classes of events to then check the
    'what' parameter.

    Signed-off-by: Arnaldo Carvalho de Melo
    Signed-off-by: Jens Axboe
    Signed-off-by: Ingo Molnar

    Arnaldo Carvalho de Melo
     

03 Jul, 2008

1 commit

  • Some block devices support verifying the integrity of requests by way
    of checksums or other protection information that is submitted along
    with the I/O.

    This patch implements support for generating and verifying integrity
    metadata, as well as correctly merging, splitting and cloning bios and
    requests that have this extra information attached.

    See Documentation/block/data-integrity.txt for more information.

    Signed-off-by: Martin K. Petersen
    Signed-off-by: Jens Axboe

    Martin K. Petersen
     

21 Apr, 2008

1 commit

  • Modify the help descriptions of block/Kconfig for clarity, accuracy and
    consistency.

    Refactor the BLOCK description a bit. The wording "This permits ... to be
    removed" isn't quite right; the block layer is removed when the option is
    disabled, whereas most descriptions talk about what happens when the option is
    enabled. Reformat the list of what is affected by disabling the block layer.

    Add more examples of large block devices to LBD and strive for technical
    accuracy; block devices of size _exactly_ 2TB require CONFIG_LBD, not only
    "bigger than 2TB". Also try to say (perhaps not very clearly) that the config
    option is only needed when you want to have individual block devices of size
    >= 2TB, for example if you had 3 x 1TB disks in your computer you'd have a
    total storage size of 3TB but you wouldn't need the option unless you want to
    aggregate those disks into a RAID or LVM.

    Improve terminology and grammar on BLK_DEV_IO_TRACE.

    I also added the boilerplate "If unsure, say N" to most options.

    Precisely say "2TB and larger" for LSF.

    Indent the help text for BLK_DEV_BSG by 2 spaces in accordance with the
    standard.

    Signed-off-by: Nick Andrew
    Cc: "Randy.Dunlap"
    Signed-off-by: Andrew Morton
    Signed-off-by: Jens Axboe

    Nick Andrew
     

15 Apr, 2008

1 commit


13 Oct, 2007

1 commit


12 Oct, 2007

1 commit


27 Jul, 2007

1 commit

  • BLK_DEV_BSG was added outside of the if BLOCK check, which allows it to
    be enabled when CONFIG_BLOCK=n. This leads to many screenlengths of
    errors, starting with a parse error on the request_queue_t definition.
    Obviously this wasn't intended for CONFIG_BLOCK=n usage, so just move the
    option back in to the block.

    Caught with a randconfig on sh.

    Signed-off-by: Paul Mundt

    --

    block/Kconfig | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)
    Signed-off-by: Jens Axboe

    Paul Mundt
     

20 Jul, 2007

1 commit

  • This patch moves the bsg registration into SCSI so that bsg no longer
    has a dependency on the scsi_interface_register API.

    This can be viewed as a temporary expedient until we can get universal
    bsg binding sorted out properly. Also use the sdev bus_id as the
    generic bsg name (to avoid clashes with the queue name).

    Acked-by: FUJITA Tomonori
    Acked-by: Jens Axboe
    Signed-off-by: James Bottomley

    James Bottomley
     

17 Jul, 2007

2 commits

  • - add the detailed explanation.
    - remove 'default y'.
    - make 'EXPERIMENTAL' keyword visible to the user in menu.

    Signed-off-by: FUJITA Tomonori
    Signed-off-by: Jens Axboe

    FUJITA Tomonori
     
  • The SCSI code can be compiled modular, but BLK_DEV_BSG currently cannot,
    and depends on the SCSI layer. So make sure that it depends on the SCSI
    layer being compiled in, not just available as a module.

    Noticed by Jeff Garzik and S.Çağlar Onur.

    Cc: Jeff Garzik
    Cc: Jens Axboe
    Cc: S.Çağlar Onur
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

16 Jul, 2007

2 commits


10 Jul, 2007

1 commit


05 Dec, 2006

1 commit

  • CONFIG_LBD and CONFIG_LSF are spread into asm/types.h for no particularly
    good reason.

    Centralising the definition in linux/types.h means that arch maintainers
    don't need to bother adding it, as well as fixing the problem with
    x86-64 users being asked to make a decision that has absolutely no
    effect.

    The H8/300 porters seem particularly confused since I'm not aware of any
    microcontrollers that need to support 2TB filesystems.

    Signed-off-by: Matthew Wilcox
    Signed-off-by: Linus Torvalds

    Matthew Wilcox