Re: [Cluster-devel] [PATCH v2 0/3] gfs2: Add new resource group header fields

2017-12-12 Thread Bob Peterson
- Original Message - | These patches add new fields to struct gfs2_rgrp. The intention is to improve | fsck performance and error checking while reducing reliance on the rindex to | be read in order to scan through the resource groups in tools such as | fsck.gfs2. This is part of a wider go

[Cluster-devel] [RFC RHEL7 GFS2 PATCH 2/3] gfs2: try to free empty mapping inodes from ordered list

2017-12-12 Thread Abhi Das
Add a new function gfs2_ordered_shrink() that is called when syncfs is run. This function runs through the ordered list of inodes and removes the ones that don't have any pages in need of writing. Signed-off-by: Abhi Das --- fs/gfs2/log.c | 16 fs/gfs2/log.h | 1 + fs/gfs2/

[Cluster-devel] [RFC RHEL7 GFS2 PATCH 3/3] gfs2: ordered write list addendum patch

2017-12-12 Thread Abhi Das
Trim the list in gfs2_ordered_write() as we run through it to write out inodes. Also attempt to remove an inode from the list after it is fsync'ed. Finally, call gfs2_ordered_write() in case we were not able to shrink the list in gfs2_ordered_shrink() in the hopes that it will eventually cause the

[Cluster-devel] [RFC RHEL7 GFS2 PATCH 1/3] gfs2: ordered list instrumentation

2017-12-12 Thread Abhi Das
Keep stats on the size of the ordered list and keep track of where it's added to and removed from --- fs/gfs2/bmap.c | 2 +- fs/gfs2/file.c | 2 +- fs/gfs2/incore.h | 12 fs/gfs2/log.c| 7 +-- fs/gfs2/log.h| 35 +--

[Cluster-devel] [RFC RHEL7 GFS2 PATCH 0/3] Trimming the ordered write inode list

2017-12-12 Thread Abhi Das
This is a RHEL7 patchset to address bz 1511599. The first patch in this series is just an instrumentation patch to assess the impact of the subsequent patches on the ordered write list. It is not intended to be merged into the code base. The second patch adds a function gfs2_ordered_shrink() whic

[Cluster-devel] gfs2_journaled_truncate efficiency

2017-12-12 Thread Andreas Gruenbacher
Hi, looking at gfs2_journaled_truncate, I noticed that the loop in there can be awfully expensive for huge sparse jdata files. This is because of two reasons: (1) The loop goes from the truncate point to the file size, creating a new transaction every GFS2_JTRUNC_REVOKES blocks (8192). We co