003 File Manager
Current Path:
/usr/src/sys/contrib/openzfs/tests/zfs-tests/tests/functional/trim
usr
/
src
/
sys
/
contrib
/
openzfs
/
tests
/
zfs-tests
/
tests
/
functional
/
trim
/
📁
..
📄
Makefile.am
(283 B)
📄
autotrim_config.ksh
(3.43 KB)
📄
autotrim_integrity.ksh
(2.48 KB)
📄
autotrim_trim_integrity.ksh
(2.67 KB)
📄
cleanup.ksh
(1.13 KB)
📄
setup.ksh
(1.13 KB)
📄
trim.cfg
(1.13 KB)
📄
trim.kshlib
(2.73 KB)
📄
trim_config.ksh
(3.39 KB)
📄
trim_integrity.ksh
(2.44 KB)
📄
trim_l2arc.ksh
(3.05 KB)
Editing: trim.kshlib
#!/bin/ksh -p # # This file and its contents are supplied under the terms of the # Common Development and Distribution License ("CDDL"), version 1.0. # You may only use this file in accordance with the terms of version # 1.0 of the CDDL. # # A full copy of the text of the CDDL should have accompanied this # source. A copy of the CDDL is also available via the Internet at # http://www.illumos.org/license/CDDL. # # # Copyright (c) 2019 by Tim Chase. All rights reserved. # Copyright (c) 2019 Lawrence Livermore National Security, LLC. # . $STF_SUITE/tests/functional/cli_root/zpool_trim/zpool_trim.kshlib # # Get the actual size on disk for the provided file. # function get_size_mb { typeset rval=$(du --block-size 1048576 -s "$1" | awk '{print $1}') echo -n "$rval" } # # Get the number of trim IOs issued for the pool (ind or agg). # function get_trim_io { typeset pool="${1-:$TESTPOOL}" typeset type="${2-:ind}" typeset vdev="${3}" typeset rval # Sum the ind or agg columns of the trim request size histogram. case "$type" in "ind") rval=$(zpool iostat -pr $pool $vdev | awk \ '$1 ~ /[0-9].*/ { sum += $12 } END { print sum }') echo -n "$rval" ;; "agg") rval=$(zpool iostat -pr $pool $vdev | awk \ '$1 ~ /[0-9].*/ { sum += $13 } END { print sum }') echo -n "$rval" ;; *) log_fail "Type must be 'ind' or 'agg'" ;; esac } # # Verify that trim IOs were send to devices in the pool. # function verify_trim_io { typeset pool="${1:-$TESTPOOL}" typeset type="${2:-ind}" typeset min_trim_ios=${3:-100} typeset vdev="${4}" typeset ios ios=$(get_trim_io $pool $type $vdev) if [[ $ios -ge $min_trim_ios ]]; then log_note "Issued $ios $type trim IOs for pool $pool" else log_fail "Too few trim IOs issued $ios/$min_trim_ios" fi } # # Run N txgs which should be enough to trim the entire pool. # function wait_trim_io # pool type txgs { typeset pool="${1-:$TESTPOOL}" typeset type="${2-:ind}" typeset txgs=${3:-10} typeset timeout=120 typeset stop_time=$(( $(date +%s) + $timeout )) typeset -i i=0 while [[ $i -lt $txgs ]]; do if [ "$(date +%s)" -ge $stop_time ]; then log_fail "Exceeded trim time limit of ${timeout}s" return fi zpool sync -f ((i = i + 1)) done typeset ios=$(get_trim_io $pool $type) log_note "Waited for $txgs txgs, $ios $type TRIM IOs" } # # Verify that file vdevs against a target value. # function verify_vdevs # op size vdevs { typeset tgt_op=$1 typeset tgt_size=$2 shift 2 typeset vdevs=$@ for vdev in $vdevs; do typeset size=$(get_size_mb $vdev) if test $size $tgt_op $tgt_size; then log_note "Success $vdev is $size MB which is $tgt_op" \ "than $tgt_size MB" else log_fail "Failure $vdev is $size MB which is not" \ "$tgt_op than $tgt_size MB" fi done }
Upload File
Create Folder