Skip to content

fsck.gfs2 performance improvements

Steven Whitehouse cluster-devel 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest0 of 7 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 7 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [Cluster-devel] [gfs2-utils PATCH 0/7] fsck.gfs2 performance improvements

Hi,

I think it would be good to separate out the performance patches from the others. I think there are probably only a few patches that will make any performance difference. Patch 7 appears to be the most important one, and looks like a really good speed up. That is definitely the kind of thing we need to find and fix. Using global variables to avoid passing an extra parameter is not a good idea - if that does make a difference then I'd look very carefully at the loop in which that code resides and see what the real problem is there.

Likewise, I'm not at all keen on having large functions in headers marked as inline functions or macros which appear to be mostly code that is only touched on a debug or error path. This should not be performance critical code and most of it at least should ok in a normal function. Again if this makes a performance difference, then it is probably a sign that something else is wrong,

Steve.

Quoted 24 lines · Bob Peterson

My recent set of patches to fsck.gfs2 saved a lot of memory, thus enabling us to run fsck.gfs2 on much larger file systems. However, it slowed things down and our performance regressed. This is a set of seven patches designed to improve performance again. There are probably more improvements I can make, but I've been busy with kernel work, so it's not my primary focus. If I come up with more patches, I'll post them later.
---
Bob Peterson (7):
fsck.gfs2: Don't bother to pass bl blockmap pointer fsck.gfs2: Remember the previous rgrp pointer for speed fsck.gfs2: Don't set gfs1rg pointer unless we need to fsck.gfs2: Make _fsck_bitmap_set not send a return code fsck.gfs2: convert fsck_bitmap_set to a macro fsck.gfs2: Speed up function bitmap_type
fsck.gfs2: Make pass2 go by directory rbtree for performance

  gfs2/fsck/metawalk.c | 69 ++++++----------------------------------------------
  gfs2/fsck/metawalk.h | 65 +++++++++++++++++++++++++++++++++++++++++++------
  gfs2/fsck/pass1.c    | 47 +++++++++++++++++++++--------------
  gfs2/fsck/pass2.c    | 21 ++++++----------
  gfs2/fsck/util.h     |  8 +++++-
  5 files changed, 110 insertions(+), 100 deletions(-)