Re: [PATCH] tests/throtl: add a new test 006

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 24, 2025 at 8:26 PM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote:
>
> Hi,
>
> 在 2025/02/24 17:59, Ming Lei 写道:
> > Add test for covering prioritized meta IO when throttling, regression
> > test for commit 29390bb5661d ("blk-throttle: support prioritized processing
> > of metadata").
> >
> > Cc: Yu Kuai <yukuai1@xxxxxxxxxxxxxxx>
> > Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxx>
> > ---
> >   tests/throtl/006     | 58 ++++++++++++++++++++++++++++++++++++++++++++
> >   tests/throtl/006.out |  4 +++
> >   tests/throtl/rc      | 19 +++++++++++++++
> >   3 files changed, 81 insertions(+)
> >   create mode 100755 tests/throtl/006
> >   create mode 100644 tests/throtl/006.out
> >
> > diff --git a/tests/throtl/006 b/tests/throtl/006
> > new file mode 100755
> > index 0000000..4baadaf
> > --- /dev/null
> > +++ b/tests/throtl/006
> > @@ -0,0 +1,58 @@
> > +#!/bin/bash
> > +# SPDX-License-Identifier: GPL-3.0+
> > +# Copyright (C) 2025 Ming Lei
> > +#
> > +# Test prioritized meta IO when IO throttling, regression test for
> > +# commit 29390bb5661d ("blk-throttle: support prioritized processing of metadata")
> > +
> > +. tests/throtl/rc
> > +
> > +DESCRIPTION="test if meta IO has higher priority than data IO"
> > +QUICK=1
> > +
> > +requires() {
> > +     _have_program mkfs.ext4
> > +}
> > +
> > +test_meta_io() {
> > +     local path="$1"
> > +     local start_time
> > +     local end_time
> > +     local elapsed
> > +
> > +     start_time=$(date +%s.%N)
> > +     mkdir "${path}"/xxx
> > +     touch "${path}"/xxx/1
> > +     sync "${path}"/xxx
> > +
> > +     end_time=$(date +%s.%N)
> > +     elapsed=$(echo "$end_time - $start_time" | bc)
> > +     printf "%.0f\n" "$elapsed"
> > +}
> > +
> > +test() {
> > +     echo "Running ${TEST_NAME}"
> > +
> > +     if ! _set_up_throtl memory_backed=1; then
> > +             return 1;
> > +     fi
> > +
> > +     mkdir -p "${TMPDIR}/mnt"
> > +     mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 -F "/dev/${THROTL_DEV}" >> "$FULL" 2>&1
> > +     mount "/dev/${THROTL_DEV}" "${TMPDIR}/mnt" >> "$FULL" 2>&1
> > +
> > +     _throtl_set_limits wbps=$((1024 * 1024))
> > +     {
> > +             echo "$BASHPID" > "$CGROUP2_DIR/$THROTL_DIR/cgroup.procs"
> > +             _throtl_issue_fs_io  "${TMPDIR}/mnt/test.img" write 64K 64 &
> > +             sleep 2
> > +             test_meta_io "${TMPDIR}/mnt"
>
> Do you run this test without the kernel patch? If I remembered
> correctly, ext4 issue the meta IO from jbd2 by default, which is from
> root cgroup, and root cgroup can only throttled from cgroup v1.

It passes on v6.14-rc1, does META/SWAP IO only route from cgroup v1?

  static inline bool bio_issue_as_root_blkg(struct bio *bio)
  {
          return (bio->bi_opf & (REQ_META | REQ_SWAP)) != 0;
  }

Thanks,
Ming






[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux