From ece9fa6e400424b05c0af9daf5ccc38aeca8908f Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Thu, 31 May 2018 14:09:54 -0500 Subject: [PATCH] xfs_buflock: record line number of trace where we locked the buffer Enhance the debug output by reporting at which line in the trace output we locked a particular buffer. Signed-off-by: Darrick J. Wong Reviewed-by: Allison Henderson Signed-off-by: Eric Sandeen --- tools/xfsbuflock.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/xfsbuflock.py b/tools/xfsbuflock.py index cc15f582c..954f09543 100755 --- a/tools/xfsbuflock.py +++ b/tools/xfsbuflock.py @@ -85,6 +85,7 @@ class Buffer: self.locktime = None self.owner = None self.waiters = set() + self.lockline = 0 def trylock(self, process, time): if not self.locked: @@ -92,7 +93,8 @@ class Buffer: def lockdone(self, process, time): if self.locked: - print('Buffer already locked on line %d?!' % nr) + print('Buffer 0x%x already locked at line %d? (line %d)' % \ + (self.bno, self.lockline, nr)) # process.dump() # self.dump() # assert False @@ -101,6 +103,7 @@ class Buffer: self.locked = True self.owner = process self.locktime = time + self.lockline = nr process.locked_bufs.add(self) process.bufs.add(self) locked_buffers.add(self) @@ -118,7 +121,8 @@ class Buffer: def dump(self): if self.owner is not None: - pid = '%s@%f' % (self.owner.pid, self.locktime) + pid = '%s@%f (line %d)' % \ + (self.owner.pid, self.locktime, self.lockline) else: pid = '' print('dev %s bno 0x%x nblks 0x%x lock %d owner %s' % \ -- 2.39.2