#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2007 Silicon Graphics, Inc. All Rights Reserved. # # FSQA Test No. 171 # # Check the filestreams allocator is doing its job. # Multi-file data streams should always write into seperate AGs. # . ./common/preamble _begin_fstest rw filestreams # Import common functions. . ./common/filter . ./common/filestreams # real QA test starts here _supported_fs xfs _require_scratch _check_filestreams_support || _notrun "filestreams not available" # test large numbers of files, single I/O per file, 120s timeout # Get close to filesystem full. # 128 = ENOSPC # 120 = 93.75% full, gets repeatable failures # 112 = 87.5% full, should reliably succeed but doesn't *FIXME* # 100 = 78.1% full, should reliably succeed _set_stream_timeout_centisecs 12000 # This test tries to get close to the exact point at which the filestreams # allocator will start to allocate space from some AG into more than one # stream. Newer feature sets (e.g. reflink) have increased the size of the log # for small filesystems, so we make sure there's one more AG than filestreams # to encourage the allocator to skip whichever AG owns the log. # # This test exercises 64x 16MB AGs, 8 filestreams, 100 files per stream, and # 1MB per file. _test_streams 65 16 8 100 1 1 0 _test_streams 65 16 8 100 1 1 1 _test_streams 65 16 8 100 1 0 0 _test_streams 65 16 8 100 1 0 1 status=0 exit