Skip to content

Commits

Permalink
copyoffload-3.…
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 Apr 12, 2023

  1. t/copy_test.py: test script

    This script tests options related to copy operations.
    
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    vincentkfu committed Apr 12, 2023
    Copy the full SHA
    fbfacb4 View commit details
    Browse the repository at this point in the history
  2. copy: test script for copy

    This script collects copy performance data over a set of block sizes.
    Also included is a python script to create a CSV from JSON copy output.
    
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    vincentkfu committed Apr 12, 2023
    Copy the full SHA
    0df6b80 View commit details
    Browse the repository at this point in the history
  3. examples: configuration for copy workloads

    Add an example that writes the first half of a file with a known
    pattern, copies the first half to the second half of the file, and then
    reads the entire file verifying the expected pattern.
    
    Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    vincentkfu committed Apr 12, 2023
    Copy the full SHA
    5318947 View commit details
    Browse the repository at this point in the history
  4. engines/sync: support copy in psync ioengine

    Support copy operations via copy_file_range() in the psync ioengine.
    Also add an option to emulate copy commands with read and write
    operations.
    
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    vincentkfu committed Apr 12, 2023
    Copy the full SHA
    1fe1ec2 View commit details
    Browse the repository at this point in the history
  5. copy: add dest_offset_delta option

    Add the dest_offset_delta option that sets the copy destination to be a
    fixed offset from the beginning of the source range for each copy
    command. This is intended for use with sequential copy operations.
    
    For example, dest_offset_delta=128M will copy blocks 128M forward in the
    LBA range.
    
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    vincentkfu committed Apr 12, 2023
    Copy the full SHA
    8cffbd2 View commit details
    Browse the repository at this point in the history
  6. fio: add check for DDIR_COPY in fio_ro_check

    Make sure that we only issue copy operations when rw=[rand]copy was
    specified.
    
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    vincentkfu committed Apr 12, 2023
    Copy the full SHA
    4625209 View commit details
    Browse the repository at this point in the history
  7. copy: implement basic support for copy operations

    The source ranges for copy operation uses the existing offset generation
    algorithm.  The data buffer will contain the destination offset.
    
    For generating the destination offset added a new function. Each
    successful copy operation will copy one block of data.
    
    Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    ankit-sam authored and vincentkfu committed Apr 12, 2023
    Copy the full SHA
    1993f95 View commit details
    Browse the repository at this point in the history

Commits on Apr 10, 2023

  1. copy: update options to support dest_offset and rw=[rand]copy

    The copy operation requires a new fio option, dest_offset. This
    specifies the starting destination offset for the copy operation.
    The existing fio offset option will be the starting source offset.
    
    Also update the 'rw' option to accept 'copy' and 'randcopy'.
    
    Data to be copied from source range can be random or sequential
    according to rw=copy or randcopy option. The destination location
    for the copy operation will be sequential.
    
    This patch only adds parsing for these options but does not implement
    the actual copy workload.
    
    Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    ankit-sam authored and vincentkfu committed Apr 10, 2023
    Copy the full SHA
    96daa22 View commit details
    Browse the repository at this point in the history
  2. stats: print stats and eta for copy operation

    Update the code that prints live eta and final summary statistics to
    accommodate copy operations. In the eta per-job status map, use 'q' and
    'Q' for running copy jobs since 'C' is already taken for TD_CREATED.
    
    To maintain backward compatibility no copy data is included in the terse
    output.
    
    Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    ankit-sam authored and vincentkfu committed Apr 10, 2023
    Copy the full SHA
    679f958 View commit details
    Browse the repository at this point in the history
  3. options: update per data direction options for copy

    Update parsing for blocksize, alignment, percent random, and rate
    thresholds to support copy operations. These options allow users to
    specify different values for different data directions and thus need
    updating to support copy operations.
    
    Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    ankit-sam authored and vincentkfu committed Apr 10, 2023
    Copy the full SHA
    e30b564 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2023

  1. ddir: ddir changes for copy operation

    Add a new copy data direction and uppdate associated symbols.
    
    Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    ankit-sam authored and vincentkfu committed Mar 28, 2023
    Copy the full SHA
    9133c6c View commit details
    Browse the repository at this point in the history

Commits on Mar 14, 2023

  1. Fio 3.34

    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Mar 14, 2023
    Copy the full SHA
    ebd9b4d View commit details
    Browse the repository at this point in the history

