Skip to content

Commits

Permalink
Nitesh-Shetty/…
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Feb 7, 2022

  1. dm kcopyd: use copy offload support

    Introduce copy_jobs to use copy-offload, if supported by underlying devices
    otherwise fall back to existing method.
    
    run_copy_jobs() calls block layer copy offload API, if both source and
    destination request queue are same and support copy offload.
    On successful completion, destination regions copied count is made zero,
    failed regions are processed via existing method.
    
    Signed-off-by: SelvaKumar S <selvakuma.s1@samsung.com>
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    SelvaKumar S authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    a33e77c View commit details
    Browse the repository at this point in the history
  2. dm: Enable copy offload for dm-linear target

    Setting copy_supported flag to enable offload.
    
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    nj-shetty authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    1977788 View commit details
    Browse the repository at this point in the history
  3. dm: Add support for copy offload.

    Before enabling copy for dm target, check if underlaying devices and
    dm target support copy. Avoid split happening inside dm target.
    Fail early if the request needs split, currently spliting copy
    request is not supported
    
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    nj-shetty authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    81aadb6 View commit details
    Browse the repository at this point in the history
  4. nvmet: add copy command support for bdev and file ns

    Add support for handling target command on target.
    For bdev-ns we call into blkdev_issue_copy, which the block layer
    completes by a offloaded copy request to backend bdev or by emulating the
    request.
    
    For file-ns we call vfs_copy_file_range to service our request.
    
    Currently target always shows copy capability by setting
    NVME_CTRL_ONCS_COPY in controller ONCS.
    
    Signed-off-by: Arnav Dawn <arnav.dawn@samsung.com>
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    Arnav Dawn authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    6bb6ea6 View commit details
    Browse the repository at this point in the history
  5. nvme: add copy support

    Add support for Copy command
    For device supporting native copy, nvme driver receives read and
    write request with BLK_COPY op flags.
    For read request the nvme driver populates the payload with source
    information.
    For write request the driver converts it to nvme copy command using the
    source information in the payload and submits to the device.
    current design only supports single source range.
    Ths design is courtsey Mikulas Patocka's token based copy
    
    trace event support for nvme_copy_cmd.
    Set the device copy limits to queue limits. By default copy_offload
    is disabled.
    
    Signed-off-by: SelvaKumar S <selvakuma.s1@samsung.com>
    Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    Signed-off-by: Javier González <javier.gonz@samsung.com>
    SelvaKumar S authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    22cbc1d View commit details
    Browse the repository at this point in the history
  6. block: add emulation for copy

    For the devices which does not support copy, copy emulation is
    added. Copy-emulation is implemented by reading from source ranges
    into memory and writing to the corresponding destination synchronously.
    
    TODO: Optimise emulation.
    
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    nj-shetty authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    a7bb308 View commit details
    Browse the repository at this point in the history
  7. block: Introduce a new ioctl for copy

    Add new BLKCOPY ioctl that offloads copying of one or more sources ranges
    to one or more destination in a device. COPY ioctl accepts a 'copy_range'
    structure that contains no of range, a reserved field , followed by an
    array of ranges. Each source range is represented by 'range_entry' that
    contains source start offset, destination start offset and length of
    source ranges (in bytes)
    
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    Signed-off-by: Arnav Dawn <arnav.dawn@samsung.com>
    nj-shetty authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    ee038e3 View commit details
    Browse the repository at this point in the history
  8. block: Add copy offload support infrastructure

    Introduce blkdev_issue_copy which supports source and destination bdevs,
    and a array of (source, destination and copy length) tuples.
    Introduce REQ_COP copy offload operation flag. Create a read-write
    bio pair with a token as payload and submitted to the device in order.
    the read request populates token with source specific information which
    is then passed with write request.
    Ths design is courtsey Mikulas Patocka<mpatocka@>'s token based copy
    
    Larger copy operation may be divided if necessary by looking at device
    limits.
    
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    Signed-off-by: SelvaKumar S <selvakuma.s1@samsung.com>
    Signed-off-by: Arnav Dawn <arnav.dawn@samsung.com>
    nj-shetty authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    12a9801 View commit details
    Browse the repository at this point in the history
  9. block: Introduce queue limits for copy-offload support

    Add device limits as sysfs entries,
            - copy_offload (READ_WRITE)
            - max_copy_sectors (READ_ONLY)
            - max_copy_ranges_sectors (READ_ONLY)
            - max_copy_nr_ranges (READ_ONLY)
    
    copy_offload(= 0), is disabled by default. This needs to be enabled if
    copy-offload needs to be used.
    max_copy_sectors = 0, indicates the device doesn't support native copy.
    
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    Signed-off-by: SelvaKumar S <selvakuma.s1@samsung.com>
    Signed-off-by: Kanchan Joshi <joshi.k@samsung.com>
    nj-shetty authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    992a1fe View commit details
    Browse the repository at this point in the history
  10. block: make bio_map_kern() non static

    Make bio_map_kern() non static
    
    Signed-off-by: SelvaKumar S <selvakuma.s1@samsung.com>
    Signed-off-by: Nitesh Shetty <nj.shetty@samsung.com>
    SelvaKumar S authored and intel-lab-lkp committed Feb 7, 2022
    Copy the full SHA
    5a0345e View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2022

  1. Merge branch 'for-5.18/io_uring' into for-next

    * for-5.18/io_uring: (115 commits)
      io_uring: remove ring quiesce for io_uring_register
      io_uring: avoid ring quiesce while registering restrictions and enabling rings
      io_uring: avoid ring quiesce while registering async eventfd
      io_uring: avoid ring quiesce while registering/unregistering eventfd
      io_uring: remove trace for eventfd
      gcc-plugins/stackleak: Use noinstr in favor of notrace
      ax25: fix reference count leaks of ax25_dev
      net: stmmac: ensure PTP time register reads are consistent
      printk: Fix incorrect __user type in proc_dointvec_minmax_sysadmin()
      Revert "module, async: async_synchronize_full() on module init iff async is used"
      net: ipa: request IPA register values be retained
      dt-bindings: net: qcom,ipa: add optional qcom,qmp property
      cgroup/cpuset: Fix "suspicious RCU usage" lockdep warning
      tools/resolve_btfids: Do not print any commands when building silently
      Revert "mm/gup: small refactoring: simplify try_grab_page()"
      bpf: Use VM_MAP instead of VM_ALLOC for ringbuf
      net, neigh: Do not trigger immediate probes on NUD_FAILED from neigh_managed_work
      tcp: add missing tcp_skb_can_collapse() test in tcp_shift_skb_data()
      net: sparx5: do not refer to skb after passing it on
      selinux: fix double free of cond_list on error paths
      ...
    axboe committed Feb 4, 2022
    Copy the full SHA
    55afd12 View commit details
    Browse the repository at this point in the history
  2. io_uring: remove ring quiesce for io_uring_register

    None of the opcodes in io_uring_register use ring quiesce anymore. Hence
    io_register_op_must_quiesce always returns false and io_ctx_quiesce is
    never called.
    
    Signed-off-by: Usama Arif <usama.arif@bytedance.com>
    Link: https://lore.kernel.org/r/20220204145117.1186568-6-usama.arif@bytedance.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    uarif1 authored and axboe committed Feb 4, 2022
    Copy the full SHA
    971d72e View commit details
    Browse the repository at this point in the history
  3. io_uring: avoid ring quiesce while registering restrictions and enabl…

    …ing rings
    
    IORING_SETUP_R_DISABLED prevents submitting requests and so there will be
    no requests until IORING_REGISTER_ENABLE_RINGS is called. And
    IORING_REGISTER_RESTRICTIONS works only before
    IORING_REGISTER_ENABLE_RINGS is called. Hence ring quiesce is not needed
    for these opcodes.
    
    Signed-off-by: Usama Arif <usama.arif@bytedance.com>
    Link: https://lore.kernel.org/r/20220204145117.1186568-5-usama.arif@bytedance.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    uarif1 authored and axboe committed Feb 4, 2022
    Copy the full SHA
    1769f14 View commit details
    Browse the repository at this point in the history
  4. io_uring: avoid ring quiesce while registering async eventfd

    This is done using the RCU data structure (io_ev_fd). eventfd_async is
    moved from io_ring_ctx to io_ev_fd which is RCU protected hence avoiding
    ring quiesce which is much more expensive than an RCU lock. The place
    where eventfd_async is read is already under rcu_read_lock so there is no
    extra RCU read-side critical section needed.
    
    Signed-off-by: Usama Arif <usama.arif@bytedance.com>
    Link: https://lore.kernel.org/r/20220204145117.1186568-4-usama.arif@bytedance.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    uarif1 authored and axboe committed Feb 4, 2022
    Copy the full SHA
    13bcfd4 View commit details
    Browse the repository at this point in the history
  5. io_uring: avoid ring quiesce while registering/unregistering eventfd

    This is done by creating a new RCU data structure (io_ev_fd) as part of
    io_ring_ctx that holds the eventfd_ctx.
    
    The function io_eventfd_signal is executed under rcu_read_lock with a
    single rcu_dereference to io_ev_fd so that if another thread unregisters
    the eventfd while io_eventfd_signal is still being executed, the
    eventfd_signal for which io_eventfd_signal was called completes
    successfully.
    
    The process of registering/unregistering eventfd is already done under
    uring_lock so multiple threads won't enter a race condition while
    registering/unregistering eventfd.
    
    With the above approach ring quiesce can be avoided which is much more
    expensive then using RCU lock. On the system tested, io_uring_register
    with IORING_REGISTER_EVENTFD takes less than 1ms with RCU lock, compared
    to 15ms before with ring quiesce.
    
    Signed-off-by: Usama Arif <usama.arif@bytedance.com>
    Link: https://lore.kernel.org/r/20220204145117.1186568-3-usama.arif@bytedance.com
    [axboe: long line fixups]
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    uarif1 authored and axboe committed Feb 4, 2022
    Copy the full SHA
    b77e315 View commit details
    Browse the repository at this point in the history
  6. io_uring: remove trace for eventfd

    The information on whether eventfd is registered is not very useful and
    would result in the tracepoint being enclosed in an rcu_readlock in a
    later patch that tries to avoid ring quiesce for registering eventfd.
    
    Suggested-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Usama Arif <usama.arif@bytedance.com>
    Link: https://lore.kernel.org/r/20220204145117.1186568-2-usama.arif@bytedance.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    uarif1 authored and axboe committed Feb 4, 2022
    Copy the full SHA
    054f809 View commit details
    Browse the repository at this point in the history
  7. Merge branch 'for-5.18/block' into for-next

    * for-5.18/block:
      block: pass a block_device to bio_clone_fast
      block: initialize the target bio in __bio_clone_fast
      dm: use bio_clone_fast in alloc_io/alloc_tio
      block: clone crypto and integrity data in __bio_clone_fast
      dm-cache: remove __remap_to_origin_clear_discard
      dm: simplify the single bio fast path in __send_duplicate_bios
      dm: retun the clone bio from alloc_tio
      dm: pass the bio instead of tio to __map_bio
      dm: move cloning the bio into alloc_tio
      dm: fold __send_duplicate_bios into __clone_and_map_simple_bio
      dm: fold clone_bio into __clone_and_map_data_bio
      dm: add a clone_to_tio helper
      drbd: set ->bi_bdev in drbd_req_new
    axboe committed Feb 4, 2022
    Copy the full SHA
    e1e5798 View commit details
    Browse the repository at this point in the history
  8. block: pass a block_device to bio_clone_fast

    Pass a block_device to bio_clone_fast and __bio_clone_fast and give
    the functions more suitable names.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-14-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    abfc426 View commit details
    Browse the repository at this point in the history
  9. block: initialize the target bio in __bio_clone_fast

    All callers of __bio_clone_fast initialize the bio first.  Move that
    initialization into __bio_clone_fast instead.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-13-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    a0e8de7 View commit details
    Browse the repository at this point in the history
  10. dm: use bio_clone_fast in alloc_io/alloc_tio

    Replace open coded bio_clone_fast implementations with the actual helper.
    Note that the bio allocated as part of the dm_io structure in alloc_io
    will only actually be used later in alloc_tio, making this earlier
    cloning of the information safe.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-12-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    92986f6 View commit details
    Browse the repository at this point in the history
  11. block: clone crypto and integrity data in __bio_clone_fast

    __bio_clone_fast should also clone integrity and crypto data, as a clone
    without those is incomplete.  Right now the only caller that can actually
    support crypto and integrity data (dm) does it manually for the one
    callchain that supports these, but we better do it properly in the core.
    
    Note that all callers except for the above mentioned one also don't need
    to handle failure at all, given that the integrity and crypto clones are
    based on mempool allocations that won't fail for sleeping allocations.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-11-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    56b4b5a View commit details
    Browse the repository at this point in the history
  12. dm-cache: remove __remap_to_origin_clear_discard

    Fold __remap_to_origin_clear_discard into the two callers to prepare
    for bio cloning refactoring.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-10-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    3c4b455 View commit details
    Browse the repository at this point in the history
  13. dm: simplify the single bio fast path in __send_duplicate_bios

    Most targets just need a single flush bio.  Open code that case in
    __send_duplicate_bios without the need to add the bio to a list.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-9-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    891fced View commit details
    Browse the repository at this point in the history
  14. dm: retun the clone bio from alloc_tio

    Return the clone bio embedded into the tio as that is what the callers
    actually want.  Similar for the free side.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-8-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    1d1068c View commit details
    Browse the repository at this point in the history
  15. dm: pass the bio instead of tio to __map_bio

    This simplifies the callers a bit.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-7-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    1561b39 View commit details
    Browse the repository at this point in the history
  16. dm: move cloning the bio into alloc_tio

    Move the call to __bio_clone_fast and the assignment of ->len_ptr from
    the callers into alloc_tio to prepare for changes to the bio clone API.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-6-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    dc8e202 View commit details
    Browse the repository at this point in the history
  17. dm: fold __send_duplicate_bios into __clone_and_map_simple_bio

    Fold __send_duplicate_bios into its only caller to prepare for
    refactoring.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-5-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    8eabf5d View commit details
    Browse the repository at this point in the history
  18. dm: fold clone_bio into __clone_and_map_data_bio

    Fold clone_bio into its only caller to prepare for refactoring.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-4-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    b1bee79 View commit details
    Browse the repository at this point in the history
  19. dm: add a clone_to_tio helper

    Add a helper to stop open coding the container_of operations to get
    from the clone bio to the tio structure.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-3-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    6c23f0b View commit details
    Browse the repository at this point in the history
  20. drbd: set ->bi_bdev in drbd_req_new

    Make sure the newly allocated bio has the correct bi_bdev set from the
    start.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Mike Snitzer <snitzer@redhat.com>
    Link: https://lore.kernel.org/r/20220202160109.108149-2-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    c347a78 View commit details
    Browse the repository at this point in the history
  21. Merge branch 'for-5.18/block' into for-next

    * for-5.18/block:
      block: call bio_associate_blkg from bio_reset
    axboe committed Feb 4, 2022
    Copy the full SHA
    f9f95d6 View commit details
    Browse the repository at this point in the history
  22. block: call bio_associate_blkg from bio_reset

    Call bio_associate_blkg just like bio_set_dev did in the callers before
    the conversion to set the block device in bio_reset.
    
    Fixes: a7c50c9 ("block: pass a block_device and opf to bio_reset")
    Reported-by: syzbot+2b3f18414c37b42dcc94@syzkaller.appspotmail.com
    Tested-by: syzbot+2b3f18414c37b42dcc94@syzkaller.appspotmail.com
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Tested-by: Chaitanya Kulkarni <kch@nvidia.com>
    Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
    Link: https://lore.kernel.org/r/20220204071934.168469-1-hch@lst.de
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Christoph Hellwig authored and axboe committed Feb 4, 2022
    Copy the full SHA
    78e3437 View commit details
    Browse the repository at this point in the history
  23. Merge branch 'for-5.18/block' into for-next

    * for-5.18/block:
      scsi: use BLK_STS_OFFLINE for not fully online devices
      block: return -ENODEV for BLK_STS_OFFLINE
      block: introduce BLK_STS_OFFLINE
    axboe committed Feb 4, 2022
    Copy the full SHA
    93c54e7 View commit details
    Browse the repository at this point in the history
  24. scsi: use BLK_STS_OFFLINE for not fully online devices

    The new error message for such case looks like
    
    [  172.809565] device offline error, dev sda, sector 3138208 ...
    
    which will not be confused with regular I/O error (BLK_STS_IOERR).
    
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Signed-off-by: Song Liu <song@kernel.org>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Link: https://lore.kernel.org/r/20220203192827.1370270-4-song@kernel.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Song Liu authored and axboe committed Feb 4, 2022
    Copy the full SHA
    9574d43 View commit details
    Browse the repository at this point in the history
  25. block: return -ENODEV for BLK_STS_OFFLINE

    Change the user visible return value for BLK_STS_OFFLINE to -ENODEV, which
    is more descriptive than existing -EIO.
    
    Signed-off-by: Song Liu <song@kernel.org>
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Link: https://lore.kernel.org/r/20220203192827.1370270-3-song@kernel.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Song Liu authored and axboe committed Feb 4, 2022
    Copy the full SHA
    7d32c02 View commit details
    Browse the repository at this point in the history
Older