All of lore.kernel.org
 help / color / mirror / Atom feed
* [memcg:since-4.12 539/540] mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent'
@ 2017-08-18 16:42 kbuild test robot
  2017-08-18 16:57 ` Waiman Long
  0 siblings, 1 reply; 4+ messages in thread
From: kbuild test robot @ 2017-08-18 16:42 UTC (permalink / raw)
  To: Waiman Long; +Cc: kbuild-all, linux-mm, Michal Hocko, Andrew Morton

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-4.12
head:   ba5e8c23db5729ebdbafad983b07434c829cf5b6
commit: 500539d3686a835f6a9740ffc38bed5d74951a64 [539/540] debugobjects: make kmemleak ignore debug objects
config: i386-randconfig-s0-08141822 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout 500539d3686a835f6a9740ffc38bed5d74951a64
        # save the attached .config to linux build tree
        make ARCH=i386 

All errors (new ones prefixed by >>):

   mm/compaction.c: In function 'isolate_freepages_block':
>> mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent' [-Werror=implicit-function-declaration]
       if (pageblock_skip_persistent(page, order)) {
           ^~~~~~~~~~~~~~~~~~~~~~~~~
>> mm/compaction.c:470:5: error: implicit declaration of function 'set_pageblock_skip' [-Werror=implicit-function-declaration]
        set_pageblock_skip(page);
        ^~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/pageblock_skip_persistent +469 mm/compaction.c

be976572 Vlastimil Babka   2014-06-04  417  
c67fe375 Mel Gorman        2012-08-21  418  /*
9e4be470 Jerome Marchand   2013-11-12  419   * Isolate free pages onto a private freelist. If @strict is true, will abort
9e4be470 Jerome Marchand   2013-11-12  420   * returning 0 on any invalid PFNs or non-free pages inside of the pageblock
9e4be470 Jerome Marchand   2013-11-12  421   * (even though it may still end up isolating some pages).
85aa125f Michal Nazarewicz 2012-01-30  422   */
f40d1e42 Mel Gorman        2012-10-08  423  static unsigned long isolate_freepages_block(struct compact_control *cc,
e14c720e Vlastimil Babka   2014-10-09  424  				unsigned long *start_pfn,
85aa125f Michal Nazarewicz 2012-01-30  425  				unsigned long end_pfn,
85aa125f Michal Nazarewicz 2012-01-30  426  				struct list_head *freelist,
85aa125f Michal Nazarewicz 2012-01-30  427  				bool strict)
748446bb Mel Gorman        2010-05-24  428  {
b7aba698 Mel Gorman        2011-01-13  429  	int nr_scanned = 0, total_isolated = 0;
bb13ffeb Mel Gorman        2012-10-08  430  	struct page *cursor, *valid_page = NULL;
b8b2d825 Xiubo Li          2014-10-09  431  	unsigned long flags = 0;
f40d1e42 Mel Gorman        2012-10-08  432  	bool locked = false;
e14c720e Vlastimil Babka   2014-10-09  433  	unsigned long blockpfn = *start_pfn;
66c64223 Joonsoo Kim       2016-07-26  434  	unsigned int order;
748446bb Mel Gorman        2010-05-24  435  
748446bb Mel Gorman        2010-05-24  436  	cursor = pfn_to_page(blockpfn);
748446bb Mel Gorman        2010-05-24  437  
f40d1e42 Mel Gorman        2012-10-08  438  	/* Isolate free pages. */
748446bb Mel Gorman        2010-05-24  439  	for (; blockpfn < end_pfn; blockpfn++, cursor++) {
66c64223 Joonsoo Kim       2016-07-26  440  		int isolated;
748446bb Mel Gorman        2010-05-24  441  		struct page *page = cursor;
748446bb Mel Gorman        2010-05-24  442  
8b44d279 Vlastimil Babka   2014-10-09  443  		/*
8b44d279 Vlastimil Babka   2014-10-09  444  		 * Periodically drop the lock (if held) regardless of its
8b44d279 Vlastimil Babka   2014-10-09  445  		 * contention, to give chance to IRQs. Abort if fatal signal
8b44d279 Vlastimil Babka   2014-10-09  446  		 * pending or async compaction detects need_resched()
8b44d279 Vlastimil Babka   2014-10-09  447  		 */
8b44d279 Vlastimil Babka   2014-10-09  448  		if (!(blockpfn % SWAP_CLUSTER_MAX)
8b44d279 Vlastimil Babka   2014-10-09  449  		    && compact_unlock_should_abort(&cc->zone->lock, flags,
8b44d279 Vlastimil Babka   2014-10-09  450  								&locked, cc))
8b44d279 Vlastimil Babka   2014-10-09  451  			break;
8b44d279 Vlastimil Babka   2014-10-09  452  
b7aba698 Mel Gorman        2011-01-13  453  		nr_scanned++;
f40d1e42 Mel Gorman        2012-10-08  454  		if (!pfn_valid_within(blockpfn))
2af120bc Laura Abbott      2014-03-10  455  			goto isolate_fail;
2af120bc Laura Abbott      2014-03-10  456  
bb13ffeb Mel Gorman        2012-10-08  457  		if (!valid_page)
bb13ffeb Mel Gorman        2012-10-08  458  			valid_page = page;
9fcd6d2e Vlastimil Babka   2015-09-08  459  
9fcd6d2e Vlastimil Babka   2015-09-08  460  		/*
9fcd6d2e Vlastimil Babka   2015-09-08  461  		 * For compound pages such as THP and hugetlbfs, we can save
9fcd6d2e Vlastimil Babka   2015-09-08  462  		 * potentially a lot of iterations if we skip them at once.
9fcd6d2e Vlastimil Babka   2015-09-08  463  		 * The check is racy, but we can consider only valid values
9fcd6d2e Vlastimil Babka   2015-09-08  464  		 * and the only danger is skipping too much.
9fcd6d2e Vlastimil Babka   2015-09-08  465  		 */
9fcd6d2e Vlastimil Babka   2015-09-08  466  		if (PageCompound(page)) {
a93d0214 David Rientjes    2017-08-18  467  			const unsigned int order = compound_order(page);
9fcd6d2e Vlastimil Babka   2015-09-08  468  
a93d0214 David Rientjes    2017-08-18 @469  			if (pageblock_skip_persistent(page, order)) {
a93d0214 David Rientjes    2017-08-18 @470  				set_pageblock_skip(page);
a93d0214 David Rientjes    2017-08-18  471  				blockpfn = end_pfn;
a93d0214 David Rientjes    2017-08-18  472  			} else if (likely(order < MAX_ORDER)) {
a93d0214 David Rientjes    2017-08-18  473  				blockpfn += (1UL << order) - 1;
a93d0214 David Rientjes    2017-08-18  474  				cursor += (1UL << order) - 1;
9fcd6d2e Vlastimil Babka   2015-09-08  475  			}
9fcd6d2e Vlastimil Babka   2015-09-08  476  			goto isolate_fail;
9fcd6d2e Vlastimil Babka   2015-09-08  477  		}
9fcd6d2e Vlastimil Babka   2015-09-08  478  
f40d1e42 Mel Gorman        2012-10-08  479  		if (!PageBuddy(page))
2af120bc Laura Abbott      2014-03-10  480  			goto isolate_fail;
748446bb Mel Gorman        2010-05-24  481  
f40d1e42 Mel Gorman        2012-10-08  482  		/*
69b7189f Vlastimil Babka   2014-10-09  483  		 * If we already hold the lock, we can skip some rechecking.
69b7189f Vlastimil Babka   2014-10-09  484  		 * Note that if we hold the lock now, checked_pageblock was
69b7189f Vlastimil Babka   2014-10-09  485  		 * already set in some previous iteration (or strict is true),
69b7189f Vlastimil Babka   2014-10-09  486  		 * so it is correct to skip the suitable migration target
69b7189f Vlastimil Babka   2014-10-09  487  		 * recheck as well.
69b7189f Vlastimil Babka   2014-10-09  488  		 */
69b7189f Vlastimil Babka   2014-10-09  489  		if (!locked) {
69b7189f Vlastimil Babka   2014-10-09  490  			/*
f40d1e42 Mel Gorman        2012-10-08  491  			 * The zone lock must be held to isolate freepages.
f40d1e42 Mel Gorman        2012-10-08  492  			 * Unfortunately this is a very coarse lock and can be
f40d1e42 Mel Gorman        2012-10-08  493  			 * heavily contended if there are parallel allocations
f40d1e42 Mel Gorman        2012-10-08  494  			 * or parallel compactions. For async compaction do not
f40d1e42 Mel Gorman        2012-10-08  495  			 * spin on the lock and we acquire the lock as late as
f40d1e42 Mel Gorman        2012-10-08  496  			 * possible.
f40d1e42 Mel Gorman        2012-10-08  497  			 */
8b44d279 Vlastimil Babka   2014-10-09  498  			locked = compact_trylock_irqsave(&cc->zone->lock,
8b44d279 Vlastimil Babka   2014-10-09  499  								&flags, cc);
f40d1e42 Mel Gorman        2012-10-08  500  			if (!locked)
f40d1e42 Mel Gorman        2012-10-08  501  				break;
f40d1e42 Mel Gorman        2012-10-08  502  
f40d1e42 Mel Gorman        2012-10-08  503  			/* Recheck this is a buddy page under lock */
f40d1e42 Mel Gorman        2012-10-08  504  			if (!PageBuddy(page))
2af120bc Laura Abbott      2014-03-10  505  				goto isolate_fail;
69b7189f Vlastimil Babka   2014-10-09  506  		}
748446bb Mel Gorman        2010-05-24  507  
66c64223 Joonsoo Kim       2016-07-26  508  		/* Found a free page, will break it into order-0 pages */
66c64223 Joonsoo Kim       2016-07-26  509  		order = page_order(page);
66c64223 Joonsoo Kim       2016-07-26  510  		isolated = __isolate_free_page(page, order);
a4f04f2c David Rientjes    2016-06-24  511  		if (!isolated)
a4f04f2c David Rientjes    2016-06-24  512  			break;
66c64223 Joonsoo Kim       2016-07-26  513  		set_page_private(page, order);
a4f04f2c David Rientjes    2016-06-24  514  
748446bb Mel Gorman        2010-05-24  515  		total_isolated += isolated;
a4f04f2c David Rientjes    2016-06-24  516  		cc->nr_freepages += isolated;
66c64223 Joonsoo Kim       2016-07-26  517  		list_add_tail(&page->lru, freelist);
66c64223 Joonsoo Kim       2016-07-26  518  
a4f04f2c David Rientjes    2016-06-24  519  		if (!strict && cc->nr_migratepages <= cc->nr_freepages) {
932ff6bb Joonsoo Kim       2015-02-12  520  			blockpfn += isolated;
932ff6bb Joonsoo Kim       2015-02-12  521  			break;
932ff6bb Joonsoo Kim       2015-02-12  522  		}
a4f04f2c David Rientjes    2016-06-24  523  		/* Advance to the end of split page */
748446bb Mel Gorman        2010-05-24  524  		blockpfn += isolated - 1;
748446bb Mel Gorman        2010-05-24  525  		cursor += isolated - 1;
2af120bc Laura Abbott      2014-03-10  526  		continue;
2af120bc Laura Abbott      2014-03-10  527  
2af120bc Laura Abbott      2014-03-10  528  isolate_fail:
2af120bc Laura Abbott      2014-03-10  529  		if (strict)
2af120bc Laura Abbott      2014-03-10  530  			break;
2af120bc Laura Abbott      2014-03-10  531  		else
2af120bc Laura Abbott      2014-03-10  532  			continue;
2af120bc Laura Abbott      2014-03-10  533  
748446bb Mel Gorman        2010-05-24  534  	}
748446bb Mel Gorman        2010-05-24  535  
a4f04f2c David Rientjes    2016-06-24  536  	if (locked)
a4f04f2c David Rientjes    2016-06-24  537  		spin_unlock_irqrestore(&cc->zone->lock, flags);
a4f04f2c David Rientjes    2016-06-24  538  
9fcd6d2e Vlastimil Babka   2015-09-08  539  	/*
9fcd6d2e Vlastimil Babka   2015-09-08  540  	 * There is a tiny chance that we have read bogus compound_order(),
9fcd6d2e Vlastimil Babka   2015-09-08  541  	 * so be careful to not go outside of the pageblock.
9fcd6d2e Vlastimil Babka   2015-09-08  542  	 */
9fcd6d2e Vlastimil Babka   2015-09-08  543  	if (unlikely(blockpfn > end_pfn))
9fcd6d2e Vlastimil Babka   2015-09-08  544  		blockpfn = end_pfn;
9fcd6d2e Vlastimil Babka   2015-09-08  545  
e34d85f0 Joonsoo Kim       2015-02-11  546  	trace_mm_compaction_isolate_freepages(*start_pfn, blockpfn,
e34d85f0 Joonsoo Kim       2015-02-11  547  					nr_scanned, total_isolated);
e34d85f0 Joonsoo Kim       2015-02-11  548  
e14c720e Vlastimil Babka   2014-10-09  549  	/* Record how far we have got within the block */
e14c720e Vlastimil Babka   2014-10-09  550  	*start_pfn = blockpfn;
e14c720e Vlastimil Babka   2014-10-09  551  
f40d1e42 Mel Gorman        2012-10-08  552  	/*
f40d1e42 Mel Gorman        2012-10-08  553  	 * If strict isolation is requested by CMA then check that all the
f40d1e42 Mel Gorman        2012-10-08  554  	 * pages requested were isolated. If there were any failures, 0 is
f40d1e42 Mel Gorman        2012-10-08  555  	 * returned and CMA will fail.
f40d1e42 Mel Gorman        2012-10-08  556  	 */
2af120bc Laura Abbott      2014-03-10  557  	if (strict && blockpfn < end_pfn)
f40d1e42 Mel Gorman        2012-10-08  558  		total_isolated = 0;
f40d1e42 Mel Gorman        2012-10-08  559  
bb13ffeb Mel Gorman        2012-10-08  560  	/* Update the pageblock-skip if the whole pageblock was scanned */
bb13ffeb Mel Gorman        2012-10-08  561  	if (blockpfn == end_pfn)
edc2ca61 Vlastimil Babka   2014-10-09  562  		update_pageblock_skip(cc, valid_page, total_isolated, false);
bb13ffeb Mel Gorman        2012-10-08  563  
7f354a54 David Rientjes    2017-02-22  564  	cc->total_free_scanned += nr_scanned;
397487db Mel Gorman        2012-10-19  565  	if (total_isolated)
010fc29a Minchan Kim       2012-12-20  566  		count_compact_events(COMPACTISOLATED, total_isolated);
748446bb Mel Gorman        2010-05-24  567  	return total_isolated;
748446bb Mel Gorman        2010-05-24  568  }
748446bb Mel Gorman        2010-05-24  569  

:::::: The code at line 469 was first introduced by commit
:::::: a93d021466d5ab3b2598e59e3a055c577a3f120b mm, compaction: persistently skip hugetlbfs pageblocks

:::::: TO: David Rientjes <rientjes@google.com>
:::::: CC: Michal Hocko <mhocko@suse.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

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

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

* Re: [memcg:since-4.12 539/540] mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent'
  2017-08-18 16:42 [memcg:since-4.12 539/540] mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent' kbuild test robot
@ 2017-08-18 16:57 ` Waiman Long
  2017-08-18 21:03   ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: Waiman Long @ 2017-08-18 16:57 UTC (permalink / raw)
  To: kbuild test robot; +Cc: kbuild-all, linux-mm, Michal Hocko, Andrew Morton