Commits on Mar 7, 2023

  1. t/zbd: fix minimum write size to sequential write required zones

    ZBC and ZAC require that writes to sequential write required zones shall
    be aligned to physical block size. However, the t/zbd/test-zbd-support
    script uses logical block size as the minimum write size. When SMR
    drives have the physical block size larger than the logical block size,
    writes with the logical block size causes unaligned write command error.
    
    To fix it, use correct value as the minimum write size. As for zoned
    block devices, introduce a helper function min_seq_write_size(), which
    checks sysfs attributes and returns the correct size. Refer the
    attribute zone_write_granularity when it is available, which provides the
    minimum write size regardless of the device type. If the attribute is
    not available, refer the attribute physical_block_size for SMR devices,
    and the logical_block_size attribute for other devices. As for SG node
    device, refer physical block size that zbc_info command reports.
    
    Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    kawasaki authored and vincentkfu committed Mar 7, 2023
    Copy the full SHA
    557cfc5 View commit details
    Browse the repository at this point in the history
  2. t/zbd: rename logical_block_size to min_seq_write_size

    The test script t/zbd/test-zbd-support assumes that the logical block
    size is the minimum size unit to write to sequential write required
    zones, then it uses a variable named 'logical_block_size' to keep the
    minimum size. The assumption is true for ZNS devices but not for ZBC/ZAC
    devices. Rename the variable from 'logical_block_size' to
    'min_seq_write_size' to not imply the wrong assumption.
    
    Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    kawasaki authored and vincentkfu committed Mar 7, 2023
    Copy the full SHA
    7920177 View commit details
    Browse the repository at this point in the history

Commits on Mar 3, 2023

  1. Merge branch 'For_Each_Td_Private_Scope' of https://github.com/horsha…

    …ck-dpreview/fio
    
    * 'For_Each_Td_Private_Scope' of https://github.com/horshack-dpreview/fio:
      Refactor for_each_td() to catch inappropriate td ptr reuse
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Mar 3, 2023
    Copy the full SHA
    051b578 View commit details
    Browse the repository at this point in the history
  2. Merge branch 'Fix_calc_thread_status_ramp_time_check' of https://gith…

    …ub.com/horshack-dpreview/fio
    
    * 'Fix_calc_thread_status_ramp_time_check' of https://github.com/horshack-dpreview/fio:
      Fix --bandwidth-log segmentation fault when numjobs even multiple of 8
    axboe committed Mar 3, 2023
    Copy the full SHA
    edf6624 View commit details
    Browse the repository at this point in the history
  3. Refactor for_each_td() to catch inappropriate td ptr reuse

    I recently introduced a bug caused by reusing a struct thread_data *td
    after the end of a for_each_td() loop construct.
    
    Link: axboe#1521 (comment)
    
    To prevent others from making this same mistake, this commit refactors
    for_each_td() so that both the struct thread_data * and the loop index
    variable are placed inside their own scope for the loop. This will cause
    any reference to those variables outside the for_each_td() to produce an
    undeclared identifier error, provided the outer scope doesn't already
    reuse those same variable names for other code within the routine (which
    is fine because the scopes are separate).
    
    Because C/C++ doesn't let you declare two different variable types
    within the scope of a for() loop initializer, creating a scope for both
    struct thread_data * and the loop index required explicitly declaring a
    scope with a curly brace. This means for_each_td() includes an opening
    curly brace to create the scope, which means all uses of for_each_td()
    must now end with an invocation of a new macro named end_for_each()
    to emit an ending curly brace to match the scope brace created by
    for_each_td():
    
    	for_each_td(td) {
    		while (td->runstate < TD_EXITED)
    			sleep(1);
    	} end_for_each();
    
    The alternative is to end every for_each_td() construct with an inline
    curly brace, which is off-putting since the implementation of an extra
    opening curly brace is abstracted in for_each_td():
    
    	for_each_td(td) {
    		while (td->runstate < TD_EXITED)
    			sleep(1);
    	}}
    
    Most fio logic only declares "struct thread_data *td" and "int i" for use in
    for_each_td(), which means those declarations will now cause -Wunused-variable
    warnings since they're not used outside the scope of the refactored
    for_each_td(). Those declarations have been removed.
    
    Implementing this change caught a latent bug in eta.c::calc_thread_status()
    that accesses the ending value of struct thread_data *td after the end
    of for_each_td(), now manifesting as a compile error, so working as
    designed :)
    
    Signed-off-by: Adam Horshack (horshack@live.com)
    horshack-dpreview committed Mar 3, 2023
    Copy the full SHA
    da8f124 View commit details
    Browse the repository at this point in the history
  4. Fix --bandwidth-log segmentation fault when numjobs even multiple of 8

    Segmentation fault occurs when aggregate bandwidth logging is enabled
    (--bandwidth-log) and numjobs is an even multiple of 8. Fault occurs
    because logic is using the terminating value of struct thread_data *td
    from the most recent for_each_td(). This bug was caught by the
    refactoring of for_each_td().
    
    Link: axboe#1534
    
    Signed-off-by: Adam Horshack (horshack@live.com)
    horshack-dpreview committed Mar 3, 2023
    Copy the full SHA
    77a2306 View commit details
    Browse the repository at this point in the history
  5. Merge branch 'fiologparser-fix' of https://github.com/patrakov/fio

    * 'fiologparser-fix' of https://github.com/patrakov/fio:
      fix fiologparser.py to work with new logging format
    vincentkfu committed Mar 3, 2023
    Copy the full SHA
    5f81856 View commit details
    Browse the repository at this point in the history

