]> 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)
committerTony Hutter <hutter2@llnl.gov>
Tue, 30 Jan 2018 16:27:31 +0000 (10:27 -0600)
commit8d82a19def540bba43c8c7597142ff53f7a0b7e5
tree7e8c14ea864a460cb3ac84e3639b332b5d124120
parentc2aacf20872856559972a27f7c3f9b4a6fe10cd2
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