All of lore.kernel.org
 help / color / mirror / Atom feed
* fs/xfs/xfs_log_cil.c:1065:9: sparse: sparse: context imbalance in 'xfs_log_commit_cil' - unexpected unlock
@ 2020-06-01 14:34 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-06-01 14:34 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 7808 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: "Dave, Chinner," <dchinner@redhat.com>
CC: "Darrick J. Wong" <darrick.wong@oracle.com>
CC: Allison Collins <allison.henderson@oracle.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   3d77e6a8804abcc0504c904bd6e5cdf3a5cf8162
commit: 0e7ab7efe77451cba4cbecb6c9f5ef83cf32b36b xfs: Throttle commits on delayed background CIL push
date:   9 weeks ago
:::::: branch date: 15 hours ago
:::::: commit date: 9 weeks ago
config: ia64-randconfig-s032-20200601 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-243-gc100a7ab-dirty
        git checkout 0e7ab7efe77451cba4cbecb6c9f5ef83cf32b36b
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=ia64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)

   fs/xfs/xfs_log_cil.c:899:1: sparse: sparse: context imbalance in 'xlog_cil_push_background' - wrong count at exit
>> fs/xfs/xfs_log_cil.c:1065:9: sparse: sparse: context imbalance in 'xfs_log_commit_cil' - unexpected unlock

# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0e7ab7efe77451cba4cbecb6c9f5ef83cf32b36b
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git remote update linus
git checkout 0e7ab7efe77451cba4cbecb6c9f5ef83cf32b36b
vim +/xfs_log_commit_cil +1065 fs/xfs/xfs_log_cil.c

