From: kernel test robot <lkp@intel.com>
To: Chao Yu <yuchao0@huawei.com>, Chao Yu <chao@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH] f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info
Date: Mon, 30 Jan 2023 00:25:52 +0800 [thread overview]
Message-ID: <202301300046.Sxi29bMU-lkp@intel.com> (raw)
In-Reply-To: <20230129083045.7754-1-chao@kernel.org>
Hi Chao,
I love your patch! Perhaps something to improve:
[auto build test WARNING on jaegeuk-f2fs/dev-test]
[also build test WARNING on jaegeuk-f2fs/dev linus/master v6.2-rc5]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Chao-Yu/f2fs-reduce-stack-memory-cost-by-using-bitfield-in-struct-f2fs_io_info/20230129-220837
base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git dev-test
patch link: https://lore.kernel.org/r/20230129083045.7754-1-chao%40kernel.org
patch subject: [PATCH] f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info
config: mips-randconfig-r006-20230129 (https://download.01.org/0day-ci/archive/20230130/202301300046.Sxi29bMU-lkp@intel.com/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 4196ca3278f78c6e19246e54ab0ecb364e37d66a)
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 mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://github.com/intel-lab-lkp/linux/commit/de0eb98b767c053132c5ffc724041551d315f69a
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Chao-Yu/f2fs-reduce-stack-memory-cost-by-using-bitfield-in-struct-f2fs_io_info/20230129-220837
git checkout de0eb98b767c053132c5ffc724041551d315f69a
# 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=mips olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash fs/f2fs/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> fs/f2fs/data.c:995:17: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
fio->submitted = true;
^ ~~~~
fs/f2fs/data.c:1011:15: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
fio->retry = true;
^ ~~~~
In file included from fs/f2fs/data.c:8:
In file included from include/linux/fs.h:6:
In file included from include/linux/wait_bit.h:8:
In file included from include/linux/wait.h:9:
In file included from include/linux/spinlock.h:56:
In file included from include/linux/preempt.h:78:
In file included from ./arch/mips/include/generated/asm/preempt.h:1:
In file included from include/asm-generic/preempt.h:5:
In file included from include/linux/thread_info.h:60:
In file included from arch/mips/include/asm/thread_info.h:16:
In file included from arch/mips/include/asm/processor.h:14:
In file included from include/linux/atomic.h:7:
In file included from arch/mips/include/asm/atomic.h:17:
In file included from include/linux/irqflags.h:16:
arch/mips/include/asm/irqflags.h:127:3: error: instruction requires a CPU feature not currently enabled
" mfc0 %[flags], $12 \n"
^
<inline asm>:3:2: note: instantiated into assembly here
mfc0 $2, $12
^
2 warnings and 1 error generated.
--
>> fs/f2fs/segment.c:3350:16: warning: implicit truncation from 'int' to a one-bit wide bit-field changes value from 1 to -1 [-Wsingle-bit-bitfield-constant-conversion]
fio->in_list = true;
^ ~~~~
In file included from fs/f2fs/segment.c:8:
In file included from include/linux/fs.h:6:
In file included from include/linux/wait_bit.h:8:
In file included from include/linux/wait.h:9:
In file included from include/linux/spinlock.h:56:
In file included from include/linux/preempt.h:78:
In file included from ./arch/mips/include/generated/asm/preempt.h:1:
In file included from include/asm-generic/preempt.h:5:
In file included from include/linux/thread_info.h:60:
In file included from arch/mips/include/asm/thread_info.h:16:
In file included from arch/mips/include/asm/processor.h:14:
In file included from include/linux/atomic.h:7:
In file included from arch/mips/include/asm/atomic.h:17:
In file included from include/linux/irqflags.h:16:
arch/mips/include/asm/irqflags.h:127:3: error: instruction requires a CPU feature not currently enabled
" mfc0 %[flags], $12 \n"
^
<inline asm>:3:2: note: instantiated into assembly here
mfc0 $2, $12
^
In file included from fs/f2fs/segment.c:8:
In file included from include/linux/fs.h:6:
In file included from include/linux/wait_bit.h:8:
In file included from include/linux/wait.h:9:
In file included from include/linux/spinlock.h:56:
In file included from include/linux/preempt.h:78:
In file included from ./arch/mips/include/generated/asm/preempt.h:1:
In file included from include/asm-generic/preempt.h:5:
In file included from include/linux/thread_info.h:60:
In file included from arch/mips/include/asm/thread_info.h:16:
In file included from arch/mips/include/asm/processor.h:14:
In file included from include/linux/atomic.h:7:
In file included from arch/mips/include/asm/atomic.h:17:
In file included from include/linux/irqflags.h:16:
arch/mips/include/asm/irqflags.h:127:3: error: instruction requires a CPU feature not currently enabled
" mfc0 %[flags], $12 \n"
^
<inline asm>:3:2: note: instantiated into assembly here
mfc0 $2, $12
^
In file included from fs/f2fs/segment.c:8:
In file included from include/linux/fs.h:6:
In file included from include/linux/wait_bit.h:8:
In file included from include/linux/wait.h:9:
In file included from include/linux/spinlock.h:56:
In file included from include/linux/preempt.h:78:
In file included from ./arch/mips/include/generated/asm/preempt.h:1:
In file included from include/asm-generic/preempt.h:5:
In file included from include/linux/thread_info.h:60:
In file included from arch/mips/include/asm/thread_info.h:16:
In file included from arch/mips/include/asm/processor.h:14:
In file included from include/linux/atomic.h:7:
In file included from arch/mips/include/asm/atomic.h:17:
In file included from include/linux/irqflags.h:16:
arch/mips/include/asm/irqflags.h:127:3: error: instruction requires a CPU feature not currently enabled
" mfc0 %[flags], $12 \n"
^
<inline asm>:3:2: note: instantiated into assembly here
mfc0 $2, $12
^
In file included from fs/f2fs/segment.c:8:
In file included from include/linux/fs.h:6:
In file included from include/linux/wait_bit.h:8:
In file included from include/linux/wait.h:9:
In file included from include/linux/spinlock.h:56:
In file included from include/linux/preempt.h:78:
In file included from ./arch/mips/include/generated/asm/preempt.h:1:
In file included from include/asm-generic/preempt.h:5:
In file included from include/linux/thread_info.h:60:
In file included from arch/mips/include/asm/thread_info.h:16:
In file included from arch/mips/include/asm/processor.h:14:
In file included from include/linux/atomic.h:7:
In file included from arch/mips/include/asm/atomic.h:17:
In file included from include/linux/irqflags.h:16:
arch/mips/include/asm/irqflags.h:127:3: error: instruction requires a CPU feature not currently enabled
" mfc0 %[flags], $12 \n"
^
<inline asm>:3:2: note: instantiated into assembly here
mfc0 $2, $12
^
1 warning and 4 errors generated.
vim +/int +995 fs/f2fs/data.c
8648de2c581eed Chao Yu 2019-02-19 961
fe16efe6a7952f Chao Yu 2018-05-28 962 void f2fs_submit_page_write(struct f2fs_io_info *fio)
93dfe2ac516250 Jaegeuk Kim 2013-11-30 963 {
05ca3632e5a73b Jaegeuk Kim 2015-04-23 964 struct f2fs_sb_info *sbi = fio->sbi;
458e6197c37de5 Jaegeuk Kim 2013-12-11 965 enum page_type btype = PAGE_TYPE_OF_BIO(fio->type);
a912b54d3aaa01 Jaegeuk Kim 2017-05-10 966 struct f2fs_bio_info *io = sbi->write_io[btype] + fio->temp;
4375a33664de17 Jaegeuk Kim 2015-04-23 967 struct page *bio_page;
93dfe2ac516250 Jaegeuk Kim 2013-11-30 968
b9109b0e49b93b Jaegeuk Kim 2017-05-10 969 f2fs_bug_on(sbi, is_read_io(fio->op));
93dfe2ac516250 Jaegeuk Kim 2013-11-30 970
e4544b63a7ee49 Tim Murray 2022-01-07 971 f2fs_down_write(&io->io_rwsem);
fb830fc5cfc90b Chao Yu 2017-05-19 972 next:
fb830fc5cfc90b Chao Yu 2017-05-19 973 if (fio->in_list) {
fb830fc5cfc90b Chao Yu 2017-05-19 974 spin_lock(&io->io_lock);
fb830fc5cfc90b Chao Yu 2017-05-19 975 if (list_empty(&io->io_list)) {
fb830fc5cfc90b Chao Yu 2017-05-19 976 spin_unlock(&io->io_lock);
fe16efe6a7952f Chao Yu 2018-05-28 977 goto out;
fb830fc5cfc90b Chao Yu 2017-05-19 978 }
fb830fc5cfc90b Chao Yu 2017-05-19 979 fio = list_first_entry(&io->io_list,
fb830fc5cfc90b Chao Yu 2017-05-19 980 struct f2fs_io_info, list);
fb830fc5cfc90b Chao Yu 2017-05-19 981 list_del(&fio->list);
fb830fc5cfc90b Chao Yu 2017-05-19 982 spin_unlock(&io->io_lock);
fb830fc5cfc90b Chao Yu 2017-05-19 983 }
93dfe2ac516250 Jaegeuk Kim 2013-11-30 984
93770ab7a6e963 Chao Yu 2019-04-15 985 verify_fio_blkaddr(fio);
93dfe2ac516250 Jaegeuk Kim 2013-11-30 986
4c8ff7095bef64 Chao Yu 2019-11-01 987 if (fio->encrypted_page)
4c8ff7095bef64 Chao Yu 2019-11-01 988 bio_page = fio->encrypted_page;
4c8ff7095bef64 Chao Yu 2019-11-01 989 else if (fio->compressed_page)
4c8ff7095bef64 Chao Yu 2019-11-01 990 bio_page = fio->compressed_page;
4c8ff7095bef64 Chao Yu 2019-11-01 991 else
4c8ff7095bef64 Chao Yu 2019-11-01 992 bio_page = fio->page;
36951b38d13ac7 Chao Yu 2016-11-16 993
ebf7c522fdc2ec Thomas Meyer 2017-10-07 994 /* set submitted = true as a return value */
ebf7c522fdc2ec Thomas Meyer 2017-10-07 @995 fio->submitted = true;
d68f735b3bc934 Jaegeuk Kim 2017-02-03 996
36951b38d13ac7 Chao Yu 2016-11-16 997 inc_page_count(sbi, WB_DATA_TYPE(bio_page));
36951b38d13ac7 Chao Yu 2016-11-16 998
27aacd28ea3b89 Satya Tangirala 2020-07-02 999 if (io->bio &&
27aacd28ea3b89 Satya Tangirala 2020-07-02 1000 (!io_is_mergeable(sbi, io->bio, io, fio, io->last_block_in_bio,
27aacd28ea3b89 Satya Tangirala 2020-07-02 1001 fio->new_blkaddr) ||
27aacd28ea3b89 Satya Tangirala 2020-07-02 1002 !f2fs_crypt_mergeable_bio(io->bio, fio->page->mapping->host,
27aacd28ea3b89 Satya Tangirala 2020-07-02 1003 bio_page->index, fio)))
458e6197c37de5 Jaegeuk Kim 2013-12-11 1004 __submit_merged_bio(io);
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1005 alloc_new:
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1006 if (io->bio == NULL) {
8223ecc456d079 Chao Yu 2019-08-28 1007 if (F2FS_IO_ALIGNED(sbi) &&
8223ecc456d079 Chao Yu 2019-08-28 1008 (fio->type == DATA || fio->type == NODE) &&
0a595ebaaa6b53 Jaegeuk Kim 2016-12-14 1009 fio->new_blkaddr & F2FS_IO_SIZE_MASK(sbi)) {
0a595ebaaa6b53 Jaegeuk Kim 2016-12-14 1010 dec_page_count(sbi, WB_DATA_TYPE(bio_page));
fe16efe6a7952f Chao Yu 2018-05-28 1011 fio->retry = true;
fe16efe6a7952f Chao Yu 2018-05-28 1012 goto skip;
0a595ebaaa6b53 Jaegeuk Kim 2016-12-14 1013 }
a8affc03a9b375 Christoph Hellwig 2021-03-11 1014 io->bio = __bio_alloc(fio, BIO_MAX_VECS);
27aacd28ea3b89 Satya Tangirala 2020-07-02 1015 f2fs_set_bio_crypt_ctx(io->bio, fio->page->mapping->host,
27aacd28ea3b89 Satya Tangirala 2020-07-02 1016 bio_page->index, fio, GFP_NOIO);
458e6197c37de5 Jaegeuk Kim 2013-12-11 1017 io->fio = *fio;
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1018 }
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1019
a912b54d3aaa01 Jaegeuk Kim 2017-05-10 1020 if (bio_add_page(io->bio, bio_page, PAGE_SIZE, 0) < PAGE_SIZE) {
458e6197c37de5 Jaegeuk Kim 2013-12-11 1021 __submit_merged_bio(io);
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1022 goto alloc_new;
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1023 }
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1024
578c647879f74c Yufen Yu 2018-01-09 1025 if (fio->io_wbc)
34e51a5e1a6e93 Tejun Heo 2019-06-27 1026 wbc_account_cgroup_owner(fio->io_wbc, bio_page, PAGE_SIZE);
578c647879f74c Yufen Yu 2018-01-09 1027
7a9d75481b85d5 Chao Yu 2016-02-22 1028 io->last_block_in_bio = fio->new_blkaddr;
fb830fc5cfc90b Chao Yu 2017-05-19 1029
fb830fc5cfc90b Chao Yu 2017-05-19 1030 trace_f2fs_submit_page_write(fio->page, fio);
fe16efe6a7952f Chao Yu 2018-05-28 1031 skip:
fb830fc5cfc90b Chao Yu 2017-05-19 1032 if (fio->in_list)
fb830fc5cfc90b Chao Yu 2017-05-19 1033 goto next;
fe16efe6a7952f Chao Yu 2018-05-28 1034 out:
4354994f097d06 Daniel Rosenberg 2018-08-20 1035 if (is_sbi_flag_set(sbi, SBI_IS_SHUTDOWN) ||
00e09c0bccc718 Chao Yu 2019-08-23 1036 !f2fs_is_checkpoint_ready(sbi))
5ce805869cbed9 Jaegeuk Kim 2018-09-06 1037 __submit_merged_bio(io);
e4544b63a7ee49 Tim Murray 2022-01-07 1038 f2fs_up_write(&io->io_rwsem);
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1039 }
93dfe2ac516250 Jaegeuk Kim 2013-11-30 1040
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
next prev parent reply other threads:[~2023-01-29 16:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-29 8:30 [f2fs-dev] [PATCH] f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info Chao Yu
2023-01-29 8:30 ` Chao Yu
2023-01-29 16:25 ` kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-01-29 18:49 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202301300046.Sxi29bMU-lkp@intel.com \
--to=lkp@intel.com \
--cc=chao@kernel.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=yuchao0@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.