From: kernel test robot <lkp@intel.com>
To: Boris Burkov <boris@bur.io>,
linux-btrfs@vger.kernel.org, linux-mm@kvack.org,
linux-fsdevel@vger.kernel.org, kernel-team@fb.com
Cc: oe-kbuild-all@lists.linux.dev, shakeel.butt@linux.dev,
hch@infradead.org, wqu@suse.com
Subject: Re: [PATCH 3/3] mm: add vmstat for cgroup uncharged pages
Date: Thu, 7 Aug 2025 04:40:16 +0800 [thread overview]
Message-ID: <202508070434.6EpRsRF3-lkp@intel.com> (raw)
In-Reply-To: <eae30d630ba07de8966d09a3e1700f53715980c2.1754438418.git.boris@bur.io>
Hi Boris,
kernel test robot noticed the following build warnings:
[auto build test WARNING on kdave/for-next]
[also build test WARNING on v6.16]
[cannot apply to akpm-mm/mm-everything linus/master next-20250806]
[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/Boris-Burkov/mm-filemap-add-filemap_add_folio_nocharge/20250806-130147
base: https://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-next
patch link: https://lore.kernel.org/r/eae30d630ba07de8966d09a3e1700f53715980c2.1754438418.git.boris%40bur.io
patch subject: [PATCH 3/3] mm: add vmstat for cgroup uncharged pages
config: i386-buildonly-randconfig-003-20250807 (https://download.01.org/0day-ci/archive/20250807/202508070434.6EpRsRF3-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250807/202508070434.6EpRsRF3-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/202508070434.6EpRsRF3-lkp@intel.com/
All warnings (new ones prefixed by >>):
mm/filemap.c: In function 'filemap_unaccount_folio':
mm/filemap.c:209:9: error: implicit declaration of function 'filemap_mod_uncharged_vmstat'; did you mean 'filemap_mod_uncharged_cgroup_vmstat'? [-Werror=implicit-function-declaration]
209 | filemap_mod_uncharged_vmstat(folio, -1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
| filemap_mod_uncharged_cgroup_vmstat
mm/filemap.c: At top level:
>> mm/filemap.c:158:13: warning: 'filemap_mod_uncharged_cgroup_vmstat' defined but not used [-Wunused-function]
158 | static void filemap_mod_uncharged_cgroup_vmstat(struct folio *folio, int sign)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/filemap_mod_uncharged_cgroup_vmstat +158 mm/filemap.c
148
149 #ifdef CONFIG_MEMCG
150 static void filemap_mod_uncharged_vmstat(struct folio *folio, int sign)
151 {
152 long nr = folio_nr_pages(folio) * sign;
153
154 if (!folio_memcg(folio))
155 __lruvec_stat_mod_folio(folio, NR_UNCHARGED_FILE_PAGES, nr);
156 }
157 #else
> 158 static void filemap_mod_uncharged_cgroup_vmstat(struct folio *folio, int sign)
159 {
160 return;
161 }
162 #endif
163
164
165 static void filemap_unaccount_folio(struct address_space *mapping,
166 struct folio *folio)
167 {
168 long nr;
169
170 VM_BUG_ON_FOLIO(folio_mapped(folio), folio);
171 if (!IS_ENABLED(CONFIG_DEBUG_VM) && unlikely(folio_mapped(folio))) {
172 pr_alert("BUG: Bad page cache in process %s pfn:%05lx\n",
173 current->comm, folio_pfn(folio));
174 dump_page(&folio->page, "still mapped when deleted");
175 dump_stack();
176 add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
177
178 if (mapping_exiting(mapping) && !folio_test_large(folio)) {
179 int mapcount = folio_mapcount(folio);
180
181 if (folio_ref_count(folio) >= mapcount + 2) {
182 /*
183 * All vmas have already been torn down, so it's
184 * a good bet that actually the page is unmapped
185 * and we'd rather not leak it: if we're wrong,
186 * another bad page check should catch it later.
187 */
188 atomic_set(&folio->_mapcount, -1);
189 folio_ref_sub(folio, mapcount);
190 }
191 }
192 }
193
194 /* hugetlb folios do not participate in page cache accounting. */
195 if (folio_test_hugetlb(folio))
196 return;
197
198 nr = folio_nr_pages(folio);
199
200 __lruvec_stat_mod_folio(folio, NR_FILE_PAGES, -nr);
201 if (folio_test_swapbacked(folio)) {
202 __lruvec_stat_mod_folio(folio, NR_SHMEM, -nr);
203 if (folio_test_pmd_mappable(folio))
204 __lruvec_stat_mod_folio(folio, NR_SHMEM_THPS, -nr);
205 } else if (folio_test_pmd_mappable(folio)) {
206 __lruvec_stat_mod_folio(folio, NR_FILE_THPS, -nr);
207 filemap_nr_thps_dec(mapping);
208 }
> 209 filemap_mod_uncharged_vmstat(folio, -1);
210
211 /*
212 * At this point folio must be either written or cleaned by
213 * truncate. Dirty folio here signals a bug and loss of
214 * unwritten data - on ordinary filesystems.
215 *
216 * But it's harmless on in-memory filesystems like tmpfs; and can
217 * occur when a driver which did get_user_pages() sets page dirty
218 * before putting it, while the inode is being finally evicted.
219 *
220 * Below fixes dirty accounting after removing the folio entirely
221 * but leaves the dirty flag set: it has no effect for truncated
222 * folio and anyway will be cleared before returning folio to
223 * buddy allocator.
224 */
225 if (WARN_ON_ONCE(folio_test_dirty(folio) &&
226 mapping_can_writeback(mapping)))
227 folio_account_cleaned(folio, inode_to_wb(mapping->host));
228 }
229
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next prev parent reply other threads:[~2025-08-06 20:41 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-06 0:11 [PATCH 0/3] filemap_add_folio_nocharge() Boris Burkov
2025-08-06 0:11 ` [PATCH 1/3] mm/filemap: add filemap_add_folio_nocharge() Boris Burkov
2025-08-06 0:11 ` [PATCH 2/3] btrfs: use filemap_add_folio_nocharge() for extent_buffers Boris Burkov
2025-08-06 0:11 ` [PATCH 3/3] mm: add vmstat for cgroup uncharged pages Boris Burkov
2025-08-06 20:40 ` kernel test robot [this message]
2025-08-06 20:51 ` kernel test robot
2025-08-07 17:23 ` Shakeel Butt
2025-08-06 14:00 ` [PATCH 0/3] filemap_add_folio_nocharge() Matthew Wilcox
2025-08-06 23:19 ` Shakeel Butt
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=202508070434.6EpRsRF3-lkp@intel.com \
--to=lkp@intel.com \
--cc=boris@bur.io \
--cc=hch@infradead.org \
--cc=kernel-team@fb.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=shakeel.butt@linux.dev \
--cc=wqu@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).