2c6e24ce1aa6b3 Dave Chinner      2013-10-15   997  
a44f13edf0ebb4 Dave Chinner      2010-08-24   998  /*
a44f13edf0ebb4 Dave Chinner      2010-08-24   999   * Commit a transaction with the given vector to the Committed Item List.
a44f13edf0ebb4 Dave Chinner      2010-08-24  1000   *
a44f13edf0ebb4 Dave Chinner      2010-08-24  1001   * To do this, we need to format the item, pin it in memory if required and
a44f13edf0ebb4 Dave Chinner      2010-08-24  1002   * account for the space used by the transaction. Once we have done that we
a44f13edf0ebb4 Dave Chinner      2010-08-24  1003   * need to release the unused reservation for the transaction, attach the
a44f13edf0ebb4 Dave Chinner      2010-08-24  1004   * transaction to the checkpoint context so we carry the busy extents through
a44f13edf0ebb4 Dave Chinner      2010-08-24  1005   * to checkpoint completion, and then unlock all the items in the transaction.
a44f13edf0ebb4 Dave Chinner      2010-08-24  1006   *
a44f13edf0ebb4 Dave Chinner      2010-08-24  1007   * Called with the context lock already held in read mode to lock out
a44f13edf0ebb4 Dave Chinner      2010-08-24  1008   * background commit, returns without it held once background commits are
a44f13edf0ebb4 Dave Chinner      2010-08-24  1009   * allowed again.
a44f13edf0ebb4 Dave Chinner      2010-08-24  1010   */
c6f9726444c8f8 Jie Liu           2014-02-07  1011  void
a44f13edf0ebb4 Dave Chinner      2010-08-24  1012  xfs_log_commit_cil(
a44f13edf0ebb4 Dave Chinner      2010-08-24  1013  	struct xfs_mount	*mp,
a44f13edf0ebb4 Dave Chinner      2010-08-24  1014  	struct xfs_trans	*tp,
a44f13edf0ebb4 Dave Chinner      2010-08-24  1015  	xfs_lsn_t		*commit_lsn,
70393313dd0b26 Christoph Hellwig 2015-06-04  1016  	bool			regrant)
a44f13edf0ebb4 Dave Chinner      2010-08-24  1017  {
f7bdf03a99efc0 Mark Tinguely     2012-06-14  1018  	struct xlog		*log = mp->m_log;
991aaf65ff0add Dave Chinner      2013-08-12  1019  	struct xfs_cil		*cil = log->l_cilp;
195cd83d1b8835 Christoph Hellwig 2019-06-28  1020  	struct xfs_log_item	*lip, *next;
f990fc5ad13b8f Shan Hai          2017-06-14  1021  	xfs_lsn_t		xc_commit_lsn;
a44f13edf0ebb4 Dave Chinner      2010-08-24  1022  
b1c5ebb21301fc Dave Chinner      2016-07-22  1023  	/*
b1c5ebb21301fc Dave Chinner      2016-07-22  1024  	 * Do all necessary memory allocation before we lock the CIL.
b1c5ebb21301fc Dave Chinner      2016-07-22  1025  	 * This ensures the allocation does not deadlock with a CIL
b1c5ebb21301fc Dave Chinner      2016-07-22  1026  	 * push in memory reclaim (e.g. from kswapd).
b1c5ebb21301fc Dave Chinner      2016-07-22  1027  	 */
b1c5ebb21301fc Dave Chinner      2016-07-22  1028  	xlog_cil_alloc_shadow_bufs(log, tp);
b1c5ebb21301fc Dave Chinner      2016-07-22  1029  
f5baac354db8b6 Dave Chinner      2013-08-12  1030  	/* lock out background commit */
991aaf65ff0add Dave Chinner      2013-08-12  1031  	down_read(&cil->xc_ctx_lock);
d1583a3833290a Dave Chinner      2010-09-24  1032  
991aaf65ff0add Dave Chinner      2013-08-12  1033  	xlog_cil_insert_items(log, tp);
a44f13edf0ebb4 Dave Chinner      2010-08-24  1034  
f990fc5ad13b8f Shan Hai          2017-06-14  1035  	xc_commit_lsn = cil->xc_ctx->sequence;
991aaf65ff0add Dave Chinner      2013-08-12  1036  	if (commit_lsn)
f990fc5ad13b8f Shan Hai          2017-06-14  1037  		*commit_lsn = xc_commit_lsn;
a44f13edf0ebb4 Dave Chinner      2010-08-24  1038  
8b41e3f98e6ca1 Christoph Hellwig 2020-03-25  1039  	if (regrant && !XLOG_FORCED_SHUTDOWN(log))
8b41e3f98e6ca1 Christoph Hellwig 2020-03-25  1040  		xfs_log_ticket_regrant(log, tp->t_ticket);
8b41e3f98e6ca1 Christoph Hellwig 2020-03-25  1041  	else
8b41e3f98e6ca1 Christoph Hellwig 2020-03-25  1042  		xfs_log_ticket_ungrant(log, tp->t_ticket);
ba18781b91569a Dave Chinner      2018-05-09  1043  	tp->t_ticket = NULL;
a44f13edf0ebb4 Dave Chinner      2010-08-24  1044  	xfs_trans_unreserve_and_mod_sb(tp);
a44f13edf0ebb4 Dave Chinner      2010-08-24  1045  
a44f13edf0ebb4 Dave Chinner      2010-08-24  1046  	/*
a44f13edf0ebb4 Dave Chinner      2010-08-24  1047  	 * Once all the items of the transaction have been copied to the CIL,
195cd83d1b8835 Christoph Hellwig 2019-06-28  1048  	 * the items can be unlocked and possibly freed.
a44f13edf0ebb4 Dave Chinner      2010-08-24  1049  	 *
a44f13edf0ebb4 Dave Chinner      2010-08-24  1050  	 * This needs to be done before we drop the CIL context lock because we
a44f13edf0ebb4 Dave Chinner      2010-08-24  1051  	 * have to update state in the log items and unlock them before they go
a44f13edf0ebb4 Dave Chinner      2010-08-24  1052  	 * to disk. If we don't, then the CIL checkpoint can race with us and
a44f13edf0ebb4 Dave Chinner      2010-08-24  1053  	 * we can run checkpoint completion before we've updated and unlocked
a44f13edf0ebb4 Dave Chinner      2010-08-24  1054  	 * the log items. This affects (at least) processing of stale buffers,
a44f13edf0ebb4 Dave Chinner      2010-08-24  1055  	 * inodes and EFIs.
a44f13edf0ebb4 Dave Chinner      2010-08-24  1056  	 */
195cd83d1b8835 Christoph Hellwig 2019-06-28  1057  	trace_xfs_trans_commit_items(tp, _RET_IP_);
195cd83d1b8835 Christoph Hellwig 2019-06-28  1058  	list_for_each_entry_safe(lip, next, &tp->t_items, li_trans) {
195cd83d1b8835 Christoph Hellwig 2019-06-28  1059  		xfs_trans_del_item(lip);
195cd83d1b8835 Christoph Hellwig 2019-06-28  1060  		if (lip->li_ops->iop_committing)
195cd83d1b8835 Christoph Hellwig 2019-06-28  1061  			lip->li_ops->iop_committing(lip, xc_commit_lsn);
195cd83d1b8835 Christoph Hellwig 2019-06-28  1062  	}
a44f13edf0ebb4 Dave Chinner      2010-08-24  1063  
0e7ab7efe77451 Dave Chinner      2020-03-24  1064  	/* xlog_cil_push_background() releases cil->xc_ctx_lock */
0e7ab7efe77451 Dave Chinner      2020-03-24 @1065  	xlog_cil_push_background(log);
a44f13edf0ebb4 Dave Chinner      2010-08-24  1066  }
a44f13edf0ebb4 Dave Chinner      2010-08-24  1067  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 27925 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-06-01 14:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-01 14:34 fs/xfs/xfs_log_cil.c:1065:9: sparse: sparse: context imbalance in 'xfs_log_commit_cil' - unexpected unlock kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.