CEPH filesystem development
 help / color / mirror / Atom feed
* [ceph-client:testing 27/33] fs/ceph/mds_client.c:1570:1: warning: the frame size of 1336 bytes is larger than 1280 bytes
@ 2026-09-07 17:27 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-07 17:27 UTC (permalink / raw)
  To: Alex Markuze; +Cc: oe-kbuild-all, ceph-devel

tree:   https://github.com/ceph/ceph-client.git testing
head:   190736464f4572bfb360fd3747fb827493e02e09
commit: 27901d0a65af9fd24268a3bcbaaee2ec8dc3366d [27/33] ceph: switch MDS request plumbing to struct ceph_journal_info
config: arm-allyesconfig (https://download.01.org/0day-ci/archive/20260908/202609080111.BlLtlFth-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260908/202609080111.BlLtlFth-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609080111.BlLtlFth-lkp@intel.com/

All warnings (new ones prefixed by >>):

   fs/ceph/mds_client.c: In function '__choose_mds':
>> fs/ceph/mds_client.c:1570:1: warning: the frame size of 1336 bytes is larger than 1280 bytes [-Wframe-larger-than=]
    1570 | }
         | ^


vim +1570 fs/ceph/mds_client.c

30c71233a1d4b5 Jeff Layton    2016-12-15  1408  
2f2dc053404feb Sage Weil      2009-10-06  1409  /*
2f2dc053404feb Sage Weil      2009-10-06  1410   * Choose mds to send request to next.  If there is a hint set in the
2f2dc053404feb Sage Weil      2009-10-06  1411   * request (e.g., due to a prior forward hint from the mds), use that.
2f2dc053404feb Sage Weil      2009-10-06  1412   * Otherwise, consult frag tree and/or caps to identify the
2f2dc053404feb Sage Weil      2009-10-06  1413   * appropriate mds.  If all else fails, choose randomly.
2f2dc053404feb Sage Weil      2009-10-06  1414   *
2f2dc053404feb Sage Weil      2009-10-06  1415   * Called under mdsc->mutex.
2f2dc053404feb Sage Weil      2009-10-06  1416   */
2f2dc053404feb Sage Weil      2009-10-06  1417  static int __choose_mds(struct ceph_mds_client *mdsc,
c4853e9776caef Xiubo Li       2019-12-09  1418  			struct ceph_mds_request *req,
c4853e9776caef Xiubo Li       2019-12-09  1419  			bool *random)
2f2dc053404feb Sage Weil      2009-10-06  1420  {
2f2dc053404feb Sage Weil      2009-10-06  1421  	struct inode *inode;
2f2dc053404feb Sage Weil      2009-10-06  1422  	struct ceph_inode_info *ci;
2f2dc053404feb Sage Weil      2009-10-06  1423  	struct ceph_cap *cap;
2f2dc053404feb Sage Weil      2009-10-06  1424  	int mode = req->r_direct_mode;
2f2dc053404feb Sage Weil      2009-10-06  1425  	int mds = -1;
2f2dc053404feb Sage Weil      2009-10-06  1426  	u32 hash = req->r_direct_hash;
bc2de10dc4da50 Jeff Layton    2017-02-01  1427  	bool is_hash = test_bit(CEPH_MDS_R_DIRECT_IS_HASH, &req->r_req_flags);
38d46409c4639a Xiubo Li       2023-06-12  1428  	struct ceph_client *cl = mdsc->fsc->client;
2f2dc053404feb Sage Weil      2009-10-06  1429  
c4853e9776caef Xiubo Li       2019-12-09  1430  	if (random)
c4853e9776caef Xiubo Li       2019-12-09  1431  		*random = false;
c4853e9776caef Xiubo Li       2019-12-09  1432  
2f2dc053404feb Sage Weil      2009-10-06  1433  	/*
2f2dc053404feb Sage Weil      2009-10-06  1434  	 * is there a specific mds we should try?  ignore hint if we have
2f2dc053404feb Sage Weil      2009-10-06  1435  	 * no session and the mds is not up (active or recovering).
2f2dc053404feb Sage Weil      2009-10-06  1436  	 */
2f2dc053404feb Sage Weil      2009-10-06  1437  	if (req->r_resend_mds >= 0 &&
2f2dc053404feb Sage Weil      2009-10-06  1438  	    (__have_session(mdsc, req->r_resend_mds) ||
2f2dc053404feb Sage Weil      2009-10-06  1439  	     ceph_mdsmap_get_state(mdsc->mdsmap, req->r_resend_mds) > 0)) {
27901d0a65af9f Alex Markuze   2026-08-20  1440  		boutc(cl, "using resend_mds mds%d\n", req->r_resend_mds);
2f2dc053404feb Sage Weil      2009-10-06  1441  		return req->r_resend_mds;
2f2dc053404feb Sage Weil      2009-10-06  1442  	}
2f2dc053404feb Sage Weil      2009-10-06  1443  
2f2dc053404feb Sage Weil      2009-10-06  1444  	if (mode == USE_RANDOM_MDS)
2f2dc053404feb Sage Weil      2009-10-06  1445  		goto random;
2f2dc053404feb Sage Weil      2009-10-06  1446  
2f2dc053404feb Sage Weil      2009-10-06  1447  	inode = NULL;
2f2dc053404feb Sage Weil      2009-10-06  1448  	if (req->r_inode) {
5d37ca1480a70f Yan, Zheng     2017-07-26  1449  		if (ceph_snap(req->r_inode) != CEPH_SNAPDIR) {
2f2dc053404feb Sage Weil      2009-10-06  1450  			inode = req->r_inode;
30c71233a1d4b5 Jeff Layton    2016-12-15  1451  			ihold(inode);
5d37ca1480a70f Yan, Zheng     2017-07-26  1452  		} else {
38f340ccdf9ed5 Yan, Zheng     2017-09-22  1453  			/* req->r_dentry is non-null for LSSNAP request */
38f340ccdf9ed5 Yan, Zheng     2017-09-22  1454  			rcu_read_lock();
38f340ccdf9ed5 Yan, Zheng     2017-09-22  1455  			inode = get_nonsnap_parent(req->r_dentry);
38f340ccdf9ed5 Yan, Zheng     2017-09-22  1456  			rcu_read_unlock();
27901d0a65af9f Alex Markuze   2026-08-20  1457  			boutc(cl, "using snapdir's parent %p %llx.%llx\n",
38d46409c4639a Xiubo Li       2023-06-12  1458  			      inode, ceph_vinop(inode));
5d37ca1480a70f Yan, Zheng     2017-07-26  1459  		}
38f340ccdf9ed5 Yan, Zheng     2017-09-22  1460  	} else if (req->r_dentry) {
d79698da32b317 Sage Weil      2011-07-26  1461  		/* ignore race with rename; old or new d_parent is okay */
30c71233a1d4b5 Jeff Layton    2016-12-15  1462  		struct dentry *parent;
30c71233a1d4b5 Jeff Layton    2016-12-15  1463  		struct inode *dir;
eb6bb1c5bdc6e4 Sage Weil      2010-08-16  1464  
30c71233a1d4b5 Jeff Layton    2016-12-15  1465  		rcu_read_lock();
41883ba8ee91af Yan, Zheng     2019-05-23  1466  		parent = READ_ONCE(req->r_dentry->d_parent);
3dd69aabcef3d8 Jeff Layton    2017-01-31  1467  		dir = req->r_parent ? : d_inode_rcu(parent);
30c71233a1d4b5 Jeff Layton    2016-12-15  1468  
30c71233a1d4b5 Jeff Layton    2016-12-15  1469  		if (!dir || dir->i_sb != mdsc->fsc->sb) {
30c71233a1d4b5 Jeff Layton    2016-12-15  1470  			/*  not this fs or parent went negative */
2b0143b5c986be David Howells  2015-03-17  1471  			inode = d_inode(req->r_dentry);
30c71233a1d4b5 Jeff Layton    2016-12-15  1472  			if (inode)
30c71233a1d4b5 Jeff Layton    2016-12-15  1473  				ihold(inode);
ccb36aa1b70369 Max Kellermann 2026-08-24  1474  		} else if (ceph_in_snap(dir)) {
eb6bb1c5bdc6e4 Sage Weil      2010-08-16  1475  			/* direct snapped/virtual snapdir requests
eb6bb1c5bdc6e4 Sage Weil      2010-08-16  1476  			 * based on parent dir inode */
30c71233a1d4b5 Jeff Layton    2016-12-15  1477  			inode = get_nonsnap_parent(parent);
27901d0a65af9f Alex Markuze   2026-08-20  1478  			boutc(cl, "using nonsnap parent %p %llx.%llx\n",
38d46409c4639a Xiubo Li       2023-06-12  1479  			      inode, ceph_vinop(inode));
ca18bede048e95 Yan, Zheng     2013-11-22  1480  		} else {
eb6bb1c5bdc6e4 Sage Weil      2010-08-16  1481  			/* dentry target */
2b0143b5c986be David Howells  2015-03-17  1482  			inode = d_inode(req->r_dentry);
ca18bede048e95 Yan, Zheng     2013-11-22  1483  			if (!inode || mode == USE_AUTH_MDS) {
eb6bb1c5bdc6e4 Sage Weil      2010-08-16  1484  				/* dir + name */
30c71233a1d4b5 Jeff Layton    2016-12-15  1485  				inode = igrab(dir);
e5f86dc377e7ff Sage Weil      2011-07-26  1486  				hash = ceph_dentry_hash(dir, req->r_dentry);
2f2dc053404feb Sage Weil      2009-10-06  1487  				is_hash = true;
30c71233a1d4b5 Jeff Layton    2016-12-15  1488  			} else {
30c71233a1d4b5 Jeff Layton    2016-12-15  1489  				ihold(inode);
2f2dc053404feb Sage Weil      2009-10-06  1490  			}
2f2dc053404feb Sage Weil      2009-10-06  1491  		}
30c71233a1d4b5 Jeff Layton    2016-12-15  1492  		rcu_read_unlock();
ca18bede048e95 Yan, Zheng     2013-11-22  1493  	}
eb6bb1c5bdc6e4 Sage Weil      2010-08-16  1494  
2f2dc053404feb Sage Weil      2009-10-06  1495  	if (!inode)
2f2dc053404feb Sage Weil      2009-10-06  1496  		goto random;
38d46409c4639a Xiubo Li       2023-06-12  1497  
27901d0a65af9f Alex Markuze   2026-08-20  1498  	boutc(cl, "%p %llx.%llx is_hash=%d (0x%x) mode %d\n", inode,
38d46409c4639a Xiubo Li       2023-06-12  1499  	      ceph_vinop(inode), (int)is_hash, hash, mode);
2f2dc053404feb Sage Weil      2009-10-06  1500  	ci = ceph_inode(inode);
2f2dc053404feb Sage Weil      2009-10-06  1501  
2f2dc053404feb Sage Weil      2009-10-06  1502  	if (is_hash && S_ISDIR(inode->i_mode)) {
2f2dc053404feb Sage Weil      2009-10-06  1503  		struct ceph_inode_frag frag;
2f2dc053404feb Sage Weil      2009-10-06  1504  		int found;
2f2dc053404feb Sage Weil      2009-10-06  1505  
2f2dc053404feb Sage Weil      2009-10-06  1506  		ceph_choose_frag(ci, hash, &frag, &found);
2f2dc053404feb Sage Weil      2009-10-06  1507  		if (found) {
2f2dc053404feb Sage Weil      2009-10-06  1508  			if (mode == USE_ANY_MDS && frag.ndist > 0) {
2f2dc053404feb Sage Weil      2009-10-06  1509  				u8 r;
2f2dc053404feb Sage Weil      2009-10-06  1510  
2f2dc053404feb Sage Weil      2009-10-06  1511  				/* choose a random replica */
2f2dc053404feb Sage Weil      2009-10-06  1512  				get_random_bytes(&r, 1);
2f2dc053404feb Sage Weil      2009-10-06  1513  				r %= frag.ndist;
2f2dc053404feb Sage Weil      2009-10-06  1514  				mds = frag.dist[r];
27901d0a65af9f Alex Markuze   2026-08-20  1515  				boutc(cl, "%p %llx.%llx frag %u mds%d (%d/%d)\n",
38d46409c4639a Xiubo Li       2023-06-12  1516  				      inode, ceph_vinop(inode), frag.frag,
38d46409c4639a Xiubo Li       2023-06-12  1517  				      mds, (int)r, frag.ndist);
d66bbd441c08fe Sage Weil      2011-01-21  1518  				if (ceph_mdsmap_get_state(mdsc->mdsmap, mds) >=
5d47648fe95412 Xiubo Li       2019-11-26  1519  				    CEPH_MDS_STATE_ACTIVE &&
5d47648fe95412 Xiubo Li       2019-11-26  1520  				    !ceph_mdsmap_is_laggy(mdsc->mdsmap, mds))
30c71233a1d4b5 Jeff Layton    2016-12-15  1521  					goto out;
2f2dc053404feb Sage Weil      2009-10-06  1522  			}
2f2dc053404feb Sage Weil      2009-10-06  1523  
2f2dc053404feb Sage Weil      2009-10-06  1524  			/* since this file/dir wasn't known to be
2f2dc053404feb Sage Weil      2009-10-06  1525  			 * replicated, then we want to look for the
2f2dc053404feb Sage Weil      2009-10-06  1526  			 * authoritative mds. */
2f2dc053404feb Sage Weil      2009-10-06  1527  			if (frag.mds >= 0) {
2f2dc053404feb Sage Weil      2009-10-06  1528  				/* choose auth mds */
2f2dc053404feb Sage Weil      2009-10-06  1529  				mds = frag.mds;
27901d0a65af9f Alex Markuze   2026-08-20  1530  				boutc(cl, "%p %llx.%llx frag %u mds%d (auth)\n",
38d46409c4639a Xiubo Li       2023-06-12  1531  				      inode, ceph_vinop(inode), frag.frag, mds);
d66bbd441c08fe Sage Weil      2011-01-21  1532  				if (ceph_mdsmap_get_state(mdsc->mdsmap, mds) >=
5d47648fe95412 Xiubo Li       2019-11-26  1533  				    CEPH_MDS_STATE_ACTIVE) {
224c7b6778fe08 Yanhu Cao      2020-07-31  1534  					if (!ceph_mdsmap_is_laggy(mdsc->mdsmap,
5d47648fe95412 Xiubo Li       2019-11-26  1535  								  mds))
30c71233a1d4b5 Jeff Layton    2016-12-15  1536  						goto out;
2f2dc053404feb Sage Weil      2009-10-06  1537  				}
2f2dc053404feb Sage Weil      2009-10-06  1538  			}
5d47648fe95412 Xiubo Li       2019-11-26  1539  			mode = USE_AUTH_MDS;
5d47648fe95412 Xiubo Li       2019-11-26  1540  		}
2f2dc053404feb Sage Weil      2009-10-06  1541  	}
2f2dc053404feb Sage Weil      2009-10-06  1542  
be655596b3de58 Sage Weil      2011-11-30  1543  	spin_lock(&ci->i_ceph_lock);
2f2dc053404feb Sage Weil      2009-10-06  1544  	cap = NULL;
2f2dc053404feb Sage Weil      2009-10-06  1545  	if (mode == USE_AUTH_MDS)
2f2dc053404feb Sage Weil      2009-10-06  1546  		cap = ci->i_auth_cap;
2f2dc053404feb Sage Weil      2009-10-06  1547  	if (!cap && !RB_EMPTY_ROOT(&ci->i_caps))
2f2dc053404feb Sage Weil      2009-10-06  1548  		cap = rb_entry(rb_first(&ci->i_caps), struct ceph_cap, ci_node);
2f2dc053404feb Sage Weil      2009-10-06  1549  	if (!cap) {
be655596b3de58 Sage Weil      2011-11-30  1550  		spin_unlock(&ci->i_ceph_lock);
23c2c76ead541b Jeff Layton    2021-06-04  1551  		iput(inode);
2f2dc053404feb Sage Weil      2009-10-06  1552  		goto random;
2f2dc053404feb Sage Weil      2009-10-06  1553  	}
2f2dc053404feb Sage Weil      2009-10-06  1554  	mds = cap->session->s_mds;
27901d0a65af9f Alex Markuze   2026-08-20  1555  	boutc(cl, "%p %llx.%llx mds%d (%scap %p)\n", inode,
38d46409c4639a Xiubo Li       2023-06-12  1556  	      ceph_vinop(inode), mds,
2f2dc053404feb Sage Weil      2009-10-06  1557  	      cap == ci->i_auth_cap ? "auth " : "", cap);
be655596b3de58 Sage Weil      2011-11-30  1558  	spin_unlock(&ci->i_ceph_lock);
30c71233a1d4b5 Jeff Layton    2016-12-15  1559  out:
23c2c76ead541b Jeff Layton    2021-06-04  1560  	iput(inode);
2f2dc053404feb Sage Weil      2009-10-06  1561  	return mds;
2f2dc053404feb Sage Weil      2009-10-06  1562  
2f2dc053404feb Sage Weil      2009-10-06  1563  random:
c4853e9776caef Xiubo Li       2019-12-09  1564  	if (random)
c4853e9776caef Xiubo Li       2019-12-09  1565  		*random = true;
c4853e9776caef Xiubo Li       2019-12-09  1566  
2f2dc053404feb Sage Weil      2009-10-06  1567  	mds = ceph_mdsmap_get_random_mds(mdsc->mdsmap);
27901d0a65af9f Alex Markuze   2026-08-20  1568  	boutc(cl, "chose random mds%d\n", mds);
2f2dc053404feb Sage Weil      2009-10-06  1569  	return mds;
2f2dc053404feb Sage Weil      2009-10-06 @1570  }
2f2dc053404feb Sage Weil      2009-10-06  1571  

:::::: The code at line 1570 was first introduced by commit
:::::: 2f2dc053404febedc9c273452d9d518fb31fde72 ceph: MDS client

:::::: TO: Sage Weil <sage@newdream.net>
:::::: CC: Sage Weil <sage@newdream.net>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

only message in thread, other threads:[~2026-09-07 17:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-07 17:27 [ceph-client:testing 27/33] fs/ceph/mds_client.c:1570:1: warning: the frame size of 1336 bytes is larger than 1280 bytes kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox