On Mon, May 09, 2022 at 06:28:17PM -0400, Theodore Ts'o wrote:
Oh, one other problem with DEPT --- it's SLOW --- the overhead is enormous. Using kvm-xfstests[1] running "kvm-xfstests smoke", here are some sample times:
Yes, right. DEPT has never been optimized. It rather turns on CONFIG_LOCKDEP and even CONFIG_PROVE_LOCKING when CONFIG_DEPT gets on because of porting issue. I have no choice but to rely on those to develop DEPT out of tree. Of course, that's what I don't like.
Plus, for now, I'm focusing on removing false positives. Once it's considered settled down, I will work on performance optimizaition. But it should still keep relying on Lockdep CONFIGs and adding additional overhead on it until DEPT can be developed in the tree.
LOCKDEP DEPT
Time to first test 49 seconds 602 seconds ext4/001 2 s 22 s ext4/003 2 s 8 s ext4/005 0 s 7 s ext4/020 1 s 8 s ext4/021 11 s 17 s ext4/023 0 s 83 s generic/001 4 s 76 s generic/002 0 s 11 s generic/003 10 s 19 s
There are some large variations; in some cases, some xfstests take 10x as much time or more to run. In fact, when I first started the kvm-xfstests run with DEPT, I thought something had hung and that tests would never start. (In fact, with gce-xfstests the default watchdog "something has gone terribly wrong with the kexec" had fired, and I didn't get any test results using gce-xfstests at all. If DEPT goes in without any optimizations, I'm going to have to adjust the watchdogs timers for gce-xfstests.)
Thank you for informing it. I will go for the optimization as well.
The bottom line is that at the moment, between the false positives, and the significant overhead imposed by DEPT, I would suggest that if DEPT ever does go in, that it should be possible to disable DEPT and only use the existing CONFIG_PROVE_LOCKING version of LOCKDEP, just because DEPT is S - L - O - W.
[1] https://github.com/tytso/xfstests-bld/blob/master/Documentation/kvm-quicksta...
- Ted
P.S. Darrick and I both have disabled using LOCKDEP by default because it slows down ext4 -g auto testing by a factor 2, and xfs -g auto testing by a factor of 3. So the fact that DEPT is a factor of 2x to 10x or more slower than LOCKDEP when running various xfstests tests should be a real concern.
DEPT is tracking way more objects than Lockdep so it's inevitable to be slower, but let me try to make it have the similar performance to Lockdep.
Byungchul