[sashal-stable:pending-5.16 35/73] kernel/sched/fair.c:3796:48: error: use of undeclared identifier 'divider'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git pending-5.16
head: 51f919289215d09b2aeca5dc7f27639f21ad7d1e
commit: b765f44bc5887dafdcc7eeb33cee10d448cd1f2a [35/73] sched/pelt: Relax the sync of runnable_sum with runnable_avg
config: hexagon-randconfig-r045-20220211 (https://download.01.org/0day-ci/archive/20220212/202202120708.NYXhtjUK-lk...)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f6685f774697c85d6a352dcea013f46a99f9fe31)
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/sashal/linux-stable.git/c...
git remote add sashal-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-stable pending-5.16
git checkout b765f44bc5887dafdcc7eeb33cee10d448cd1f2a
# save the config file to linux build tree
mkdir build_dir
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 <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> kernel/sched/fair.c:3796:48: error: use of undeclared identifier 'divider'
cfs_rq->avg.util_sum = cfs_rq->avg.util_avg * divider;
^
kernel/sched/fair.c:5458:6: warning: no previous prototype for function 'init_cfs_bandwidth' [-Wmissing-prototypes]
void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
^
kernel/sched/fair.c:5458:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {}
^
static
kernel/sched/fair.c:11731:6: warning: no previous prototype for function 'free_fair_sched_group' [-Wmissing-prototypes]
void free_fair_sched_group(struct task_group *tg) { }
^
kernel/sched/fair.c:11731:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void free_fair_sched_group(struct task_group *tg) { }
^
static
kernel/sched/fair.c:11733:5: warning: no previous prototype for function 'alloc_fair_sched_group' [-Wmissing-prototypes]
int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
^
kernel/sched/fair.c:11733:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent)
^
static
kernel/sched/fair.c:11738:6: warning: no previous prototype for function 'online_fair_sched_group' [-Wmissing-prototypes]
void online_fair_sched_group(struct task_group *tg) { }
^
kernel/sched/fair.c:11738:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void online_fair_sched_group(struct task_group *tg) { }
^
static
kernel/sched/fair.c:11740:6: warning: no previous prototype for function 'unregister_fair_sched_group' [-Wmissing-prototypes]
void unregister_fair_sched_group(struct task_group *tg) { }
^
kernel/sched/fair.c:11740:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void unregister_fair_sched_group(struct task_group *tg) { }
^
static
5 warnings and 1 error generated.
vim +/divider +3796 kernel/sched/fair.c
a05e8c51ff097ff Byungchul Park 2015-08-20 3783
3d30544f02120b8 Peter Zijlstra 2016-06-21 3784 /**
3d30544f02120b8 Peter Zijlstra 2016-06-21 3785 * detach_entity_load_avg - detach this entity from its cfs_rq load avg
3d30544f02120b8 Peter Zijlstra 2016-06-21 3786 * @cfs_rq: cfs_rq to detach from
3d30544f02120b8 Peter Zijlstra 2016-06-21 3787 * @se: sched_entity to detach
3d30544f02120b8 Peter Zijlstra 2016-06-21 3788 *
3d30544f02120b8 Peter Zijlstra 2016-06-21 3789 * Must call update_cfs_rq_load_avg() before this, since we rely on
3d30544f02120b8 Peter Zijlstra 2016-06-21 3790 * cfs_rq->avg.last_update_time being current.
3d30544f02120b8 Peter Zijlstra 2016-06-21 3791 */
a05e8c51ff097ff Byungchul Park 2015-08-20 3792 static void detach_entity_load_avg(struct cfs_rq *cfs_rq, struct sched_entity *se)
a05e8c51ff097ff Byungchul Park 2015-08-20 3793 {
8d5b9025f9b4500 Peter Zijlstra 2017-08-24 3794 dequeue_load_avg(cfs_rq, se);
897418922215915 Peter Zijlstra 2016-06-16 3795 sub_positive(&cfs_rq->avg.util_avg, se->avg.util_avg);
fcf6631f3736985 Vincent Guittot 2021-06-01 @3796 cfs_rq->avg.util_sum = cfs_rq->avg.util_avg * divider;
9f68395333ad7f5 Vincent Guittot 2020-02-24 3797 sub_positive(&cfs_rq->avg.runnable_avg, se->avg.runnable_avg);
b765f44bc5887da Vincent Guittot 2022-01-11 3798 sub_positive(&cfs_rq->avg.runnable_sum, se->avg.runnable_sum);
b765f44bc5887da Vincent Guittot 2022-01-11 3799 /* See update_cfs_rq_load_avg() */
b765f44bc5887da Vincent Guittot 2022-01-11 3800 cfs_rq->avg.runnable_sum = max_t(u32, cfs_rq->avg.runnable_sum,
b765f44bc5887da Vincent Guittot 2022-01-11 3801 cfs_rq->avg.runnable_avg * PELT_MIN_DIVIDER);
0e2d2aaaae52c24 Peter Zijlstra 2017-05-08 3802
0e2d2aaaae52c24 Peter Zijlstra 2017-05-08 3803 add_tg_cfs_propagate(cfs_rq, -se->avg.load_sum);
a2c6c91f98247fe Steve Muckle 2016-03-24 3804
ea14b57e8a181ac Peter Zijlstra 2018-02-02 3805 cfs_rq_util_change(cfs_rq, 0);
ba19f51fcb549c7 Qais Yousef 2019-06-04 3806
ba19f51fcb549c7 Qais Yousef 2019-06-04 3807 trace_pelt_cfs_tp(cfs_rq);
a05e8c51ff097ff Byungchul Park 2015-08-20 3808 }
a05e8c51ff097ff Byungchul Park 2015-08-20 3809
:::::: The code at line 3796 was first introduced by commit
:::::: fcf6631f3736985ec89bdd76392d3c7bfb60119f sched/pelt: Ensure that *_sum is always synced with *_avg
:::::: TO: Vincent Guittot <vincent.guittot(a)linaro.org>
:::::: CC: Peter Zijlstra <peterz(a)infradead.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months, 1 week
Re: [PATCH v5 3/6] mm: make alloc_contig_range work at pageblock granularity
by kernel test robot
Hi Zi,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on hnaz-mm/master]
[also build test ERROR on powerpc/next linux/master linus/master v5.17-rc3 next-20220211]
[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]
url: https://github.com/0day-ci/linux/commits/Zi-Yan/Use-pageblock_order-for-c...
base: https://github.com/hnaz/linux-mm master
config: x86_64-randconfig-a012 (https://download.01.org/0day-ci/archive/20220212/202202120720.MfxEFq7T-lk...)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f6685f774697c85d6a352dcea013f46a99f9fe31)
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://github.com/0day-ci/linux/commit/5aacb9dfc8abb1a0610b70226606408a9...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Zi-Yan/Use-pageblock_order-for-cma-and-alloc_contig_range-alignment/20220212-004358
git checkout 5aacb9dfc8abb1a0610b70226606408a96d0e997
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> mm/page_isolation.c:332:8: error: implicit declaration of function 'isolate_single_pageblock' [-Werror,-Wimplicit-function-declaration]
ret = isolate_single_pageblock(isolate_start, gfp_flags, 0);
^
1 error generated.
vim +/isolate_single_pageblock +332 mm/page_isolation.c
274
275 /**
276 * start_isolate_page_range() - make page-allocation-type of range of pages to
277 * be MIGRATE_ISOLATE.
278 * @start_pfn: The lower PFN of the range to be isolated.
279 * @end_pfn: The upper PFN of the range to be isolated.
280 * @migratetype: Migrate type to set in error recovery.
281 * @flags: The following flags are allowed (they can be combined in
282 * a bit mask)
283 * MEMORY_OFFLINE - isolate to offline (!allocate) memory
284 * e.g., skip over PageHWPoison() pages
285 * and PageOffline() pages.
286 * REPORT_FAILURE - report details about the failure to
287 * isolate the range
288 * @gfp_flags: GFP flags used for migrating pages that sit across the
289 * range boundaries.
290 *
291 * Making page-allocation-type to be MIGRATE_ISOLATE means free pages in
292 * the range will never be allocated. Any free pages and pages freed in the
293 * future will not be allocated again. If specified range includes migrate types
294 * other than MOVABLE or CMA, this will fail with -EBUSY. For isolating all
295 * pages in the range finally, the caller have to free all pages in the range.
296 * test_page_isolated() can be used for test it.
297 *
298 * The function first tries to isolate the pageblocks at the beginning and end
299 * of the range, since there might be pages across the range boundaries.
300 * Afterwards, it isolates the rest of the range.
301 *
302 * There is no high level synchronization mechanism that prevents two threads
303 * from trying to isolate overlapping ranges. If this happens, one thread
304 * will notice pageblocks in the overlapping range already set to isolate.
305 * This happens in set_migratetype_isolate, and set_migratetype_isolate
306 * returns an error. We then clean up by restoring the migration type on
307 * pageblocks we may have modified and return -EBUSY to caller. This
308 * prevents two threads from simultaneously working on overlapping ranges.
309 *
310 * Please note that there is no strong synchronization with the page allocator
311 * either. Pages might be freed while their page blocks are marked ISOLATED.
312 * A call to drain_all_pages() after isolation can flush most of them. However
313 * in some cases pages might still end up on pcp lists and that would allow
314 * for their allocation even when they are in fact isolated already. Depending
315 * on how strong of a guarantee the caller needs, zone_pcp_disable/enable()
316 * might be used to flush and disable pcplist before isolation and enable after
317 * unisolation.
318 *
319 * Return: 0 on success and -EBUSY if any part of range cannot be isolated.
320 */
321 int start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
322 unsigned migratetype, int flags, gfp_t gfp_flags)
323 {
324 unsigned long pfn;
325 struct page *page;
326 /* isolation is done at page block granularity */
327 unsigned long isolate_start = ALIGN_DOWN(start_pfn, pageblock_nr_pages);
328 unsigned long isolate_end = ALIGN(end_pfn, pageblock_nr_pages);
329 int ret;
330
331 /* isolate [isolate_start, isolate_start + pageblock_nr_pages] pageblock */
> 332 ret = isolate_single_pageblock(isolate_start, gfp_flags, 0);
333 if (ret)
334 return ret;
335
336 /* isolate [isolate_end - pageblock_nr_pages, isolate_end] pageblock */
337 ret = isolate_single_pageblock(isolate_end, gfp_flags, 1);
338 if (ret) {
339 unset_migratetype_isolate(pfn_to_page(isolate_start), migratetype);
340 return ret;
341 }
342
343 /* skip isolated pageblocks at the beginning and end */
344 for (pfn = isolate_start + pageblock_nr_pages;
345 pfn < isolate_end - pageblock_nr_pages;
346 pfn += pageblock_nr_pages) {
347 page = __first_valid_page(pfn, pageblock_nr_pages);
348 if (page && set_migratetype_isolate(page, migratetype, flags,
349 start_pfn, end_pfn)) {
350 undo_isolate_page_range(isolate_start, pfn, migratetype);
351 unset_migratetype_isolate(
352 pfn_to_page(isolate_end - pageblock_nr_pages),
353 migratetype);
354 return -EBUSY;
355 }
356 }
357 return 0;
358 }
359
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months, 1 week
Re: [PATCH v5 3/6] mm: make alloc_contig_range work at pageblock granularity
by kernel test robot
Hi Zi,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on hnaz-mm/master]
[also build test WARNING on powerpc/next linux/master linus/master v5.17-rc3 next-20220211]
[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]
url: https://github.com/0day-ci/linux/commits/Zi-Yan/Use-pageblock_order-for-c...
base: https://github.com/hnaz/linux-mm master
config: x86_64-randconfig-a011 (https://download.01.org/0day-ci/archive/20220212/202202120616.vgw2VpUz-lk...)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/5aacb9dfc8abb1a0610b70226606408a9...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Zi-Yan/Use-pageblock_order-for-cma-and-alloc_contig_range-alignment/20220212-004358
git checkout 5aacb9dfc8abb1a0610b70226606408a96d0e997
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
mm/page_alloc.c:3869:15: warning: no previous prototype for 'should_fail_alloc_page' [-Wmissing-prototypes]
3869 | noinline bool should_fail_alloc_page(gfp_t gfp_mask, unsigned int order)
| ^~~~~~~~~~~~~~~~~~~~~~
>> mm/page_alloc.c:8988:5: warning: no previous prototype for '__alloc_contig_migrate_range' [-Wmissing-prototypes]
8988 | int __alloc_contig_migrate_range(struct compact_control *cc,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/__alloc_contig_migrate_range +8988 mm/page_alloc.c
8986
8987 /* [start, end) must belong to a single zone. */
> 8988 int __alloc_contig_migrate_range(struct compact_control *cc,
8989 unsigned long start, unsigned long end)
8990 {
8991 /* This function is based on compact_zone() from compaction.c. */
8992 unsigned int nr_reclaimed;
8993 unsigned long pfn = start;
8994 unsigned int tries = 0;
8995 int ret = 0;
8996 struct migration_target_control mtc = {
8997 .nid = zone_to_nid(cc->zone),
8998 .gfp_mask = GFP_USER | __GFP_MOVABLE | __GFP_RETRY_MAYFAIL,
8999 };
9000
9001 lru_cache_disable();
9002
9003 while (pfn < end || !list_empty(&cc->migratepages)) {
9004 if (fatal_signal_pending(current)) {
9005 ret = -EINTR;
9006 break;
9007 }
9008
9009 if (list_empty(&cc->migratepages)) {
9010 cc->nr_migratepages = 0;
9011 ret = isolate_migratepages_range(cc, pfn, end);
9012 if (ret && ret != -EAGAIN)
9013 break;
9014 pfn = cc->migrate_pfn;
9015 tries = 0;
9016 } else if (++tries == 5) {
9017 ret = -EBUSY;
9018 break;
9019 }
9020
9021 nr_reclaimed = reclaim_clean_pages_from_list(cc->zone,
9022 &cc->migratepages);
9023 cc->nr_migratepages -= nr_reclaimed;
9024
9025 ret = migrate_pages(&cc->migratepages, alloc_migration_target,
9026 NULL, (unsigned long)&mtc, cc->mode, MR_CONTIG_RANGE, NULL);
9027
9028 /*
9029 * On -ENOMEM, migrate_pages() bails out right away. It is pointless
9030 * to retry again over this error, so do the same here.
9031 */
9032 if (ret == -ENOMEM)
9033 break;
9034 }
9035
9036 lru_cache_enable();
9037 if (ret < 0) {
9038 if (ret == -EBUSY)
9039 alloc_contig_dump_pages(&cc->migratepages);
9040 putback_movable_pages(&cc->migratepages);
9041 return ret;
9042 }
9043 return 0;
9044 }
9045
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
7 months, 1 week