From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 918CCC433EF for ; Sat, 14 May 2022 16:24:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B781E6B0073; Sat, 14 May 2022 12:24:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B29026B0075; Sat, 14 May 2022 12:24:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9C8D36B0078; Sat, 14 May 2022 12:24:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 895B86B0073 for ; Sat, 14 May 2022 12:24:33 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 50A6A31308 for ; Sat, 14 May 2022 16:24:33 +0000 (UTC) X-FDA: 79464871626.30.4DB43E6 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by imf04.hostedemail.com (Postfix) with ESMTP id 2778C400D0 for ; Sat, 14 May 2022 16:24:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652545470; x=1684081470; h=date:from:to:cc:subject:message-id:mime-version; bh=hAZVroACW4ZY6pzQ3LUOdoKxJ25yCivehUbnsr1/0kE=; b=JRzu+UMjJcj+p5bpMVBeYhEOgFqsdGfT2pXkXSuWigJYtD00rzJHPrL6 cGHiDoJbErhNhp+y+66O5zsk0N9HJdHQ5ldAfaewIvnb5haNvYK13zhdj ZGT3zf//BpZrvF4qrdujxIonbkOzisQ3xL+AE4HcgeFkPk4BosoLmOJ8X iHt4m86z5Amrz3/bio3ChoRQ9220hXLQTHAvzDbt+j0qLsbqAJQNCM8Za +RQt8z1PN2n6WJu+sNDfDXVocQLMfc9oxVVJQyJI5to65U01j2fGPtv/w mMp4nXqoNUk3yUM+eN7FFV2DCfdzn0fCU0B1nn3BuhE/8DCWWFdenrFzf g==; X-IronPort-AV: E=McAfee;i="6400,9594,10347"; a="270468245" X-IronPort-AV: E=Sophos;i="5.91,226,1647327600"; d="scan'208";a="270468245" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 May 2022 09:24:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,226,1647327600"; d="scan'208";a="740595778" Received: from lkp-server01.sh.intel.com (HELO d1462bc4b09b) ([10.239.97.150]) by orsmga005.jf.intel.com with ESMTP; 14 May 2022 09:24:22 -0700 Received: from kbuild by d1462bc4b09b with local (Exim 4.95) (envelope-from ) id 1npuZ3-0000pF-LU; Sat, 14 May 2022 16:24:21 +0000 Date: Sun, 15 May 2022 00:23:46 +0800 From: kernel test robot To: "Matthew Wilcox (Oracle)" Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org, Linux Memory Management List Subject: [linux-next:master 9995/11651] fs/buffer.c:2254:5: warning: stack frame size (2144) exceeds limit (1024) in 'block_read_full_folio' Message-ID: <202205150051.3RzuooAG-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 2778C400D0 X-Stat-Signature: kmfu59mkbt4zg744myspwxgzgaxkxcip Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=JRzu+UMj; dmarc=pass (policy=none) header.from=intel.com; spf=none (imf04.hostedemail.com: domain of lkp@intel.com has no SPF policy when checking 134.134.136.65) smtp.mailfrom=lkp@intel.com X-Rspam-User: X-HE-Tag: 1652545458-714025 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 1e1b28b936aed946122b4e0991e7144fdbbfd77e commit: 2c69e2057962b6bd76d72446453862eb59325b49 [9995/11651] fs: Convert block_read_full_page() to block_read_full_folio() config: hexagon-randconfig-r041-20220513 (https://download.01.org/0day-ci/archive/20220515/202205150051.3RzuooAG-lkp@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 38189438b69ca27b4c6ce707c52dbd217583d046) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=2c69e2057962b6bd76d72446453862eb59325b49 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 2c69e2057962b6bd76d72446453862eb59325b49 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> fs/buffer.c:2254:5: warning: stack frame size (2144) exceeds limit (1024) in 'block_read_full_folio' [-Wframe-larger-than] int block_read_full_folio(struct folio *folio, get_block_t *get_block) ^ 1 warning generated. vim +/block_read_full_folio +2254 fs/buffer.c 2246 2247 /* 2248 * Generic "read_folio" function for block devices that have the normal 2249 * get_block functionality. This is most of the block device filesystems. 2250 * Reads the folio asynchronously --- the unlock_buffer() and 2251 * set/clear_buffer_uptodate() functions propagate buffer state into the 2252 * folio once IO has completed. 2253 */ > 2254 int block_read_full_folio(struct folio *folio, get_block_t *get_block) 2255 { 2256 struct inode *inode = folio->mapping->host; 2257 sector_t iblock, lblock; 2258 struct buffer_head *bh, *head, *arr[MAX_BUF_PER_PAGE]; 2259 unsigned int blocksize, bbits; 2260 int nr, i; 2261 int fully_mapped = 1; 2262 2263 VM_BUG_ON_FOLIO(folio_test_large(folio), folio); 2264 2265 head = create_page_buffers(&folio->page, inode, 0); 2266 blocksize = head->b_size; 2267 bbits = block_size_bits(blocksize); 2268 2269 iblock = (sector_t)folio->index << (PAGE_SHIFT - bbits); 2270 lblock = (i_size_read(inode)+blocksize-1) >> bbits; 2271 bh = head; 2272 nr = 0; 2273 i = 0; 2274 2275 do { 2276 if (buffer_uptodate(bh)) 2277 continue; 2278 2279 if (!buffer_mapped(bh)) { 2280 int err = 0; 2281 2282 fully_mapped = 0; 2283 if (iblock < lblock) { 2284 WARN_ON(bh->b_size != blocksize); 2285 err = get_block(inode, iblock, bh, 0); 2286 if (err) 2287 folio_set_error(folio); 2288 } 2289 if (!buffer_mapped(bh)) { 2290 folio_zero_range(folio, i * blocksize, 2291 blocksize); 2292 if (!err) 2293 set_buffer_uptodate(bh); 2294 continue; 2295 } 2296 /* 2297 * get_block() might have updated the buffer 2298 * synchronously 2299 */ 2300 if (buffer_uptodate(bh)) 2301 continue; 2302 } 2303 arr[nr++] = bh; 2304 } while (i++, iblock++, (bh = bh->b_this_page) != head); 2305 2306 if (fully_mapped) 2307 folio_set_mappedtodisk(folio); 2308 2309 if (!nr) { 2310 /* 2311 * All buffers are uptodate - we can set the folio uptodate 2312 * as well. But not if get_block() returned an error. 2313 */ 2314 if (!folio_test_error(folio)) 2315 folio_mark_uptodate(folio); 2316 folio_unlock(folio); 2317 return 0; 2318 } 2319 2320 /* Stage two: lock the buffers */ 2321 for (i = 0; i < nr; i++) { 2322 bh = arr[i]; 2323 lock_buffer(bh); 2324 mark_buffer_async_read(bh); 2325 } 2326 2327 /* 2328 * Stage 3: start the IO. Check for uptodateness 2329 * inside the buffer lock in case another process reading 2330 * the underlying blockdev brought it uptodate (the sct fix). 2331 */ 2332 for (i = 0; i < nr; i++) { 2333 bh = arr[i]; 2334 if (buffer_uptodate(bh)) 2335 end_buffer_async_read(bh, 1); 2336 else 2337 submit_bh(REQ_OP_READ, 0, bh); 2338 } 2339 return 0; 2340 } 2341 EXPORT_SYMBOL(block_read_full_folio); 2342 -- 0-DAY CI Kernel Test Service https://01.org/lkp