Commits on Feb 28, 2023

  1. examples: add fiograph diagram for uring-cmd-fdp.fio

    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    vincentkfu committed Feb 28, 2023
    Copy the full SHA
    5a37211 View commit details
    Browse the repository at this point in the history
  2. fdp: change the order of includes to fix Windows build error

    On Windows fio.h includes some definitions needed by file.h.
    fio.h actually includes file.h already but we can retain the file.h
    include in fdp.c since it refers to some declarations that were added
    there.
    
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    vincentkfu committed Feb 28, 2023
    Copy the full SHA
    7d352b1 View commit details
    Browse the repository at this point in the history
  3. Merge branch 'doc-Clarify_Runtime_Param' of https://github.com/horsha…

    …ck-dpreview/fio
    
    * 'doc-Clarify_Runtime_Param' of https://github.com/horshack-dpreview/fio:
      Clarify documentation for runtime parameter
    axboe committed Feb 28, 2023
    Copy the full SHA
    9943adf View commit details
    Browse the repository at this point in the history
  4. Clarify documentation for runtime parameter

    I realize this is highly subjective but I think the description of the
    runtime parameter could be made a bit more precise. I misinterpreted its
    meaning after reading the doc and only learned of my mistake by trial and
    error using fio.  Either I'm just slow or the description could use
    just a little more precision :)
    
    Signed-off-by: Adam Horshack (horshack@live.com)
    horshack-dpreview committed Feb 28, 2023
    Copy the full SHA
    c792786 View commit details
    Browse the repository at this point in the history
  5. Revert "ioengines.c:346: td_io_queue: Assertion `res == 0' failed"

    This reverts commit d5a4744.
    
    The change to rate-submit.c is clearly bogus, as it's referencing
    'td' outside of the actual 'td' loop. It's not valid at that
    point.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Feb 28, 2023
    Copy the full SHA
    14520f2 View commit details
    Browse the repository at this point in the history
  6. fdp: cleanup init

    I don't believe we can have a NULL ->io_ops here, but let's just
    add an error check and make the static checkers happy as they don't
    like the non-NULL check and then a later deref in the other branch.
    
    Add missing braces while at it.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Feb 28, 2023
    Copy the full SHA
    5a85d6d View commit details
    Browse the repository at this point in the history
  7. fio: add fdp support for io_uring_cmd nvme engine

    Add support for NVMe TP4146 Flexible Data Placemen, allowing placement
    identifiers in write commands. The user can enabled this with the new
    "fdp=1" parameter for fio's io_uring_cmd ioengine. By default, the fio
    jobs will cycle through all the namespace's available placement
    identifiers for write commands. The user can limit which placement
    identifiers can be used with additional parameter, "fdp_pli=<list,>",
    which can be used to separate write intensive jobs from less intensive
    ones.
    
    Setting up your namespace for FDP is outside the scope of 'fio', so this
    assumes the namespace is already properly configured for the mode.
    
    Link: https://lore.kernel.org/fio/CAKi7+wfX-eaUD5pky5cJ824uCzsQ4sPYMZdp3AuCUZOA1TQrYw@mail.gmail.com/T/#m056018eb07229bed00d4e589f9760b2a2aa009fc
    Based-on-a-patch-by: Ankit Kumar <ankit.kumar@samsung.com>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    [Vincent: fold in sfree fix from Ankit]
    Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
    keithbusch authored and vincentkfu committed Feb 28, 2023
    Copy the full SHA
    a7e8aae View commit details
    Browse the repository at this point in the history
  8. Merge branch 'Fix_Assert_TdIoQueue_Serialize_Overlap_Offload' of http…

    …s://github.com/horshack-dpreview/fio
    
    * 'Fix_Assert_TdIoQueue_Serialize_Overlap_Offload' of https://github.com/horshack-dpreview/fio:
      ioengines.c:346: td_io_queue: Assertion `res == 0' failed
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Feb 28, 2023
    Copy the full SHA
    d08dbc0 View commit details
    Browse the repository at this point in the history
  9. Merge branch 'Fix_Bad_Hdr_Rand_Seed_For_Requeued_IO' of https://githu…

    …b.com/horshack-dpreview/fio
    
    * 'Fix_Bad_Hdr_Rand_Seed_For_Requeued_IO' of https://github.com/horshack-dpreview/fio:
      Fix "verify bad_hdr rand_seed" for requeued I/Os
    axboe committed Feb 28, 2023
    Copy the full SHA
    e125d0f View commit details
    Browse the repository at this point in the history
  10. Merge branch 'master' of https://github.com/Cuelive/fio

    * 'master' of https://github.com/Cuelive/fio:
      blktrace: fix compilation error on the uos system
    axboe committed Feb 28, 2023
    Copy the full SHA
    8d94106 View commit details
    Browse the repository at this point in the history
  11. blktrace: fix compilation error on the uos system

    When compiling on uos, it fails with an undefined reference to 'major'. Fix
    this by including the correct header for it.
    
    liuyafei <liuyafei@uniontech.com>
    Cuelive authored and qinzhiben11 committed Feb 28, 2023
    Copy the full SHA
    169b7ce View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2023

  1. Fix "verify bad_hdr rand_seed" for requeued I/Os

    On configurations that can cause I/Os to be internally requeued from
    FIO_Q_BUSY such as '--iodepth_batch_complete_max', and the workload has
    verify enabled, the subsequent verification of the data fails with a bad
    verify rand_seed because the pattern for the I/O is generated twice for
    the same I/O, causing the seed to become out of sync when the verify is
    later performed. The seed is generate twice because do_io() handles the
    I/O twice, first when it originates the I/O and again when it later gets
    the same I/O back from get_io_u() after it's is pulled from the requeue
    list, which is where the first submission landed due to the workload
    reaching '--iodepth_batch_complete_max'.
    
    The fix is for do_io() to track when it has generated the verify pattern
    for an I/O via a new io_u flag 'IO_U_F_PATTERN_DONE', avoiding a second
    call to populate_verify_io_u() when that flag is detected.
    
    Link: axboe#1526
    
    Signed-off-by: Adam Horshack (horshack@live.com)
    horshack-dpreview committed Feb 27, 2023
    Copy the full SHA
    ad21b61 View commit details
    Browse the repository at this point in the history

Commits on Feb 24, 2023

  1. Merge branch 'master' of https://github.com/bvanassche/fio

    * 'master' of https://github.com/bvanassche/fio:
      zbd: Make an error message more detailed
      zbd: Report the zone capacity
      io_u: Add a debug message in fill_io_u()
    vincentkfu committed Feb 24, 2023
    Copy the full SHA
    b5904c0 View commit details
    Browse the repository at this point in the history

Commits on Feb 22, 2023

  1. zbd: Make an error message more detailed

    If zone data is invalid, report in detail why it is invalid.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    bvanassche committed Feb 22, 2023
    Copy the full SHA
    adfa7b7 View commit details
    Browse the repository at this point in the history
  2. zbd: Report the zone capacity

    The zone capacity is important information. Hence report the zone
    capacity if ZBD debugging is enabled.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    bvanassche committed Feb 22, 2023
    Copy the full SHA
    067c18e View commit details
    Browse the repository at this point in the history
  3. io_u: Add a debug message in fill_io_u()

    A debug message is logged before each 'return io_u_eof' statement in
    fill_io_u() except one. Hence add a debug message in front of that one
    return statement.
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    bvanassche committed Feb 22, 2023
    Copy the full SHA
    629eda5 View commit details
    Browse the repository at this point in the history
Older