Re: fs/io_uring.c:6920:12: warning: stack frame size of 1040 bytes in function 'io_submit_sqes'

From: Jens Axboe
Date: Tue Mar 23 2021 - 09:41:06 EST


On 3/23/21 6:51 AM, Pavel Begunkov wrote:
> On 23/03/2021 11:31, kernel test robot wrote:
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head: 84196390620ac0e5070ae36af84c137c6216a7dc
>> commit: e5d1bc0a91f16959aa279aa3ee9fdc246d4bb382 io_uring: defer flushing cached reqs
>> date: 6 weeks ago
>> config: powerpc64-randconfig-r023-20210323 (attached as .config)
>> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 14696baaf4c43fe53f738bc292bbe169eed93d5d)
>> 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 powerpc64 cross compiling tool for clang build
>> # apt-get install binutils-powerpc64-linux-gnu
>> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e5d1bc0a91f16959aa279aa3ee9fdc246d4bb382
>> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>> git fetch --no-tags linus master
>> git checkout e5d1bc0a91f16959aa279aa3ee9fdc246d4bb382
>> # save the attached .config to linux build tree
>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
>>
>> If you fix the issue, kindly add following tag as appropriate
>> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>>
>> All warnings (new ones prefixed by >>):
>>
>>>> fs/io_uring.c:6920:12: warning: stack frame size of 1040 bytes in function 'io_submit_sqes' [-Wframe-larger-than=]
>> static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr)
>> ^
>> 1 warning generated. b
>
> I don't know, for up-to-date code all submission functions are under
> 128 bytes for me, including io_submit_sqes with everything heavily
> inlined into it. I believe it's just a strange config keeping
> everything on stack for some reason (too under optimised?).

Must be the powerpc compiler doing something weird, it's probably
inlining io_submit_sqe() and all opcode handlers. And then you get
there pretty quick, eg io_recvmsg() uses 768 bytes of stack here.

--
Jens Axboe