Re: [PATCH 16/40] fstests: use udevadm wait in preference to settle

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



On Fri, Nov 29, 2024 at 09:10:09AM -0800, Darrick J. Wong wrote:
> On Wed, Nov 27, 2024 at 03:51:46PM +1100, Dave Chinner wrote:
> > From: Dave Chinner <dchinner@xxxxxxxxxx>
> > 
> > When running lots of tests in parallel, there are lots of
> > filesystems and block devices changing state. This generates a lot
> > of udev events when means the udev event queue is rarely empty.
> > Unfortunately, an empty event queue is what udev settling waits
> > upon. Hence calling UDEV_SETTLE_PROG can mean waiting for a lot of
> > time for other tests to stop generating udev events.
> > 
> > For the majority of cases, what we care about is that udev has
> > performed device node addition or removal, not that there are no
> > udev events pending. Recent(-ish) systemd releases support 'udevadm
> > wait' to wait for a specific file to be created or unlinked rather
> > than waiting for the event that does that work to be completed.
> > 
> > Hence we don't have to wait for the udev event queue to empty,
> > just for the udev event that does the device node manipulation to
> > complete.
> > 
> > Introduce detection of 'udevadm wait' support and a _udev_wait()
> > wrapper function to use it if it is available. If it isn't, the use
> > the existing UDEV_SETTLE_PROG behaviour.
> > 
> > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> > ---
> >  common/config     | 35 +++++++++++++++++++++++++----------
> >  common/rc         | 25 ++++++++++++++++---------
> >  tests/btrfs/291   |  5 +++--
> >  tests/generic/081 |  6 +++---
> >  tests/generic/108 |  7 +++----
> >  tests/generic/459 |  6 +++---
> >  6 files changed, 53 insertions(+), 31 deletions(-)
> > 
> > diff --git a/common/config b/common/config
> > index fcff0660b..41b8f29d1 100644
> > --- a/common/config
> > +++ b/common/config
> > @@ -165,7 +165,7 @@ export XFS_MDRESTORE_PROG="$(type -P xfs_mdrestore)"
> >  export XFS_ADMIN_PROG="$(type -P xfs_admin)"
> >  export XFS_GROWFS_PROG=$(type -P xfs_growfs)
> >  export XFS_SPACEMAN_PROG="$(type -P xfs_spaceman)"
> > -export XFS_SCRUB_PROG="$(type -P xfs_scrub)"
> > +#export XFS_SCRUB_PROG="$(type -P xfs_scrub)"
> 
> If you have problems with online fsck, please report them to the mailing
> list.

Thank you for finding this, Darrick, but there is absolutely no need
to treat me like a n00b who doesn't know how kernel development
works.

I simply forgot I did this when debugging the hundreds of
busy-after-unmount failures that were occurring whilst trying to get
this patchset to work.

I turned off scrub while I debugged these issues to reduce the
amount of noise and variations in the end-of-test failures, and I
simply never noticed that I had left this hunk in the patch.

So, nothing wrong with scrub, just a simple case of missing one line
of debug changes in a patchset that touches 400+ files....

Removed.

-Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux