Re: [5.19 cycle] Planning and goals

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 11, 2022 at 01:59:35PM +1000, Dave Chinner wrote:
> On Mon, Apr 11, 2022 at 11:50:23AM +1000, Dave Chinner wrote:
> > On Thu, Apr 07, 2022 at 03:40:08PM -0700, Alli wrote:
> > > On Thu, 2022-04-07 at 15:49 +1000, Dave Chinner wrote:
> > > > On Wed, Apr 06, 2022 at 08:11:06PM -0700, Darrick J. Wong wrote:
> > > > > On Tue, Apr 05, 2022 at 12:03:12PM +1000, Dave Chinner wrote:
> > > > > > - Logged attributes V28 (Allison)
> > > > > > 	- I haven't looked at this since V24, so I'm not sure what
> > > > > > 	  the current status is. I will do that discovery later in
> > > > > > 	  the week.
> > > > > > 	- Merge criteria and status:
> > > > > > 		- review complete: Not sure
> > > So far each patch in v29 has at least 2 rvbs I think
> > 
> > OK.
> > 
> > > > > > 		- no regressions when not enabled: v24 was OK
> > > > > > 		- no major regressions when enabled: v24 had issues
> > > > > > 	- Open questions:
> > > > > > 		- not sure what review will uncover
> > > > > > 		- don't know what problems testing will show
> > > > > > 		- what other log fixes does it depend on?
> > > If it goes on top of whiteouts, it will need some modifications to
> > > follow the new log item changes that the whiteout set makes.
> > > 
> > > Alternately, if the white out set goes in after the larp set, then it
> > > will need to apply the new log item changes to xfs_attr_item.c as well
> > 
> > I figured as much, thanks for confirming!
> 
> Ok, so I've just gone through the process of merging the two
> branches to see where we stand. The modifications to the log code
> that are needed for the larp code - changes to log iovec processing
> and padding - are out of date in the LARP v29 patchset.
> 
> That is, the versions that are in the intent whiteout patchset are
> much more sophisticated and cleanly separated. The version of the
> "avoid extra transactions when no intents" patch in the LARP v29
> series is really only looking at whether the transaction is dirty,
> not whether there are intents in the transactions, which is what we
> really need to know when deciding whether to commit the transaction
> or not.
> 
> There are also a bunch of log iovec changes buried in patch 4 of the
> LARP patchset which is labelled as "infrastructure". Those changes
> are cleanly split out as patch 1 in the intent whiteout patchset and
> provide the xlog_calc_vec_len() function that the LARP code needs.
> 
> As such, the RVBs on the patches in the LARPv29 series don't carry
> over to the patches in the intent whiteout series - they are just
> too different for that to occur.
> 
> The additional changes needed to support intent whiteouts are
> relatively straight forward for the attri/attrd items, so at this
> point I'd much prefer that the two patchsets are ordered "intent
> whiteouts" then "LARP".
> 
> I've pushed the compose I just processed to get most of the pending
> patchsets as they stand into topic branches and onto test machines
> out to kernel.org. Have a look at:
> 
> git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs.git xfs-5.19-compose
> 
> to see how I merged everything and maybe give it a run through your
> test cycle to see if there's anything I broke when LARP is enabled....

generic/642 producded this splat:

 XFS: Assertion failed: !list_empty(&cil->xc_cil), file: fs/xfs/xfs_log_cil.c, line: 1274
 ------------[ cut here ]------------
 kernel BUG at fs/xfs/xfs_message.c:102!
 invalid opcode: 0000 [#1] PREEMPT SMP
 CPU: 1 PID: 2187772 Comm: fsstress Not tainted 5.18.0-rc2-dgc+ #1108
 Call Trace:
  <TASK>
  xlog_cil_commit+0xa5a/0xad0
  __xfs_trans_commit+0xb8/0x330
  xfs_trans_commit+0x10/0x20
  xfs_attr_set+0x3e2/0x4c0
  xfs_xattr_set+0x8d/0xe0
  __vfs_setxattr+0x6b/0x90
  __vfs_setxattr_noperm+0x76/0x220
  __vfs_setxattr_locked+0xdf/0x100
  vfs_setxattr+0x94/0x170
  setxattr+0x110/0x200
  ? __might_fault+0x22/0x30
  ? strncpy_from_user+0x23/0x170
  ? getname_flags.part.0+0x4c/0x1b0
  ? kmem_cache_free+0x1fc/0x380
  ? __might_sleep+0x43/0x70
  path_setxattr+0xbf/0xe0
  __x64_sys_setxattr+0x2b/0x30
  do_syscall_64+0x35/0x80
  entry_SYSCALL_64_after_hwframe+0x44/0xae

Which implies a dirty transaction with nothing in it at the end of
a run through xfs_attr_set_iter() without LARP enabled. It raced
with a CIL push, so when the empty dirty transaction tries to push
the CIL, it assert fails because the CIL is empty....

I don't know how this happens yet, but there are no intents involved
here so it doesn't appear to have anything to do with intent logging
or intent whiteouts at this point.

I'll need to reproduce it to get more info about it...

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux