All of lore.kernel.org
 help / color / mirror / Atom feed
* fs/f2fs/gc.c:29:12: warning: stack frame size of 2080 bytes in function 'gc_thread_func'
@ 2021-04-17 17:04 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-04-17 17:04 UTC (permalink / raw)
  To: Kees Cook
  Cc: kbuild-all, clang-built-linux, linux-kernel, Nathan Chancellor,
	Andrew Morton, Linux Memory Management List

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9cdbf6467424045617cd6e79dcaad06bb8efa31c
commit: cdf8a76fda4ae3b53c5a09e5a8c79e27b7b65d68 ubsan: move cc-option tests into Kconfig
date:   4 months ago
config: powerpc-randconfig-r011-20210417 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f549176ad976caa3e19edd036df9a7e12770af7c)
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
        # install powerpc cross compiling tool for clang build
        # apt-get install binutils-powerpc-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cdf8a76fda4ae3b53c5a09e5a8c79e27b7b65d68
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout cdf8a76fda4ae3b53c5a09e5a8c79e27b7b65d68
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc 

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

All warnings (new ones prefixed by >>):

   arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:55:1: note: expanded from here
   __do_insw
   ^
   arch/powerpc/include/asm/io.h:542:56: note: expanded from macro '__do_insw'
   #define __do_insw(p, b, n)      readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
                                          ~~~~~~~~~~~~~~~~~~~~~^
   In file included from fs/f2fs/gc.c:10:
   In file included from include/linux/backing-dev.h:15:
   In file included from include/linux/blkdev.h:14:
   In file included from include/linux/pagemap.h:11:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:10:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:604:
   arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:57:1: note: expanded from here
   __do_insl
   ^
   arch/powerpc/include/asm/io.h:543:56: note: expanded from macro '__do_insl'
   #define __do_insl(p, b, n)      readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
                                          ~~~~~~~~~~~~~~~~~~~~~^
   In file included from fs/f2fs/gc.c:10:
   In file included from include/linux/backing-dev.h:15:
   In file included from include/linux/blkdev.h:14:
   In file included from include/linux/pagemap.h:11:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:10:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:604:
   arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:59:1: note: expanded from here
   __do_outsb
   ^
   arch/powerpc/include/asm/io.h:544:58: note: expanded from macro '__do_outsb'
   #define __do_outsb(p, b, n)     writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
   In file included from fs/f2fs/gc.c:10:
   In file included from include/linux/backing-dev.h:15:
   In file included from include/linux/blkdev.h:14:
   In file included from include/linux/pagemap.h:11:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:10:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:604:
   arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:61:1: note: expanded from here
   __do_outsw
   ^
   arch/powerpc/include/asm/io.h:545:58: note: expanded from macro '__do_outsw'
   #define __do_outsw(p, b, n)     writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
   In file included from fs/f2fs/gc.c:10:
   In file included from include/linux/backing-dev.h:15:
   In file included from include/linux/blkdev.h:14:
   In file included from include/linux/pagemap.h:11:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:10:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:604:
   arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:63:1: note: expanded from here
   __do_outsl
   ^
   arch/powerpc/include/asm/io.h:546:58: note: expanded from macro '__do_outsl'
   #define __do_outsl(p, b, n)     writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
>> fs/f2fs/gc.c:29:12: warning: stack frame size of 2080 bytes in function 'gc_thread_func' [-Wframe-larger-than=]
   static int gc_thread_func(void *data)
              ^
   fs/f2fs/gc.c:1358:12: warning: stack frame size of 2240 bytes in function 'gc_data_segment' [-Wframe-larger-than=]
   static int gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
              ^
   fs/f2fs/gc.c:622:12: warning: stack frame size of 3680 bytes in function 'get_victim_by_default' [-Wframe-larger-than=]
   static int get_victim_by_default(struct f2fs_sb_info *sbi,
              ^
   15 warnings generated.


vim +/gc_thread_func +29 fs/f2fs/gc.c

093749e296e29a Chao Yu          2020-08-04   25  
da52f8ade40b03 Jack Qiu         2020-06-18   26  static unsigned int count_bits(const unsigned long *addr,
da52f8ade40b03 Jack Qiu         2020-06-18   27  				unsigned int offset, unsigned int len);
da52f8ade40b03 Jack Qiu         2020-06-18   28  
7bc0900347e069 Jaegeuk Kim      2012-11-02  @29  static int gc_thread_func(void *data)
7bc0900347e069 Jaegeuk Kim      2012-11-02   30  {
7bc0900347e069 Jaegeuk Kim      2012-11-02   31  	struct f2fs_sb_info *sbi = data;
b59d0bae6ca30c Namjae Jeon      2013-08-04   32  	struct f2fs_gc_kthread *gc_th = sbi->gc_thread;
7bc0900347e069 Jaegeuk Kim      2012-11-02   33  	wait_queue_head_t *wq = &sbi->gc_thread->gc_wait_queue_head;
b8c502b81e3f89 Chao Yu          2017-08-07   34  	unsigned int wait_ms;
7bc0900347e069 Jaegeuk Kim      2012-11-02   35  
b59d0bae6ca30c Namjae Jeon      2013-08-04   36  	wait_ms = gc_th->min_sleep_time;
7bc0900347e069 Jaegeuk Kim      2012-11-02   37  
1d7be2708277ed Jaegeuk Kim      2017-05-17   38  	set_freezable();
7bc0900347e069 Jaegeuk Kim      2012-11-02   39  	do {
bbbc34fd666254 Chao Yu          2020-02-14   40  		bool sync_mode;
bbbc34fd666254 Chao Yu          2020-02-14   41  
7bc0900347e069 Jaegeuk Kim      2012-11-02   42  		wait_event_interruptible_timeout(*wq,
d9872a698c393e Jaegeuk Kim      2017-08-06   43  				kthread_should_stop() || freezing(current) ||
d9872a698c393e Jaegeuk Kim      2017-08-06   44  				gc_th->gc_wake,
7bc0900347e069 Jaegeuk Kim      2012-11-02   45  				msecs_to_jiffies(wait_ms));
1d7be2708277ed Jaegeuk Kim      2017-05-17   46  
d9872a698c393e Jaegeuk Kim      2017-08-06   47  		/* give it a try one time */
d9872a698c393e Jaegeuk Kim      2017-08-06   48  		if (gc_th->gc_wake)
d9872a698c393e Jaegeuk Kim      2017-08-06   49  			gc_th->gc_wake = 0;
d9872a698c393e Jaegeuk Kim      2017-08-06   50  
274bd9ba394256 Chao Yu          2018-09-29   51  		if (try_to_freeze()) {
274bd9ba394256 Chao Yu          2018-09-29   52  			stat_other_skip_bggc_count(sbi);
1d7be2708277ed Jaegeuk Kim      2017-05-17   53  			continue;
274bd9ba394256 Chao Yu          2018-09-29   54  		}
7bc0900347e069 Jaegeuk Kim      2012-11-02   55  		if (kthread_should_stop())
7bc0900347e069 Jaegeuk Kim      2012-11-02   56  			break;
7bc0900347e069 Jaegeuk Kim      2012-11-02   57  
d6212a5f18c8f9 Changman Lee     2013-01-29   58  		if (sbi->sb->s_writers.frozen >= SB_FREEZE_WRITE) {
88dd8934194f6d Chao Yu          2015-01-26   59  			increase_sleep_time(gc_th, &wait_ms);
274bd9ba394256 Chao Yu          2018-09-29   60  			stat_other_skip_bggc_count(sbi);
d6212a5f18c8f9 Changman Lee     2013-01-29   61  			continue;
d6212a5f18c8f9 Changman Lee     2013-01-29   62  		}
d6212a5f18c8f9 Changman Lee     2013-01-29   63  
55523519bc7227 Chao Yu          2017-02-25   64  		if (time_to_inject(sbi, FAULT_CHECKPOINT)) {
c45d6002ff7a32 Chao Yu          2019-11-01   65  			f2fs_show_injection_info(sbi, FAULT_CHECKPOINT);
0f34802858e74e Chao Yu          2016-09-26   66  			f2fs_stop_checkpoint(sbi, false);
55523519bc7227 Chao Yu          2017-02-25   67  		}
0f34802858e74e Chao Yu          2016-09-26   68  
274bd9ba394256 Chao Yu          2018-09-29   69  		if (!sb_start_write_trylock(sbi->sb)) {
274bd9ba394256 Chao Yu          2018-09-29   70  			stat_other_skip_bggc_count(sbi);
dc6febb6bcec7f Chao Yu          2017-07-22   71  			continue;
274bd9ba394256 Chao Yu          2018-09-29   72  		}
dc6febb6bcec7f Chao Yu          2017-07-22   73  
7bc0900347e069 Jaegeuk Kim      2012-11-02   74  		/*
7bc0900347e069 Jaegeuk Kim      2012-11-02   75  		 * [GC triggering condition]
7bc0900347e069 Jaegeuk Kim      2012-11-02   76  		 * 0. GC is not conducted currently.
7bc0900347e069 Jaegeuk Kim      2012-11-02   77  		 * 1. There are enough dirty segments.
7bc0900347e069 Jaegeuk Kim      2012-11-02   78  		 * 2. IO subsystem is idle by checking the # of writeback pages.
7bc0900347e069 Jaegeuk Kim      2012-11-02   79  		 * 3. IO subsystem is idle by checking the # of requests in
7bc0900347e069 Jaegeuk Kim      2012-11-02   80  		 *    bdev's request list.
7bc0900347e069 Jaegeuk Kim      2012-11-02   81  		 *
e1c42045203071 arter97          2014-08-06   82  		 * Note) We have to avoid triggering GCs frequently.
7bc0900347e069 Jaegeuk Kim      2012-11-02   83  		 * Because it is possible that some segments can be
7bc0900347e069 Jaegeuk Kim      2012-11-02   84  		 * invalidated soon after by user update or deletion.
7bc0900347e069 Jaegeuk Kim      2012-11-02   85  		 * So, I'd like to wait some time to collect dirty segments.
7bc0900347e069 Jaegeuk Kim      2012-11-02   86  		 */
0e5e81114de1c4 Daeho Jeong      2020-07-02   87  		if (sbi->gc_mode == GC_URGENT_HIGH) {
d9872a698c393e Jaegeuk Kim      2017-08-06   88  			wait_ms = gc_th->urgent_sleep_time;
fb24fea75ca5ce Chao Yu          2020-01-14   89  			down_write(&sbi->gc_lock);
d9872a698c393e Jaegeuk Kim      2017-08-06   90  			goto do_gc;
d9872a698c393e Jaegeuk Kim      2017-08-06   91  		}
d9872a698c393e Jaegeuk Kim      2017-08-06   92  
fb24fea75ca5ce Chao Yu          2020-01-14   93  		if (!down_write_trylock(&sbi->gc_lock)) {
274bd9ba394256 Chao Yu          2018-09-29   94  			stat_other_skip_bggc_count(sbi);
69babac019337b Jaegeuk Kim      2018-02-26   95  			goto next;
274bd9ba394256 Chao Yu          2018-09-29   96  		}
69babac019337b Jaegeuk Kim      2018-02-26   97  
a7d10cf3e4e3e3 Sahitya Tummala  2018-09-19   98  		if (!is_idle(sbi, GC_TIME)) {
88dd8934194f6d Chao Yu          2015-01-26   99  			increase_sleep_time(gc_th, &wait_ms);
fb24fea75ca5ce Chao Yu          2020-01-14  100  			up_write(&sbi->gc_lock);
274bd9ba394256 Chao Yu          2018-09-29  101  			stat_io_skip_bggc_count(sbi);
dc6febb6bcec7f Chao Yu          2017-07-22  102  			goto next;
7bc0900347e069 Jaegeuk Kim      2012-11-02  103  		}
7bc0900347e069 Jaegeuk Kim      2012-11-02  104  
7bc0900347e069 Jaegeuk Kim      2012-11-02  105  		if (has_enough_invalid_blocks(sbi))
88dd8934194f6d Chao Yu          2015-01-26  106  			decrease_sleep_time(gc_th, &wait_ms);
7bc0900347e069 Jaegeuk Kim      2012-11-02  107  		else
88dd8934194f6d Chao Yu          2015-01-26  108  			increase_sleep_time(gc_th, &wait_ms);
d9872a698c393e Jaegeuk Kim      2017-08-06  109  do_gc:
fc7100ea2a52fc Hridya Valsaraju 2020-01-22  110  		stat_inc_bggc_count(sbi->stat_info);
7bc0900347e069 Jaegeuk Kim      2012-11-02  111  
bbbc34fd666254 Chao Yu          2020-02-14  112  		sync_mode = F2FS_OPTION(sbi).bggc_mode == BGGC_MODE_SYNC;
bbbc34fd666254 Chao Yu          2020-02-14  113  
437275272f9e63 Jaegeuk Kim      2013-02-04  114  		/* if return value is not zero, no victim was selected */
bbbc34fd666254 Chao Yu          2020-02-14  115  		if (f2fs_gc(sbi, sync_mode, true, NULL_SEGNO))
b59d0bae6ca30c Namjae Jeon      2013-08-04  116  			wait_ms = gc_th->no_gc_sleep_time;
81eb8d6e2869b1 Jaegeuk Kim      2013-10-24  117  
84e4214f0868ae Jaegeuk Kim      2015-10-13  118  		trace_f2fs_background_gc(sbi->sb, wait_ms,
84e4214f0868ae Jaegeuk Kim      2015-10-13  119  				prefree_segments(sbi), free_segments(sbi));
84e4214f0868ae Jaegeuk Kim      2015-10-13  120  
4660f9c0fe4843 Jaegeuk Kim      2013-10-24  121  		/* balancing f2fs's metadata periodically */
7bcd0cfa735d72 Chao Yu          2020-03-19  122  		f2fs_balance_fs_bg(sbi, true);
dc6febb6bcec7f Chao Yu          2017-07-22  123  next:
dc6febb6bcec7f Chao Yu          2017-07-22  124  		sb_end_write(sbi->sb);
81eb8d6e2869b1 Jaegeuk Kim      2013-10-24  125  
7bc0900347e069 Jaegeuk Kim      2012-11-02  126  	} while (!kthread_should_stop());
7bc0900347e069 Jaegeuk Kim      2012-11-02  127  	return 0;
7bc0900347e069 Jaegeuk Kim      2012-11-02  128  }
7bc0900347e069 Jaegeuk Kim      2012-11-02  129  

:::::: The code at line 29 was first introduced by commit
:::::: 7bc0900347e069a1676d28ad6f98cafaf8cfd6e9 f2fs: add garbage collection functions

:::::: TO: Jaegeuk Kim <jaegeuk.kim@samsung.com>
:::::: CC: Jaegeuk Kim <jaegeuk.kim@samsung.com>

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

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* fs/f2fs/gc.c:29:12: warning: stack frame size of 2080 bytes in function 'gc_thread_func'
@ 2021-04-17 17:04 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-04-17 17:04 UTC (permalink / raw)
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9cdbf6467424045617cd6e79dcaad06bb8efa31c
commit: cdf8a76fda4ae3b53c5a09e5a8c79e27b7b65d68 ubsan: move cc-option tests into Kconfig
date:   4 months ago
config: powerpc-randconfig-r011-20210417 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project f549176ad976caa3e19edd036df9a7e12770af7c)
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
        # install powerpc cross compiling tool for clang build
        # apt-get install binutils-powerpc-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cdf8a76fda4ae3b53c5a09e5a8c79e27b7b65d68
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout cdf8a76fda4ae3b53c5a09e5a8c79e27b7b65d68
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc 

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

