FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 03-10-2011, 03:41 PM
Bob Peterson
 
Default Optimize glock multiple-dequeue code

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 <rpeterso@redhat.com>
--
fs/gfs2/glock.c | 12 ++++--------
1 files changed, 4 insertions(+), 8 deletions(-)

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)
 
Old 03-11-2011, 09:08 AM
Steven Whitehouse
 
Default Optimize glock multiple-dequeue code

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 <rpeterso@redhat.com>
> --
> 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)
>
 

Thread Tools




All times are GMT. The time now is 01:25 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org