From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Fri, 11 Mar 2011 10:08:50 +0000 Subject: [Cluster-devel] [GFS2 PATCH] Optimize glock multiple-dequeue code In-Reply-To: <1958685266.393423.1299775317055.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com> References: <1958685266.393423.1299775317055.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com> Message-ID: <1299838130.2578.1.camel@dolmen> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hi, On Thu, 2011-03-10 at 11:41 -0500, Bob Peterson wrote: > Hi, > > This is a small patch that optimizes multiple glock dequeue > operations. It changes the unlock order to be more efficient > and makes it easier for lock debugging tools to unravel. It > also eliminates the need for the temp variable x, although > that would likely be optimized out. > > Regards, > > Bob Peterson > Red Hat File Systems > > Signed-off-by: Bob Peterson > -- > fs/gfs2/glock.c | 12 ++++-------- > 1 files changed, 4 insertions(+), 8 deletions(-) > I'm still not convinced that this really makes a difference, but it doesn't do any harm either, so I've pushed it into the -nmw tree, Steve. > diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c > index 3f45a14..8648409 100644 > --- a/fs/gfs2/glock.c > +++ b/fs/gfs2/glock.c > @@ -1248,10 +1248,8 @@ int gfs2_glock_nq_m(unsigned int num_gh, struct gfs2_holder *ghs) > > void gfs2_glock_dq_m(unsigned int num_gh, struct gfs2_holder *ghs) > { > - unsigned int x; > - > - for (x = 0; x < num_gh; x++) > - gfs2_glock_dq(&ghs[x]); > + while (num_gh--) > + gfs2_glock_dq(&ghs[num_gh]); > } > > /** > @@ -1263,10 +1261,8 @@ void gfs2_glock_dq_m(unsigned int num_gh, struct gfs2_holder *ghs) > > void gfs2_glock_dq_uninit_m(unsigned int num_gh, struct gfs2_holder *ghs) > { > - unsigned int x; > - > - for (x = 0; x < num_gh; x++) > - gfs2_glock_dq_uninit(&ghs[x]); > + while (num_gh--) > + gfs2_glock_dq_uninit(&ghs[num_gh]); > } > > void gfs2_glock_cb(struct gfs2_glock *gl, unsigned int state) >