On 08/18/2017 12:42 PM, kbuild test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-4.12
> head:   ba5e8c23db5729ebdbafad983b07434c829cf5b6
> commit: 500539d3686a835f6a9740ffc38bed5d74951a64 [539/540] debugobjects: make kmemleak ignore debug objects
> config: i386-randconfig-s0-08141822 (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
>         git checkout 500539d3686a835f6a9740ffc38bed5d74951a64
>         # save the attached .config to linux build tree
>         make ARCH=i386 
>
> All errors (new ones prefixed by >>):
>
>    mm/compaction.c: In function 'isolate_freepages_block':
>>> mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent' [-Werror=implicit-function-declaration]
>        if (pageblock_skip_persistent(page, order)) {
>            ^~~~~~~~~~~~~~~~~~~~~~~~~
>>> mm/compaction.c:470:5: error: implicit declaration of function 'set_pageblock_skip' [-Werror=implicit-function-declaration]
>         set_pageblock_skip(page);
>         ^~~~~~~~~~~~~~~~~~
>    cc1: some warnings being treated as errors
>
> vim +/pageblock_skip_persistent +469 mm/compaction.c

It is not me. My patch doesn't touch any header file and
mm/compaction.c. So it can't cause this kind of errors.

Cheers,
Longman

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: [memcg:since-4.12 539/540] mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent'
  2017-08-18 16:57 ` Waiman Long
@ 2017-08-18 21:03   ` Andrew Morton
  2017-08-21  6:38     ` Michal Hocko
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2017-08-18 21:03 UTC (permalink / raw)
  To: Waiman Long
  Cc: kbuild test robot, kbuild-all, linux-mm, Michal Hocko, David Rientjes

On Fri, 18 Aug 2017 12:57:48 -0400 Waiman Long <longman@redhat.com> wrote:

> On 08/18/2017 12:42 PM, kbuild test robot wrote:
> > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-4.12
> > head:   ba5e8c23db5729ebdbafad983b07434c829cf5b6
> > commit: 500539d3686a835f6a9740ffc38bed5d74951a64 [539/540] debugobjects: make kmemleak ignore debug objects
> > config: i386-randconfig-s0-08141822 (attached as .config)
> > compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> > reproduce:
> >         git checkout 500539d3686a835f6a9740ffc38bed5d74951a64
> >         # save the attached .config to linux build tree
> >         make ARCH=i386 
> >
> > All errors (new ones prefixed by >>):
> >
> >    mm/compaction.c: In function 'isolate_freepages_block':
> >>> mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent' [-Werror=implicit-function-declaration]
> >        if (pageblock_skip_persistent(page, order)) {
> >            ^~~~~~~~~~~~~~~~~~~~~~~~~
> >>> mm/compaction.c:470:5: error: implicit declaration of function 'set_pageblock_skip' [-Werror=implicit-function-declaration]
> >         set_pageblock_skip(page);
> >         ^~~~~~~~~~~~~~~~~~
> >    cc1: some warnings being treated as errors
> >
> > vim +/pageblock_skip_persistent +469 mm/compaction.c
> 
> It is not me. My patch doesn't touch any header file and
> mm/compaction.c. So it can't cause this kind of errors.
> 

Yes, that's wrong.  It's David's "mm, compaction: persistently skip
hugetlbfs pageblocks".  I'll do this:


--- a/mm/compaction.c~mm-compaction-persistently-skip-hugetlbfs-pageblocks-fix
+++ a/mm/compaction.c
@@ -327,6 +327,11 @@ static void update_pageblock_skip(struct
 			bool migrate_scanner)
 {
 }
+
+static bool pageblock_skip_persistent(struct page *page, unsigned int order)
+{
+	return false;
+}
 #endif /* CONFIG_COMPACTION */
 
 /*
--- a/include/linux/pageblock-flags.h~mm-compaction-persistently-skip-hugetlbfs-pageblocks-fix
+++ a/include/linux/pageblock-flags.h
@@ -96,6 +96,8 @@ void set_pfnblock_flags_mask(struct page
 #define set_pageblock_skip(page) \
 			set_pageblock_flags_group(page, 1, PB_migrate_skip,  \
 							PB_migrate_skip)
+#else
+#define set_pageblock_skip(page) do { } while (0)
 #endif /* CONFIG_COMPACTION */
 
 #endif	/* PAGEBLOCK_FLAGS_H */

Those macros in pageblock-flags.h are obnoxious and reference their
args multiple times.  I'll see what happens if they're turned into C
functions...

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

* Re: [memcg:since-4.12 539/540] mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent'
  2017-08-18 21:03   ` Andrew Morton
@ 2017-08-21  6:38     ` Michal Hocko
  0 siblings, 0 replies; 4+ messages in thread
From: Michal Hocko @ 2017-08-21  6:38 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Waiman Long, kbuild test robot, kbuild-all, linux-mm, David Rientjes

On Fri 18-08-17 14:03:00, Andrew Morton wrote:
> On Fri, 18 Aug 2017 12:57:48 -0400 Waiman Long <longman@redhat.com> wrote:
> 
> > On 08/18/2017 12:42 PM, kbuild test robot wrote:
> > > tree:   https://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-4.12
> > > head:   ba5e8c23db5729ebdbafad983b07434c829cf5b6
> > > commit: 500539d3686a835f6a9740ffc38bed5d74951a64 [539/540] debugobjects: make kmemleak ignore debug objects
> > > config: i386-randconfig-s0-08141822 (attached as .config)
> > > compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> > > reproduce:
> > >         git checkout 500539d3686a835f6a9740ffc38bed5d74951a64
> > >         # save the attached .config to linux build tree
> > >         make ARCH=i386 
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > >    mm/compaction.c: In function 'isolate_freepages_block':
> > >>> mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent' [-Werror=implicit-function-declaration]
> > >        if (pageblock_skip_persistent(page, order)) {
> > >            ^~~~~~~~~~~~~~~~~~~~~~~~~
> > >>> mm/compaction.c:470:5: error: implicit declaration of function 'set_pageblock_skip' [-Werror=implicit-function-declaration]
> > >         set_pageblock_skip(page);
> > >         ^~~~~~~~~~~~~~~~~~
> > >    cc1: some warnings being treated as errors
> > >
> > > vim +/pageblock_skip_persistent +469 mm/compaction.c
> > 
> > It is not me. My patch doesn't touch any header file and
> > mm/compaction.c. So it can't cause this kind of errors.
> > 
> 
> Yes, that's wrong.  It's David's "mm, compaction: persistently skip
> hugetlbfs pageblocks".  I'll do this:

David has already posted the fix
http://lkml.kernel.org/r/alpine.DEB.2.10.1708201734390.117182@chino.kir.corp.google.com
 
> --- a/mm/compaction.c~mm-compaction-persistently-skip-hugetlbfs-pageblocks-fix
> +++ a/mm/compaction.c
> @@ -327,6 +327,11 @@ static void update_pageblock_skip(struct
>  			bool migrate_scanner)
>  {
>  }
> +
> +static bool pageblock_skip_persistent(struct page *page, unsigned int order)
> +{
> +	return false;
> +}
>  #endif /* CONFIG_COMPACTION */
>  
>  /*
> --- a/include/linux/pageblock-flags.h~mm-compaction-persistently-skip-hugetlbfs-pageblocks-fix
> +++ a/include/linux/pageblock-flags.h
> @@ -96,6 +96,8 @@ void set_pfnblock_flags_mask(struct page
>  #define set_pageblock_skip(page) \
>  			set_pageblock_flags_group(page, 1, PB_migrate_skip,  \
>  							PB_migrate_skip)
> +#else
> +#define set_pageblock_skip(page) do { } while (0)
>  #endif /* CONFIG_COMPACTION */
>  
>  #endif	/* PAGEBLOCK_FLAGS_H */
> 
> Those macros in pageblock-flags.h are obnoxious and reference their
> args multiple times.  I'll see what happens if they're turned into C
> functions...

-- 
Michal Hocko
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

end of thread, other threads:[~2017-08-21  6:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-18 16:42 [memcg:since-4.12 539/540] mm/compaction.c:469:8: error: implicit declaration of function 'pageblock_skip_persistent' kbuild test robot
2017-08-18 16:57 ` Waiman Long
2017-08-18 21:03   ` Andrew Morton
2017-08-21  6:38     ` Michal Hocko

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.