Messages in this thread |  | | From | Andreas Gruenbacher <> | Date | Thu, 29 Mar 2018 15:12:09 +0200 | Subject | Re: [Cluster-devel] [PATCH v2 0/2] gfs2: Stop using rhashtable_walk_peek |
| |
On 29 March 2018 at 14:24, Steven Whitehouse <swhiteho@redhat.com> wrote: > Hi, > > Can we solve the problem another way, by not taking refs on the glocks when > we are iterating over them for the debugfs files? I assume that is the main > issue here. > > We didn't used to take refs since the rcu locking was enough during the walk > itself. We used to only keep track of the hash bucket and offset within the > bucket when we dropped the rcu lock between calls to the iterator. I may > have lost track of why that approach did not work?
That doesn't work because when a glock doesn't fit into one read, we need to make sure that the next read will continue with the same glock or else we'll end up with a corrupted dump. And rhashtable_walk_peek cannot guarantee that.
I've done some minimal performance testing and the additional ref taking only impacted the performance in the 10% range or less, so it doesn't really matter.
Andreas
|  |