Hi all, This series (which is RFC for obvious reasons) fell out of recent discussion on Dave's CIL throttling work[1] over the raciness of the lockless log reservation algorithm. I was originally exploring some improved debug mode checks when I eventually determined that would be pointless due to the fact that with small enough logs, grant tail overrun conditions become prevalent. This is currently suppressed by the XLOG_TAIL_WARN flag, which is removed in patch 1 simply for experimentation and demonstration purposes. These warnings would likely be mitigated some by threshold tracking improvements to the warning itself, but the warnings were continuous enough that didn't seem a useful approach. Patch 2 does some minor refactoring and patch 3 ties grant space update failures into the grant head check mechanism. This has only seen limited testing to confirm that tail overruns are significantly reduced on smaller logs (without noticeable performance penalty) and that the newly added retry events are nonexistent on filesystems with normal/default sized logs. The caveat is potential change in ordering of transactions in some cases, but it's not clear that's a problem given the loose enough nature of the current algorithm with respect to the (limited) scope of transactions impacted by this type of change. We could also look into whether something like adding retried checks to the head of the list vs the tail would preserve group ordering, etc. Anyways, thoughts on something like this? Brian [1] https://lore.kernel.org/linux-xfs/20191004022755.GY16973@xxxxxxxxxxxxxxxxxxx/ Brian Foster (3): xfs: temporarily bypass oneshot grant tail verification xfs: fold grant space update into head check function xfs: recheck free reservation on grant head update contention fs/xfs/xfs_log.c | 58 +++++++++++++++++++++++++++++++++------------- fs/xfs/xfs_trace.h | 1 + 2 files changed, 43 insertions(+), 16 deletions(-) -- 2.20.1