Re: [Cluster-devel] [PATCH] gfs2: Don't free rgrp clone bitmaps until go_inval

2023-05-11 Thread Steven Whitehouse
Hi, On Wed, 2023-05-10 at 15:08 -0400, Bob Peterson wrote: > Before this patch, every time an rgrp was synced (go_sync) the > clone bitmaps were freed. We do not need to free the bitmaps in many > common cases. For example when demoting the glock from EXCLUSIVE to > SHARED. This is especially

Re: [Cluster-devel] [PATCH] gfs2: ignore rindex_update failure in dinode_dealloc

2023-05-05 Thread Steven Whitehouse
On Fri, 2023-05-05 at 08:44 +0100, Andrew Price wrote: > Hi Bob, > > On 04/05/2023 18:43, Bob Peterson wrote: > > Before this patch function gfs2_dinode_dealloc would abort if it > > got a > > bad return code from gfs2_rindex_update. The problem is that it > > left the > > dinode in the unlinked

Re: [Cluster-devel] question about gfs2 multiple device support

2023-04-24 Thread Steven Whitehouse
Hi, On Sat, 2023-04-22 at 09:20 +0800, Wang Yugui wrote: > Hi, > > Is there some work for gfs2 multiple device support? > Do you mean multiple devices generically, or specifically the md driver? > if multiple device support, > 1, No need of RAID 0/1/5/6 support. >    nvme SSD is fast enough

Re: [Cluster-devel] [PATCH dlm-tool] dlm_controld: better uevent filtering

2023-01-16 Thread Steven Whitehouse
Hi, On Fri, 2023-01-13 at 17:43 -0500, Alexander Aring wrote: > When I did test with dlm_locktorture module I got several log > messages > about: > > uevent message has 3 args: add@/module/dlm_locktorture > uevent message has 3 args: remove@/module/dlm_locktorture > > which are not expected and

Re: [Cluster-devel] BUG? racy access to i_diskflags

2022-06-15 Thread Steven Whitehouse
Hi, On Tue, 2010-08-17 at 13:28 +0900, 홍신 shin hong wrote: > Hi. I am reporting an issue suspected as racy > while I read inode_go_lock() at gfs2/glops.c in Linux 2.6.35. > > Since I do not have much background on GFS2, I am not certain > whether the issue is serious or not. But please examine

Re: [Cluster-devel] message in syslog: shrink_slab: gfs2_glock_shrink_scan+0x0/0x240 [gfs2] negative objects to delete nr=xxxxxxxxxxxx

2021-12-08 Thread Steven Whitehouse
Hi, On Wed, 2021-12-08 at 17:50 +0100, Lentes, Bernd wrote: > Hi, > > i hope this is the right place for asking about GFS2. > Yesterday one of my two nodes HA-cluster got slower and slower, until > it was fenced. > In /var/log/messages i found this message repeated often before the > system got

Re: [Cluster-devel] [PATCH v6 10/19] gfs2: Introduce flag for glock holder auto-demotion

2021-08-24 Thread Steven Whitehouse
Hi, On Mon, 2021-08-23 at 17:18 +0200, Andreas Gruenbacher wrote: > On Mon, Aug 23, 2021 at 10:14 AM Steven Whitehouse < > swhit...@redhat.com> wrote: > > On Fri, 2021-08-20 at 17:22 +0200, Andreas Gruenbacher wrote: > > > On Fri, Aug 20, 2021 at 3:11 PM Bob Peterson &

Re: [Cluster-devel] [PATCH v6 10/19] gfs2: Introduce flag for glock holder auto-demotion

2021-08-23 Thread Steven Whitehouse
On Fri, 2021-08-20 at 17:22 +0200, Andreas Gruenbacher wrote: > On Fri, Aug 20, 2021 at 3:11 PM Bob Peterson > wrote: > > [snip] > > > > You can almost think of this as a performance enhancement. This > > concept > > allows a process to hold a glock for much longer periods of time, > > at a > >

Re: [Cluster-devel] [PATCH v6 10/19] gfs2: Introduce flag for glock holder auto-demotion

2021-08-20 Thread Steven Whitehouse
Hi, On Fri, 2021-08-20 at 15:17 +0200, Andreas Gruenbacher wrote: > On Fri, Aug 20, 2021 at 11:35 AM Steven Whitehouse < > swhit...@redhat.com> wrote: > > On Thu, 2021-08-19 at 21:40 +0200, Andreas Gruenbacher wrote: > > > From: Bob Peterson > > >

Re: [Cluster-devel] [PATCH v6 10/19] gfs2: Introduce flag for glock holder auto-demotion

2021-08-20 Thread Steven Whitehouse
Hi, On Fri, 2021-08-20 at 08:11 -0500, Bob Peterson wrote: > On 8/20/21 4:35 AM, Steven Whitehouse wrote: > > Hi, > > > > On Thu, 2021-08-19 at 21:40 +0200, Andreas Gruenbacher wrote: > > > From: Bob Peterson > > > > > > This patch introduces a

Re: [Cluster-devel] [PATCH v6 10/19] gfs2: Introduce flag for glock holder auto-demotion

2021-08-20 Thread Steven Whitehouse
Hi, On Thu, 2021-08-19 at 21:40 +0200, Andreas Gruenbacher wrote: > From: Bob Peterson > > This patch introduces a new HIF_MAY_DEMOTE flag and infrastructure > that > will allow glocks to be demoted automatically on locking conflicts. > When a locking request comes in that isn't compatible with

Re: [Cluster-devel] [GFS2 PATCH 10/10] gfs2: replace sd_aspace with sd_inode

2021-07-28 Thread Steven Whitehouse
Hi, On Wed, 2021-07-28 at 08:50 +0200, Andreas Gruenbacher wrote: > On Tue, Jul 13, 2021 at 9:34 PM Bob Peterson > wrote: > > On 7/13/21 1:26 PM, Steven Whitehouse wrote: > > > > Hi, > > > > On Tue, 2021-07-13 at 13:09 -0500, Bob Peterson wrote: > >

Re: [Cluster-devel] [syzbot] WARNING in __set_page_dirty

2021-07-22 Thread Steven Whitehouse
Hi, On Thu, 2021-07-22 at 08:16 -0500, Bob Peterson wrote: > On 7/21/21 4:58 PM, Andrew Morton wrote: > > (cc gfs2 maintainers) > > > > On Tue, 20 Jul 2021 19:07:25 -0700 syzbot < > > syzbot+0d5b462a6f0744799...@syzkaller.appspotmail.com> wrote: > > > > > Hello, > > > > > > syzbot found the

Re: [Cluster-devel] [GFS2 PATCH 08/10] gfs2: New log flush watchdog

2021-07-14 Thread Steven Whitehouse
Hi, On Tue, 2021-07-13 at 15:03 -0500, Bob Peterson wrote: > On 7/13/21 1:41 PM, Steven Whitehouse wrote: > > Hi, > > > > On Tue, 2021-07-13 at 13:09 -0500, Bob Peterson wrote: > > > This patch adds a new watchdog whose sole purpose is to complain > > &g

Re: [Cluster-devel] [GFS2 PATCH 08/10] gfs2: New log flush watchdog

2021-07-13 Thread Steven Whitehouse
Hi, On Tue, 2021-07-13 at 13:09 -0500, Bob Peterson wrote: > This patch adds a new watchdog whose sole purpose is to complain when > gfs2_log_flush operations are taking too long. > This one is a bit confusing. It says that it is to check if the log flush is taking too long, but it appears to

Re: [Cluster-devel] [GFS2 PATCH 10/10] gfs2: replace sd_aspace with sd_inode

2021-07-13 Thread Steven Whitehouse
Hi, On Tue, 2021-07-13 at 13:09 -0500, Bob Peterson wrote: > Before this patch, gfs2 kept its own address space for rgrps, but > this > caused a lockdep problem because vfs assumes a 1:1 relationship > between > address spaces and their inode. One problematic area is this: > I don't think that

Re: [Cluster-devel] [RFC 4/9] gfs2: Fix mmap + page fault deadlocks (part 1)

2021-06-13 Thread Steven Whitehouse
Hi, On Sat, 2021-06-12 at 21:35 +, Al Viro wrote: > On Sat, Jun 12, 2021 at 09:05:40PM +, Al Viro wrote: > > > Is the above an accurate description of the mainline situation > > there? > > In particular, normal read doesn't seem to bother with locks at > > all. > > What exactly are those

Re: [Cluster-devel] [PATCH gfs2-utils] man: gfs2.5: remove barrier automatically turned off note

2021-03-29 Thread Steven Whitehouse
Hi, On 26/03/2021 13:46, Alexander Ahring Oder Aring wrote: Hi, On Fri, Mar 26, 2021 at 6:41 AM Andrew Price wrote: On 25/03/2021 17:58, Alexander Aring wrote: This patch removes a note that the barrier option is automatically turned off if the underlaying device doesn't support I/O

Re: [Cluster-devel] [GFS2 PATCH] gfs2: Add new sysfs file for gfs2 status

2021-03-19 Thread Steven Whitehouse
On 19/03/2021 12:06, Bob Peterson wrote: This patch adds a new file: /sys/fs/gfs2/*/status which will report the status of the file system. Catting this file dumps the current status of the file system according to various superblock variables. For example: Journal Checked: 1 Journal

Re: [Cluster-devel] Recording extents in GFS2

2021-02-22 Thread Steven Whitehouse
Hi, On 20/02/2021 09:48, Andreas Gruenbacher wrote: Hi all, once we change the journal format, in addition to recording block numbers as extents, there are some additional issues we should address at the same time: I. The current transaction format of our journals is as follows: * One

Re: [Cluster-devel] [gfs2 PATCH] gfs2: Don't skip dlm unlock if glock has an lvb

2021-02-08 Thread Steven Whitehouse
Hi, Longer term we should review whether this is really the correct fix. It seems a bit strange that we have to do something different according to whether there is an LVB or not. We are gradually increasing LVB use over time too. So should we fix the DLM so that either it can cope with locks

Re: [Cluster-devel] Recording extents in GFS2

2021-02-02 Thread Steven Whitehouse
Hi, On 24/01/2021 06:44, Abhijith Das wrote: Hi all, I've been looking at rgrp.c:gfs2_alloc_blocks(), which is called from various places to allocate single/multiple blocks for inodes. I've come up with some data structures to accomplish recording of these allocations as extents. I'm

Re: [Cluster-devel] [PATCH v3 08/20] gfs2: Get rid of on-stack transactions

2021-01-28 Thread Steven Whitehouse
Hi, On 27/01/2021 21:07, Andreas Gruenbacher wrote: On-stack transactions were introduced to work around a transaction glock deadlock in gfs2_trans_begin in commit d8348de06f70 ("GFS2: Fix deadlock on journal flush"). Subsequently, transaction glocks were eliminated in favor of the more

Re: [Cluster-devel] [GFS2 PATCH] gfs2: make recovery workqueue operate on a gfs2 mount point, not journal

2021-01-04 Thread Steven Whitehouse
Hi, On 22/12/2020 20:38, Bob Peterson wrote: Hi, Before this patch, journal recovery was done by a workqueue function that operated on a per-journal basis. The problem is, these could run simultaneously which meant that they could all use the same bio, sd_log_bio, to do their writing to all

Re: [Cluster-devel] [PATCH 07/12] gfs2: Get rid of on-stack transactions

2020-12-14 Thread Steven Whitehouse
Hi, On 14/12/2020 14:02, Bob Peterson wrote: Hi, - Original Message - + ret = __gfs2_trans_begin(sdp, 0, revokes, GFP_NOFS | __GFP_NOFAIL); The addition of __GFP_NOFAIL means that this operation can now block. Looking at the code, I don't think it will be a problem because it

Re: [Cluster-devel] Recording extents in GFS2

2020-12-14 Thread Steven Whitehouse
Hi, On 11/12/2020 16:38, Abhijith Das wrote: Hi all, With a recent set of patches, we nearly eliminated the per_node statfs change files by recording that info in the journal. The files and some recovery code remain only for backward compatibility. Similarly, I'd like to get rid of the

Re: [Cluster-devel] [PATCH] gfs2: Take inode glock exclusively when mounted without noatime

2020-11-25 Thread Steven Whitehouse
Hi, On 24/11/2020 16:42, Andreas Gruenbacher wrote: Commit 20f82c38 ("gfs2: Rework read and page fault locking") has lifted the glock lock taking from the low-level ->readpage and ->readahead address space operations to the higher-level ->read_iter file and ->fault vm operations. The

Re: [Cluster-devel] [GFS2 PATCH 06/12] gfs2: Create transaction for inodes with i_nlink != 0

2020-08-27 Thread Steven Whitehouse
Hi, On 27/08/2020 07:00, Andreas Gruenbacher wrote: On Fri, Aug 21, 2020 at 7:33 PM Bob Peterson wrote: Before this patch, function gfs2_evict_inode would check if i_nlink was non-zero, and if so, go to label out. The problem is, the evicted file may still have outstanding pages that need

Re: [Cluster-devel] [PATCH 1/3] gfs2: Don't write updates to local statfs file

2020-08-20 Thread Steven Whitehouse
Hi, On 20/08/2020 12:04, Abhijith Das wrote: On Wed, Aug 19, 2020 at 12:07 PM Bob Peterson > wrote: - Original Message - > We store the local statfs info in the journal header now so > there's no need to write to the local statfs file anymore.

Re: [Cluster-devel] always fall back to buffered I/O after invalidation failures, was: Re: [PATCH 2/6] iomap: IOMAP_DIO_RWF_NO_STALE_PAGECACHE return if page invalidation fails

2020-07-09 Thread Steven Whitehouse
Hi, On 08/07/2020 17:54, Christoph Hellwig wrote: On Wed, Jul 08, 2020 at 02:54:37PM +0100, Matthew Wilcox wrote: Direct I/O isn't deterministic though. If the file isn't shared, then it works great, but as soon as you get mixed buffered and direct I/O, everything is already terrible. Direct

Re: [Cluster-devel] Disentangling address_space and inode

2020-06-10 Thread Steven Whitehouse
Hi, On 09/06/2020 13:41, Matthew Wilcox wrote: I have a modest proposal ... struct inode { - struct address_space i_data; } +struct minode { + struct inode i; + struct address_space m; +}; struct address_space { - struct inode *host; } This saves one pointer

Re: [Cluster-devel] [GFS2 PATCH] gfs2: fix trans slab error when withdraw occurs inside log_flush

2020-06-09 Thread Steven Whitehouse
Hi, On 09/06/2020 14:55, Bob Peterson wrote: Hi, Log flush operations (gfs2_log_flush()) can target a specific transaction. But if the function encounters errors (e.g. io errors) and withdraws, the transaction was only freed it if was queued to one of the ail lists. If the withdraw occurred

Re: [Cluster-devel] [PATCH] mkfs.gfs2: Don't use optimal_io_size when equal to minimum

2020-05-27 Thread Steven Whitehouse
Hi, On 27/05/2020 11:02, Andrew Price wrote: On 27/05/2020 09:53, Steven Whitehouse wrote: Hi, On 27/05/2020 09:29, Andrew Price wrote: Some devices report an optimal_io_size of 512 instead of 0 when it's not larger than the minimum_io_size. Currently mkfs.gfs2 uses the non-zero value

Re: [Cluster-devel] [PATCH] mkfs.gfs2: Don't use optimal_io_size when equal to minimum

2020-05-27 Thread Steven Whitehouse
Hi, On 27/05/2020 09:29, Andrew Price wrote: Some devices report an optimal_io_size of 512 instead of 0 when it's not larger than the minimum_io_size. Currently mkfs.gfs2 uses the non-zero value to choose the block size, which is almost certainly not what we want when it's 512. Update the

Re: [Cluster-devel] [PATCH] Move struct gfs2_rgrp_lvb out of gfs2_ondisk.h

2020-01-15 Thread Steven Whitehouse
Hi, On 15/01/2020 09:24, Andreas Gruenbacher wrote: On Wed, Jan 15, 2020 at 9:58 AM Steven Whitehouse wrote: On 15/01/2020 08:49, Andreas Gruenbacher wrote: There's no point in sharing the internal structure of lock value blocks with user space. The reason that is in ondisk is that changing

Re: [Cluster-devel] [PATCH] Move struct gfs2_rgrp_lvb out of gfs2_ondisk.h

2020-01-15 Thread Steven Whitehouse
Hi, On 15/01/2020 08:49, Andreas Gruenbacher wrote: There's no point in sharing the internal structure of lock value blocks with user space. The reason that is in ondisk is that changing that structure is something that needs to follow the same rules as changing the on disk structures. So

Re: [Cluster-devel] [PATCH] mm/filemap: do not allocate cache pages beyond end of file at read

2019-11-27 Thread Steven Whitehouse
Hi, On 25/11/2019 17:05, Linus Torvalds wrote: On Mon, Nov 25, 2019 at 2:53 AM Steven Whitehouse wrote: Linus, is that roughly what you were thinking of? So the concept looks ok, but I don't really like the new flags as they seem to be gfs2-specific rather than generic. That said, I don't

Re: [Cluster-devel] [PATCH] mm/filemap: do not allocate cache pages beyond end of file at read

2019-11-25 Thread Steven Whitehouse
Hi, On 22/11/2019 23:59, Andreas Grünbacher wrote: Hi, Am Do., 31. Okt. 2019 um 12:43 Uhr schrieb Steven Whitehouse : Andreas, Bob, have I missed anything here? I've looked into this a bit, and it seems that there's a reasonable way to get rid of the lock taking in ->readpage and ->rea

Re: [Cluster-devel] [PATCH 00/32] gfs2: misc recovery patch collection

2019-11-14 Thread Steven Whitehouse
Hi, There are a lot of useful fixes in this series. We should consider how many of them should go to -stable I think. Also we should start to get them integrated upstream. Might be a good plan to sort out the more obvious ones and send those right away, and then do anything which needs a bit

Re: [Cluster-devel] [PATCH 30/32] gfs2: Don't demote a glock until its revokes are written

2019-11-14 Thread Steven Whitehouse
Hi, On 13/11/2019 21:30, Bob Peterson wrote: Before this patch, run_queue would demote glocks based on whether there are any more holders. But if the glock has pending revokes that haven't been written to the media, giving up the glock might end in file system corruption if the revokes never

Re: [Cluster-devel] [PATCH 28/32] gfs2: Eliminate GFS2_RDF_UPTODATE flag in favor of buffer existence

2019-11-14 Thread Steven Whitehouse
Hi, On 13/11/2019 21:30, Bob Peterson wrote: Before this patch, the rgrp code used two different methods to check if the rgrp information was up-to-date: (1) The GFS2_RDF_UPTODATE flag in the rgrp and (2) the existence (or not) of valid buffer_head pointers in the first bitmap. When the

Re: [Cluster-devel] [PATCH] mm/filemap: do not allocate cache pages beyond end of file at read

2019-10-31 Thread Steven Whitehouse
Hi, On 30/10/2019 10:54, Linus Torvalds wrote: On Wed, Oct 30, 2019 at 11:35 AM Steven Whitehouse wrote: NFS may be ok here, but it will break GFS2. There may be others too... OCFS2 is likely one. Not sure about CIFS either. Does it really matter that we might occasionally allocate a page

Re: [Cluster-devel] [PATCH] mm/filemap: do not allocate cache pages beyond end of file at read

2019-10-30 Thread Steven Whitehouse
Hi, On 29/10/2019 16:52, Linus Torvalds wrote: On Tue, Oct 29, 2019 at 3:25 PM Konstantin Khlebnikov wrote: I think all network filesystems which synchronize metadata lazily should be marked. For example as "SB_VOLATILE". And vfs could handle them specially. No need. The VFS layer doesn't

Re: [Cluster-devel] Interest in DAX for OCFS2 and/or GFS2?

2019-10-11 Thread Steven Whitehouse
Hi, On 11/10/2019 08:21, Gang He wrote: Hello hayes, -Original Message- From: cluster-devel-boun...@redhat.com [mailto:cluster-devel-boun...@redhat.com] On Behalf Of Hayes, Bill Sent: 2019年10月11日 0:42 To: ocfs2-de...@oss.oracle.com; cluster-devel@redhat.com Cc: Rocky (The good-looking

Re: [Cluster-devel] [GFS2 PATCH 2/2] gfs2: Use async glocks for rename

2019-08-15 Thread Steven Whitehouse
Hi, On 15/08/2019 14:41, Bob Peterson wrote: I just noticed the parameter comments for gfs2_glock_async_wait are wrong, and I've fixed them in a newer version. I can post the new version after I get people's initial reactions. Bob Overall this looks like a much better approach. We know that

Re: [Cluster-devel] [GFS2 PATCH] gfs2: eliminate circular lock dependency in inode.c

2019-08-12 Thread Steven Whitehouse
Hi, On 12/08/2019 14:43, Bob Peterson wrote: - Original Message - The real problem came with renames, though. Function gfs2_rename(), which locked a series of inode glocks, did so in parent-child order due to that patch. But it was still possible to create circular lock dependencies

Re: [Cluster-devel] [GFS2 PATCH] gfs2: eliminate circular lock dependency in inode.c

2019-08-12 Thread Steven Whitehouse
Hi, On 09/08/2019 19:58, Bob Peterson wrote: Hi, This patch fixes problems caused by regressions from patch "GFS2: rm on multiple nodes causes panic" from 2008, 72dbf4790fc6736f9cb54424245114acf0b0038c, which was an earlier attempt to fix very similar problems. The original problem for which

[Cluster-devel] The last 64 bits

2019-07-30 Thread Steven Whitehouse
Hi, We currently have 64 bits left over in the gfs2 metadata header. This is currently just padding, although we do zero it out when we add metadata blocks to transactions. I would like to ensure that we make the most of this space, and I've got a couple of ideas of how best to use it.

Re: [Cluster-devel] [PATCH] fs: gfs2: Fix a null-pointer dereference in gfs2_alloc_inode()

2019-07-24 Thread Steven Whitehouse
Hi, On 24/07/2019 11:27, Christoph Hellwig wrote: On Wed, Jul 24, 2019 at 11:22:46AM +0100, Steven Whitehouse wrote: and it would have the same effect, so far as I can tell. I don't mind changing it, if that is perhaps a clearer way to write the same thing, rather than >i_inode; The clean

Re: [Cluster-devel] [PATCH] fs: gfs2: Fix a null-pointer dereference in gfs2_alloc_inode()

2019-07-24 Thread Steven Whitehouse
Hi, On 24/07/2019 11:02, Christoph Hellwig wrote: On Wed, Jul 24, 2019 at 09:48:38AM +0100, Steven Whitehouse wrote: Hi, On 24/07/2019 09:43, Jia-Ju Bai wrote: In gfs2_alloc_inode(), when kmem_cache_alloc() on line 1724 returns NULL, ip is assigned to NULL. In this case, "return >

Re: [Cluster-devel] [BUG] fs: gfs2: possible null-pointer dereferences in gfs2_rgrp_bh_get()

2019-07-24 Thread Steven Whitehouse
Hi, On 24/07/2019 09:50, Jia-Ju Bai wrote: In gfs2_rgrp_bh_get, there is an if statement on line 1191 to check whether "rgd->rd_bits[0].bi_bh" is NULL. That is how we detect whether the rgrp has already been read in, so the function is skipped in the case that we've already read in the rgrp.

Re: [Cluster-devel] [PATCH] fs: gfs2: Fix a null-pointer dereference in gfs2_alloc_inode()

2019-07-24 Thread Steven Whitehouse
Hi, On 24/07/2019 09:43, Jia-Ju Bai wrote: In gfs2_alloc_inode(), when kmem_cache_alloc() on line 1724 returns NULL, ip is assigned to NULL. In this case, "return >i_inode" will cause a null-pointer dereference. To fix this null-pointer dereference, NULL is returned when ip is NULL. This bug

Re: [Cluster-devel] [GFS2 PATCH v3 00/19] gfs2: misc recovery patch collection

2019-04-30 Thread Steven Whitehouse
Hi, On 01/05/2019 00:03, Bob Peterson wrote: Here is version 3 of the patch set I posted on 23 April. It is revised based on bugs I found testing with xfstests. This is a collection of patches I've been using to address the myriad of recovery problems I've found. I'm still finding them, so the

Re: [Cluster-devel] [GFS2 PATCH v3 09/19] gfs2: Ignore recovery attempts if gfs2 has io error or is withdrawn

2019-04-30 Thread Steven Whitehouse
Hi, On 01/05/2019 00:03, Bob Peterson wrote: This patch addresses various problems with gfs2/dlm recovery. For example, suppose a node with a bunch of gfs2 mounts suddenly reboots due to kernel panic, and dlm determines it should perform recovery. DLM does so from a pseudo-state machine

Re: [Cluster-devel] [PATCH] libgfs2: Import gfs2_ondisk.h

2019-04-09 Thread Steven Whitehouse
Hi, On 09/04/2019 13:48, Andrew Price wrote: On 09/04/2019 13:21, Steven Whitehouse wrote: Hi, On 09/04/2019 13:18, Andrew Price wrote: On 09/04/2019 13:03, Christoph Hellwig wrote: On Tue, Apr 09, 2019 at 10:41:53AM +0100, Andrew Price wrote: Give gfs2-utils its own copy

Re: [Cluster-devel] [PATCH] libgfs2: Import gfs2_ondisk.h

2019-04-09 Thread Steven Whitehouse
Hi, On 09/04/2019 13:18, Andrew Price wrote: On 09/04/2019 13:03, Christoph Hellwig wrote: On Tue, Apr 09, 2019 at 10:41:53AM +0100, Andrew Price wrote: Give gfs2-utils its own copy of gfs2_ondisk.h which uses userspace types. This allows us to always support the latest ondisk structures and

Re: [Cluster-devel] [GFS2 PATCH v3] gfs2: clean_journal improperly set sd_log_flush_head

2019-04-02 Thread Steven Whitehouse
Hi, On 28/03/2019 17:10, Bob Peterson wrote: Hi, Andreas found some problems with the previous version. Here is version 3. Ross: Can you please test this one with your scenario? Thanks. Bob Peterson --- This patch fixes regressions in 588bff95c94efc05f9e1a0b19015c9408ed7c0ef. Due to that

Re: [Cluster-devel] [PATCH 0/2] gfs2: Switch to the new mount API

2019-03-18 Thread Steven Whitehouse
Thanks for sorting this out so quickly, Steve. On 17/03/2019 17:40, Andrew Price wrote: These patches convert gfs2 and gfs2meta to use fs_context. In both cases we still use sget() instead of sget_fc() as there doesn't seem to be a clear idiomatic way to propagate the bdev currently.

Re: [Cluster-devel] [GFS2 PATCH 8/9] gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty

2019-02-15 Thread Steven Whitehouse
On 13/02/2019 15:21, Bob Peterson wrote: Before this patch, if gfs2_ail_empty_gl saw there was nothing on the ail list, it would return and not flush the log. The problem is that there could still be a revoke for the rgrp sitting on the sd_log_le_revoke list that's been recently taken off the

Re: [Cluster-devel] [GFS2 PATCH 5/9] gfs2: Keep transactions on ail1 list until after issuing revokes

2019-02-15 Thread Steven Whitehouse
Hi, On 13/02/2019 15:21, Bob Peterson wrote: Before this patch, function gfs2_write_revokes would call function gfs2_ail1_empty, then run the ail1 list, issuing revokes. But gfs2_ail1_empty can move transactions to the ail2 list, and thus, their revokes were never issued. This patch adds a new

Re: [Cluster-devel] [GFS2 PATCH 4/9] gfs2: Force withdraw to replay journals and wait for it to finish

2019-02-15 Thread Steven Whitehouse
Hi, On 13/02/2019 15:21, Bob Peterson wrote: When a node withdraws from a file system, it often leaves its journal in an incomplete state. This is especially true when the withdraw is caused by io errors writing to the journal. Before this patch, a withdraw would try to write a "shutdown"

Re: [Cluster-devel] [GFS2 PATCH 3/9] gfs2: Empty the ail for the glock when rgrps are invalidated

2019-02-15 Thread Steven Whitehouse
Hi, On 13/02/2019 15:21, Bob Peterson wrote: Before this patch, function rgrp_go_inval would not invalidate the ail list, which meant that there might still be buffers outstanding on the ail that had revokes still pending. If the revokes had still not been written when the glock was given to

Re: [Cluster-devel] [GFS2 PATCH 1/9] gfs2: Introduce concept of a pending withdraw

2019-02-15 Thread Steven Whitehouse
On 13/02/2019 15:21, Bob Peterson wrote: File system withdraws can be delayed when inconsistencies are discovered when we cannot withdraw immediately, for example, when critical spin_locks are held. But delaying the withdraw can cause gfs2 to ignore the error and keep running for a short

Re: [Cluster-devel] [PATCH 1/2] gfs2: Fix occasional glock use-after-free

2019-01-31 Thread Steven Whitehouse
Hi, On 31/01/2019 10:55, Ross Lagerwall wrote: Each gfs2_bufdata stores a reference to a glock but the reference count isn't incremented. This causes an occasional use-after-free of the glock. Fix by taking a reference on the glock during allocation and dropping it when freeing. Another good

Re: [Cluster-devel] [PATCH 2/2] gfs2: Fix lru_count going negative

2019-01-31 Thread Steven Whitehouse
Hi, On 31/01/2019 10:55, Ross Lagerwall wrote: Under certain conditions, lru_count may drop below zero resulting in a large amount of log spam like this: vmscan: shrink_slab: gfs2_dump_glock+0x3b0/0x630 [gfs2] \ negative objects to delete nr=-1 This happens as follows: 1) A glock is

Re: [Cluster-devel] kernel BUG at fs/gfs2/inode.h:64

2019-01-09 Thread Steven Whitehouse
Hi, On 09/01/2019 17:14, Tim Smith wrote: On Wednesday, 9 January 2019 15:35:05 GMT Andreas Gruenbacher wrote: On Wed, 9 Jan 2019 at 14:43, Mark Syms wrote: We don't yet know how the assert got triggered as we've only seen it once and in the original form it looks like it would be very hard

Re: [Cluster-devel] [GFS2 PATCH] gfs2: Implement special writepage for ail start operations

2019-01-03 Thread Steven Whitehouse
Hi, On 02/01/2019 21:12, Bob Peterson wrote: Hi, This patch is a working prototype to fix the hangs that result from doing certain jdata I/O, primarily xfstests/269. My earlier prototypes used a special "fs_specific" wbc flag that I suspect the upstream community wouldn't like. So this

Re: [Cluster-devel] [GFS2 PATCH] gfs2: Panic when an io error occurs writing

2018-12-19 Thread Steven Whitehouse
Hi, On 18/12/2018 16:09, Mark Syms wrote: Thanks Bob, We believe we have seen these issues from time to time in our automated testing but I suspect that they're indicating a configuration problem with the backing storage. For flexibility a proportion of our purely functional testing will use

Re: [Cluster-devel] [GFS2 PATCH] gfs2: Panic when an io error occurs writing to the journal

2018-12-17 Thread Steven Whitehouse
Hi, On 17/12/2018 09:04, Edwin Török wrote: On 17/12/2018 13:54, Bob Peterson wrote: Hi, Before this patch, gfs2 would try to withdraw when it encountered io errors writing to its journal. That's incorrect behavior because if it can't write to the journal, it cannot write revokes for the

Re: [Cluster-devel] [PATCH 0/2] gfs2: improvements to recovery and withdraw process (v2)

2018-11-22 Thread Steven Whitehouse
Hi, On 21/11/18 18:52, Bob Peterson wrote: Hi, This is a second draft of a two-patch set to fix some of the nasty journal recovery problems I've found lately. The original post from 08 November had horribly bad and inaccurate comments, and Steve Whitehouse and Andreas Gruenbacher pointed

Re: [Cluster-devel] [PATCH 0/2] gfs2: improvements to recovery and withdraw process

2018-11-20 Thread Steven Whitehouse
Hi, On 08/11/18 20:25, Bob Peterson wrote: Hi, This is a first draft of a two-patch set to fix some of the nasty journal recovery problems I've found lately. The problems have to do with file system corruption caused when recovery replays a journal after the resource group blocks have been

Re: [Cluster-devel] [PATCH 03/13] GFS2: Eliminate a goto in finish_xmote

2018-11-20 Thread Steven Whitehouse
Hi, On 19/11/18 21:26, Bob Peterson wrote: Hi, - Original Message - On 19/11/18 13:29, Bob Peterson wrote: This is another baby step toward a better glock state machine. This patch eliminates a goto in function finish_xmote so we can begin unraveling the cryptic logic with later

Re: [Cluster-devel] [PATCH 02/13] GFS2: Make do_xmote determine its own gh parameter

2018-11-20 Thread Steven Whitehouse
Hi, On 19/11/18 21:06, Bob Peterson wrote: Hi Steve, - Original Message - On 19/11/18 13:29, Bob Peterson wrote: This is another baby step toward a better glock state machine. Before this patch, do_xmote was called with a gh parameter, but only for promotes, not demotes. This patch

Re: [Cluster-devel] gfs2: Remove vestigial bd_ops (version 2)

2018-11-20 Thread Steven Whitehouse
supporting it. Signed-off-by: Bob Peterson Acked-by: Steven Whitehouse Steve. --- fs/gfs2/incore.h | 1 - fs/gfs2/log.c| 1 - fs/gfs2/trans.c | 8 +++- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h index 888b62cfd6d1..663759abe60d

Re: [Cluster-devel] [PATCH 02/13] GFS2: Make do_xmote determine its own gh parameter

2018-11-19 Thread Steven Whitehouse
On 19/11/18 13:29, Bob Peterson wrote: This is another baby step toward a better glock state machine. Before this patch, do_xmote was called with a gh parameter, but only for promotes, not demotes. This patch allows do_xmote to determine the gh autonomously. Signed-off-by: Bob Peterson ---

Re: [Cluster-devel] [PATCH 03/13] GFS2: Eliminate a goto in finish_xmote

2018-11-19 Thread Steven Whitehouse
On 19/11/18 13:29, Bob Peterson wrote: This is another baby step toward a better glock state machine. This patch eliminates a goto in function finish_xmote so we can begin unraveling the cryptic logic with later patches. Signed-off-by: Bob Peterson --- fs/gfs2/glock.c | 11 +-- 1

Re: [Cluster-devel] [DLM PATCH] dlm: Don't swamp the CPU with callbacks queued during recovery

2018-11-09 Thread Steven Whitehouse
Hi, On 08/11/18 19:04, Bob Peterson wrote: Hi, Before this patch, recovery would cause all callbacks to be delayed, put on a queue, and afterward they were all queued to the callback work queue. This patch does the same thing, but occasionally takes a break after 25 of them so it won't swamp

Re: [Cluster-devel] [PATCH] gfs2: Put bitmap buffers in put_super

2018-11-06 Thread Steven Whitehouse
Hi, While that looks like a good fix for now, we should look at this again in due course. Why do we have a ref to the rgrp buffers held here in the first place? Unless the buffers are pinned in the journal there should not be a ref held, otherwise they cannot respond to memory pressure,

Re: [Cluster-devel] [GFS2 PATCH 0/4] jhead lookup using bios

2018-10-17 Thread Steven Whitehouse
Hi, This all looks good to me, so now we just need lots of testing. Are you still seeing good speed ups vs the current code? Steve. On 16/10/18 05:07, Abhi Das wrote: This is my latest version of this patchset based on inputs from Andreas and Steve. We readahead the journal sequentially in

Re: [Cluster-devel] [PATCH 7/9] gfs2: Fix marking bitmaps non-full

2018-10-12 Thread Steven Whitehouse
Hi, On 12/10/18 13:06, Bob Peterson wrote: - Original Message - Hi, The series looks good I think. This one though looks like a bug fix and should probably go to -stable too? Steve. I concur. So can I add your reviewed-by before I push? Bob Peterson Yes, please do, Steve.

Re: [Cluster-devel] [PATCH 7/9] gfs2: Fix marking bitmaps non-full

2018-10-12 Thread Steven Whitehouse
Hi, On 11/10/18 20:20, Andreas Gruenbacher wrote: Reservations in gfs can span multiple gfs2_bitmaps (but they won't span multiple resource groups). When removing a reservation, we want to clear the GBF_FULL flags of all involved gfs2_bitmaps, not just that of the first bitmap.

Re: [Cluster-devel] [PATCH 1/2] GFS2: use schedule timeout in find insert glock

2018-10-09 Thread Steven Whitehouse
somewhere, Steve. -Original Message- From: Tim Smith Sent: 08 October 2018 14:27 To: Steven Whitehouse Cc: Mark Syms ; cluster-devel@redhat.com; Ross Lagerwall Subject: Re: [Cluster-devel] [PATCH 1/2] GFS2: use schedule timeout in find insert glock On Monday, 8 October 2018 14:13

Re: [Cluster-devel] [PATCH 02/11] gfs2: Move rs_{sizehint, rgd_gh} fields into the inode

2018-10-08 Thread Steven Whitehouse
Hi, On 05/10/18 20:18, Andreas Gruenbacher wrote: Move the rs_sizehint and rs_rgd_gh fields from struct gfs2_blkreserv into the inode: they are more closely related to the inode than to a particular reservation. Yes, that makes sense I think - these fields have moved around a bit during the

Re: [Cluster-devel] [PATCH 11/11] gfs2: Add local resource group locking

2018-10-08 Thread Steven Whitehouse
Hi, On 05/10/18 20:18, Andreas Gruenbacher wrote: From: Bob Peterson Prepare for treating resource group glocks as exclusive among nodes but shared among all tasks running on a node: introduce another layer of node-specific locking that the local tasks can use to coordinate their accesses.

Re: [Cluster-devel] [PATCH 10/11] gfs2: Pass resource group to rgblk_free

2018-10-08 Thread Steven Whitehouse
On 05/10/18 20:18, Andreas Gruenbacher wrote: Function rgblk_free can only deal with one resource group at a time, so pass that resource group is as a parameter. Several of the callers already have the resource group at hand, so we only need additional lookup code in a few places.

Re: [Cluster-devel] [PATCH 07/11] gfs2: Fix marking bitmaps non-full

2018-10-08 Thread Steven Whitehouse
On 05/10/18 20:18, Andreas Gruenbacher wrote: Reservations in gfs can span multiple gfs2_bitmaps (but they won't span multiple resource groups). When removing a reservation, we want to clear the GBF_FULL flags of all involved gfs2_bitmaps, not just that of the first bitmap. This looks like

Re: [Cluster-devel] [PATCH 01/11] gfs2: Always check the result of gfs2_rbm_from_block

2018-10-08 Thread Steven Whitehouse
Hi, On 05/10/18 20:18, Andreas Gruenbacher wrote: When gfs2_rbm_from_block fails, the rbm it returns is undefined, so we always want to make sure gfs2_rbm_from_block has succeeded before looking at the rbm. Signed-off-by: Andreas Gruenbacher --- fs/gfs2/rgrp.c | 7 --- 1 file changed,

Re: [Cluster-devel] [GFS2 PATCH] gfs2: print fsid when rgrp errors are found

2018-10-04 Thread Steven Whitehouse
Hi, Presumably the other calls to pr_warn have the same issue? Perhaps we should just get rid of pr_warn completely unless there are cases where a super block is not available to pass to fs_warn, Steve. On 04/10/18 16:18, Bob Peterson wrote: Hi, This patch allows gfs2_setbit to provide

Re: [Cluster-devel] [PATCH 0/2] GFS2: inplace_reserve performance improvements

2018-09-28 Thread Steven Whitehouse
Hi, On 28/09/18 14:43, Tim Smith wrote: On Friday, 28 September 2018 14:18:59 BST Steven Whitehouse wrote: Hi, On 28/09/18 13:50, Mark Syms wrote: Hi Bon, The patches look quite good and would seem to help in the intra-node congestion case, which our first patch was trying to do. We

Re: [Cluster-devel] [PATCH 0/2] GFS2: inplace_reserve performance improvements

2018-09-28 Thread Steven Whitehouse
Hi, On 28/09/18 13:50, Mark Syms wrote: Hi Bon, The patches look quite good and would seem to help in the intra-node congestion case, which our first patch was trying to do. We haven't tried them yet but I'll pull a build together and try to run it over the weekend. We don't however, see

Re: [Cluster-devel] [GFS2 RFC PATCH 3/3] gfs2: introduce bio_pool to readahead journal to find jhead

2018-09-25 Thread Steven Whitehouse
Hi, On 25/09/18 06:38, Abhi Das wrote: This patch adds a new data structure called bio_pool. This is basically a dynamically allocated array of struct bio* and associated variables to manage this data structure. The array is used in a circular fashion until the entire array has bios that are

Re: [Cluster-devel] [PATCH 0/2] GFS2: inplace_reserve performance improvements

2018-09-20 Thread Steven Whitehouse
Hi, On 20/09/18 18:47, Mark Syms wrote: Thanks for that Bob, we've been watching with interest the changes going in upstream but at the moment we're not really in a position to take advantage of them. Due to hardware vendor support certification requirements XenServer can only very

Re: [Cluster-devel] Sending patches for GFS2

2018-09-20 Thread Steven Whitehouse
Hi, On 20/09/18 14:53, Mark Syms wrote: We have a couple of patches for GFS2 which address some performance issues we’ve observed in our testing. What branch would you like the patches to be based on top off (we have a custom patched build so they’ll need to be realigned first). Thanks,

Re: [Cluster-devel] [GFS2 PATCH 0/4] Speed up journal head lookup

2018-09-07 Thread Steven Whitehouse
Hi, On 06/09/18 18:02, Abhi Das wrote: This is the upstream version of the rhel7 patchset I'd posted earlier for review. It is slightly different in parts owing to some bits already being present and the hash/crc computation code being different due to the updated log header structure.

Re: [Cluster-devel] [GFS2 PATCH] gfs2: don't hold the sd_jindex_spin during recovery

2018-08-20 Thread Steven Whitehouse
Hi, On 17/08/18 16:53, Bob Peterson wrote: Hi, The sd_jindex_spin is used to serialize access to the sd_jindex_list. Before this patch function gfs2_recover_set would hold the spin_lock while recovery is running. Since recovery may take a very long time, other processes needing to use the

Re: [Cluster-devel] RFC: growing files more than 4k at the time while writing

2018-08-16 Thread Steven Whitehouse
if it is faster, Steve. Thanks a lot for your help? Stefano From: Steven Whitehouse Sent: Thursday, August 16, 2018 3:03 PM To: Stefano Panella; cluster-devel@redhat.com; rpete...@redhat.com; agrue...@redhat.com Cc: Edvin Torok; Tim Smith; Mark Syms; Ross

Re: [Cluster-devel] [GFS2 PATCH] gfs2: improve debug information when lvb mismatches are found

2018-08-16 Thread Steven Whitehouse
dump code dump any lvbs as well as the rgrp itself. Yes, that is a good plan. Acked-by: Steven Whitehouse Steve. Signed-off-by: Bob Peterson --- fs/gfs2/rgrp.c | 41 - fs/gfs2/util.c | 3 +++ 2 files changed, 39 insertions(+), 5 deletions(-) diff

Re: [Cluster-devel] RFC: growing files more than 4k at the time while writing

2018-08-16 Thread Steven Whitehouse
Hi, On 16/08/18 13:56, Stefano Panella wrote: Hi, I am looking at gfs2 performance when there is Virtual Machine workload and have some questions: If we have a system where every host is writing sequentially, o_direct, 512k at the time, 20 files or more each host, we can see very high CPU

Re: [Cluster-devel] [GFS2 PATCH] gfs2: Always update the in-core rgrp when the buffer_head is read

2018-08-16 Thread Steven Whitehouse
Hi, On 15/08/18 18:04, Bob Peterson wrote: Hi, Before this patch, function gfs2_rgrp_bh_get would only update the rgrp info from the buffer if the GFS2_RDF_UPTODATE flag was clear. This went back to the days when gfs2 kept rgrp version numbers, and re-read the buffer_heads constantly, not

Re: [Cluster-devel] [GFS2 PATCH] GFS2: Simplify iterative add loop in foreach_descriptor

2018-08-10 Thread Steven Whitehouse
Hi, On 10/08/18 13:13, Andreas Gruenbacher wrote: On 9 August 2018 at 11:35, Steven Whitehouse wrote: Hi, On 08/08/18 19:52, Bob Peterson wrote: Hi, Before this patch, function foreach_descriptor repeatedly called function gfs2_replay_incr_blk which just incremented the value while

  1   2   3   4   5   6   7   8   9   10   >