]> granicus.if.org Git - zfs/commit
Call commit callbacks from the tail of the list
authorlidongyang <gnaygnodil@gmail.com>
Fri, 22 Dec 2017 18:19:51 +0000 (05:19 +1100)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 22 Dec 2017 18:19:51 +0000 (10:19 -0800)
commit823d48bfb182137c53b9432498f1f0564eaa8bfc
tree35f32420b30cdaad0fea38ec0ccc2dd0abbe52a4
parent44b61ea506212c287333e03d2cf8933216810800
Call commit callbacks from the tail of the list

Our zfs backed Lustre MDT had soft lockups while under heavy metadata
workloads while handling transaction callbacks from osd_zfs.

The problem is zfs is not taking advantage of the fast path in
Lustre's trans callback handling, where Lustre will skip the calls
to ptlrpc_commit_replies() when it already saw a higher transaction
number.

This patch corrects this, it also has a positive impact on metadata
performance on Lustre with osd_zfs, plus some cleanup in the headers.

A similar issue for ext4/ldiskfs is described on:
https://jira.hpdd.intel.com/browse/LU-6527

Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Li Dongyang <dongyang.li@anu.edu.au>
Closes #6986
include/sys/dmu.h
include/sys/dmu_tx.h
module/zfs/dmu_tx.c