All warnings (new ones prefixed by >>):

   arch/powerpc/include/asm/io-defs.h:45:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(insw, (unsigned long p, void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:55:1: note: expanded from here
   __do_insw
   ^
   arch/powerpc/include/asm/io.h:542:56: note: expanded from macro '__do_insw'
   #define __do_insw(p, b, n)      readsw((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
                                          ~~~~~~~~~~~~~~~~~~~~~^
   In file included from fs/f2fs/gc.c:10:
   In file included from include/linux/backing-dev.h:15:
   In file included from include/linux/blkdev.h:14:
   In file included from include/linux/pagemap.h:11:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:10:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:604:
   arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:57:1: note: expanded from here
   __do_insl
   ^
   arch/powerpc/include/asm/io.h:543:56: note: expanded from macro '__do_insl'
   #define __do_insl(p, b, n)      readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
                                          ~~~~~~~~~~~~~~~~~~~~~^
   In file included from fs/f2fs/gc.c:10:
   In file included from include/linux/backing-dev.h:15:
   In file included from include/linux/blkdev.h:14:
   In file included from include/linux/pagemap.h:11:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:10:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:604:
   arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:59:1: note: expanded from here
   __do_outsb
   ^
   arch/powerpc/include/asm/io.h:544:58: note: expanded from macro '__do_outsb'
   #define __do_outsb(p, b, n)     writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
   In file included from fs/f2fs/gc.c:10:
   In file included from include/linux/backing-dev.h:15:
   In file included from include/linux/blkdev.h:14:
   In file included from include/linux/pagemap.h:11:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:10:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:604:
   arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:61:1: note: expanded from here
   __do_outsw
   ^
   arch/powerpc/include/asm/io.h:545:58: note: expanded from macro '__do_outsw'
   #define __do_outsw(p, b, n)     writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
   In file included from fs/f2fs/gc.c:10:
   In file included from include/linux/backing-dev.h:15:
   In file included from include/linux/blkdev.h:14:
   In file included from include/linux/pagemap.h:11:
   In file included from include/linux/highmem.h:10:
   In file included from include/linux/hardirq.h:10:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:604:
   arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
   DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:601:3: note: expanded from macro 'DEF_PCI_AC_NORET'
                   __do_##name al;                                 \
                   ^~~~~~~~~~~~~~
   <scratch space>:63:1: note: expanded from here
   __do_outsl
   ^
   arch/powerpc/include/asm/io.h:546:58: note: expanded from macro '__do_outsl'
   #define __do_outsl(p, b, n)     writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
                                           ~~~~~~~~~~~~~~~~~~~~~^
>> fs/f2fs/gc.c:29:12: warning: stack frame size of 2080 bytes in function 'gc_thread_func' [-Wframe-larger-than=]
   static int gc_thread_func(void *data)
              ^
   fs/f2fs/gc.c:1358:12: warning: stack frame size of 2240 bytes in function 'gc_data_segment' [-Wframe-larger-than=]
   static int gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum,
              ^
   fs/f2fs/gc.c:622:12: warning: stack frame size of 3680 bytes in function 'get_victim_by_default' [-Wframe-larger-than=]
   static int get_victim_by_default(struct f2fs_sb_info *sbi,
              ^
   15 warnings generated.


vim +/gc_thread_func +29 fs/f2fs/gc.c

093749e296e29a Chao Yu          2020-08-04   25  
da52f8ade40b03 Jack Qiu         2020-06-18   26  static unsigned int count_bits(const unsigned long *addr,
da52f8ade40b03 Jack Qiu         2020-06-18   27  				unsigned int offset, unsigned int len);
da52f8ade40b03 Jack Qiu         2020-06-18   28  
7bc0900347e069 Jaegeuk Kim      2012-11-02  @29  static int gc_thread_func(void *data)
7bc0900347e069 Jaegeuk Kim      2012-11-02   30  {
7bc0900347e069 Jaegeuk Kim      2012-11-02   31  	struct f2fs_sb_info *sbi = data;
b59d0bae6ca30c Namjae Jeon      2013-08-04   32  	struct f2fs_gc_kthread *gc_th = sbi->gc_thread;
7bc0900347e069 Jaegeuk Kim      2012-11-02   33  	wait_queue_head_t *wq = &sbi->gc_thread->gc_wait_queue_head;
b8c502b81e3f89 Chao Yu          2017-08-07   34  	unsigned int wait_ms;
7bc0900347e069 Jaegeuk Kim      2012-11-02   35  
b59d0bae6ca30c Namjae Jeon      2013-08-04   36  	wait_ms = gc_th->min_sleep_time;
7bc0900347e069 Jaegeuk Kim      2012-11-02   37  
1d7be2708277ed Jaegeuk Kim      2017-05-17   38  	set_freezable();
7bc0900347e069 Jaegeuk Kim      2012-11-02   39  	do {
bbbc34fd666254 Chao Yu          2020-02-14   40  		bool sync_mode;
bbbc34fd666254 Chao Yu          2020-02-14   41  
7bc0900347e069 Jaegeuk Kim      2012-11-02   42  		wait_event_interruptible_timeout(*wq,
d9872a698c393e Jaegeuk Kim      2017-08-06   43  				kthread_should_stop() || freezing(current) ||
d9872a698c393e Jaegeuk Kim      2017-08-06   44  				gc_th->gc_wake,
7bc0900347e069 Jaegeuk Kim      2012-11-02   45  				msecs_to_jiffies(wait_ms));
1d7be2708277ed Jaegeuk Kim      2017-05-17   46  
d9872a698c393e Jaegeuk Kim      2017-08-06   47  		/* give it a try one time */
d9872a698c393e Jaegeuk Kim      2017-08-06   48  		if (gc_th->gc_wake)
d9872a698c393e Jaegeuk Kim      2017-08-06   49  			gc_th->gc_wake = 0;
d9872a698c393e Jaegeuk Kim      2017-08-06   50  
274bd9ba394256 Chao Yu          2018-09-29   51  		if (try_to_freeze()) {
274bd9ba394256 Chao Yu          2018-09-29   52  			stat_other_skip_bggc_count(sbi);
1d7be2708277ed Jaegeuk Kim      2017-05-17   53  			continue;
274bd9ba394256 Chao Yu          2018-09-29   54  		}
7bc0900347e069 Jaegeuk Kim      2012-11-02   55  		if (kthread_should_stop())
7bc0900347e069 Jaegeuk Kim      2012-11-02   56  			break;
7bc0900347e069 Jaegeuk Kim      2012-11-02   57  
d6212a5f18c8f9 Changman Lee     2013-01-29   58  		if (sbi->sb->s_writers.frozen >= SB_FREEZE_WRITE) {
88dd8934194f6d Chao Yu          2015-01-26   59  			increase_sleep_time(gc_th, &wait_ms);
274bd9ba394256 Chao Yu          2018-09-29   60  			stat_other_skip_bggc_count(sbi);
d6212a5f18c8f9 Changman Lee     2013-01-29   61  			continue;
d6212a5f18c8f9 Changman Lee     2013-01-29   62  		}
d6212a5f18c8f9 Changman Lee     2013-01-29   63  
55523519bc7227 Chao Yu          2017-02-25   64  		if (time_to_inject(sbi, FAULT_CHECKPOINT)) {
c45d6002ff7a32 Chao Yu          2019-11-01   65  			f2fs_show_injection_info(sbi, FAULT_CHECKPOINT);
0f34802858e74e Chao Yu          2016-09-26   66  			f2fs_stop_checkpoint(sbi, false);
55523519bc7227 Chao Yu          2017-02-25   67  		}
0f34802858e74e Chao Yu          2016-09-26   68  
274bd9ba394256 Chao Yu          2018-09-29   69  		if (!sb_start_write_trylock(sbi->sb)) {
274bd9ba394256 Chao Yu          2018-09-29   70  			stat_other_skip_bggc_count(sbi);
dc6febb6bcec7f Chao Yu          2017-07-22   71  			continue;
274bd9ba394256 Chao Yu          2018-09-29   72  		}
dc6febb6bcec7f Chao Yu          2017-07-22   73  
7bc0900347e069 Jaegeuk Kim      2012-11-02   74  		/*
7bc0900347e069 Jaegeuk Kim      2012-11-02   75  		 * [GC triggering condition]
7bc0900347e069 Jaegeuk Kim      2012-11-02   76  		 * 0. GC is not conducted currently.
7bc0900347e069 Jaegeuk Kim      2012-11-02   77  		 * 1. There are enough dirty segments.
7bc0900347e069 Jaegeuk Kim      2012-11-02   78  		 * 2. IO subsystem is idle by checking the # of writeback pages.
7bc0900347e069 Jaegeuk Kim      2012-11-02   79  		 * 3. IO subsystem is idle by checking the # of requests in
7bc0900347e069 Jaegeuk Kim      2012-11-02   80  		 *    bdev's request list.
7bc0900347e069 Jaegeuk Kim      2012-11-02   81  		 *
e1c42045203071 arter97          2014-08-06   82  		 * Note) We have to avoid triggering GCs frequently.
7bc0900347e069 Jaegeuk Kim      2012-11-02   83  		 * Because it is possible that some segments can be
7bc0900347e069 Jaegeuk Kim      2012-11-02   84  		 * invalidated soon after by user update or deletion.
7bc0900347e069 Jaegeuk Kim      2012-11-02   85  		 * So, I'd like to wait some time to collect dirty segments.
7bc0900347e069 Jaegeuk Kim      2012-11-02   86  		 */
0e5e81114de1c4 Daeho Jeong      2020-07-02   87  		if (sbi->gc_mode == GC_URGENT_HIGH) {
d9872a698c393e Jaegeuk Kim      2017-08-06   88  			wait_ms = gc_th->urgent_sleep_time;
fb24fea75ca5ce Chao Yu          2020-01-14   89  			down_write(&sbi->gc_lock);
d9872a698c393e Jaegeuk Kim      2017-08-06   90  			goto do_gc;
d9872a698c393e Jaegeuk Kim      2017-08-06   91  		}
d9872a698c393e Jaegeuk Kim      2017-08-06   92  
fb24fea75ca5ce Chao Yu          2020-01-14   93  		if (!down_write_trylock(&sbi->gc_lock)) {
274bd9ba394256 Chao Yu          2018-09-29   94  			stat_other_skip_bggc_count(sbi);
69babac019337b Jaegeuk Kim      2018-02-26   95  			goto next;
274bd9ba394256 Chao Yu          2018-09-29   96  		}
69babac019337b Jaegeuk Kim      2018-02-26   97  
a7d10cf3e4e3e3 Sahitya Tummala  2018-09-19   98  		if (!is_idle(sbi, GC_TIME)) {
88dd8934194f6d Chao Yu          2015-01-26   99  			increase_sleep_time(gc_th, &wait_ms);
fb24fea75ca5ce Chao Yu          2020-01-14  100  			up_write(&sbi->gc_lock);
274bd9ba394256 Chao Yu          2018-09-29  101  			stat_io_skip_bggc_count(sbi);
dc6febb6bcec7f Chao Yu          2017-07-22  102  			goto next;
7bc0900347e069 Jaegeuk Kim      2012-11-02  103  		}
7bc0900347e069 Jaegeuk Kim      2012-11-02  104  
7bc0900347e069 Jaegeuk Kim      2012-11-02  105  		if (has_enough_invalid_blocks(sbi))
88dd8934194f6d Chao Yu          2015-01-26  106  			decrease_sleep_time(gc_th, &wait_ms);
7bc0900347e069 Jaegeuk Kim      2012-11-02  107  		else
88dd8934194f6d Chao Yu          2015-01-26  108  			increase_sleep_time(gc_th, &wait_ms);
d9872a698c393e Jaegeuk Kim      2017-08-06  109  do_gc:
fc7100ea2a52fc Hridya Valsaraju 2020-01-22  110  		stat_inc_bggc_count(sbi->stat_info);
7bc0900347e069 Jaegeuk Kim      2012-11-02  111  
bbbc34fd666254 Chao Yu          2020-02-14  112  		sync_mode = F2FS_OPTION(sbi).bggc_mode == BGGC_MODE_SYNC;
bbbc34fd666254 Chao Yu          2020-02-14  113  
437275272f9e63 Jaegeuk Kim      2013-02-04  114  		/* if return value is not zero, no victim was selected */
bbbc34fd666254 Chao Yu          2020-02-14  115  		if (f2fs_gc(sbi, sync_mode, true, NULL_SEGNO))
b59d0bae6ca30c Namjae Jeon      2013-08-04  116  			wait_ms = gc_th->no_gc_sleep_time;
81eb8d6e2869b1 Jaegeuk Kim      2013-10-24  117  
84e4214f0868ae Jaegeuk Kim      2015-10-13  118  		trace_f2fs_background_gc(sbi->sb, wait_ms,
84e4214f0868ae Jaegeuk Kim      2015-10-13  119  				prefree_segments(sbi), free_segments(sbi));
84e4214f0868ae Jaegeuk Kim      2015-10-13  120  
4660f9c0fe4843 Jaegeuk Kim      2013-10-24  121  		/* balancing f2fs's metadata periodically */
7bcd0cfa735d72 Chao Yu          2020-03-19  122  		f2fs_balance_fs_bg(sbi, true);
dc6febb6bcec7f Chao Yu          2017-07-22  123  next:
dc6febb6bcec7f Chao Yu          2017-07-22  124  		sb_end_write(sbi->sb);
81eb8d6e2869b1 Jaegeuk Kim      2013-10-24  125  
7bc0900347e069 Jaegeuk Kim      2012-11-02  126  	} while (!kthread_should_stop());
7bc0900347e069 Jaegeuk Kim      2012-11-02  127  	return 0;
7bc0900347e069 Jaegeuk Kim      2012-11-02  128  }
7bc0900347e069 Jaegeuk Kim      2012-11-02  129  

:::::: The code at line 29 was first introduced by commit
:::::: 7bc0900347e069a1676d28ad6f98cafaf8cfd6e9 f2fs: add garbage collection functions

:::::: TO: Jaegeuk Kim <jaegeuk.kim@samsung.com>
:::::: CC: Jaegeuk Kim <jaegeuk.kim@samsung.com>

---
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: 27673 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-04-17 17:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-17 17:04 fs/f2fs/gc.c:29:12: warning: stack frame size of 2080 bytes in function 'gc_thread_func' kernel test robot
2021-04-17 17:04 ` kernel 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.