From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH v2 5/5] memcg, inode: protect page cache from freeing inode
Date: Wed, 25 Dec 2019 21:01:35 +0800 [thread overview]
Message-ID: <201912252008.Lm7IU6Lm%lkp@intel.com> (raw)
In-Reply-To: <1577174006-13025-6-git-send-email-laoar.shao@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4767 bytes --]
Hi Yafang,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.5-rc3 next-20191219]
[cannot apply to mmotm/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Yafang-Shao/protect-page-cache-from-freeing-inode/20191225-193636
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 46cf053efec6a3a5f343fead837777efe8252a46
config: um-x86_64_defconfig (attached as .config)
compiler: gcc-7 (Debian 7.5.0-3) 7.5.0
reproduce:
# save the attached .config to linux build tree
make ARCH=um SUBARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/swap.h:9:0,
from mm/vmscan.c:22:
include/linux/memcontrol.h:872:23: error: conflicting types for 'memcg'
struct inode *memcg)
^~~~~
include/linux/memcontrol.h:871:63: note: previous definition of 'memcg' was here
static inline bool memcg_can_reclaim_inode(struct mem_cgroup *memcg,
^~~~~
mm/vmscan.c: In function 'shrink_node_memcgs':
>> mm/vmscan.c:2670:9: error: dereferencing pointer to incomplete type 'struct mem_cgroup'
memcg->in_low_reclaim = 1;
^~
--
In file included from include/linux/swap.h:9:0,
from fs/inode.c:11:
include/linux/memcontrol.h:872:23: error: conflicting types for 'memcg'
struct inode *memcg)
^~~~~
include/linux/memcontrol.h:871:63: note: previous definition of 'memcg' was here
static inline bool memcg_can_reclaim_inode(struct mem_cgroup *memcg,
^~~~~
fs/inode.c: In function 'prune_icache_sb':
>> fs/inode.c:822:7: error: 'struct inode_head' has no member named 'memcg'
ihead.memcg = sc->memcg;
^
vim +2670 mm/vmscan.c
2639
2640 static void shrink_node_memcgs(pg_data_t *pgdat, struct scan_control *sc)
2641 {
2642 struct mem_cgroup *target_memcg = sc->target_mem_cgroup;
2643 struct mem_cgroup *memcg;
2644
2645 memcg = mem_cgroup_iter(target_memcg, NULL, NULL);
2646 do {
2647 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
2648 unsigned long reclaimed;
2649 unsigned long scanned;
2650
2651 switch (mem_cgroup_protected(target_memcg, memcg)) {
2652 case MEMCG_PROT_MIN:
2653 /*
2654 * Hard protection.
2655 * If there is no reclaimable memory, OOM.
2656 */
2657 continue;
2658 case MEMCG_PROT_LOW:
2659 /*
2660 * Soft protection.
2661 * Respect the protection only as long as
2662 * there is an unprotected supply
2663 * of reclaimable memory from other cgroups.
2664 */
2665 if (!sc->memcg_low_reclaim) {
2666 sc->memcg_low_skipped = 1;
2667 continue;
2668 }
2669
> 2670 memcg->in_low_reclaim = 1;
2671 memcg_memory_event(memcg, MEMCG_LOW);
2672 break;
2673 case MEMCG_PROT_NONE:
2674 /*
2675 * All protection thresholds breached. We may
2676 * still choose to vary the scan pressure
2677 * applied based on by how much the cgroup in
2678 * question has exceeded its protection
2679 * thresholds (see get_scan_count).
2680 */
2681 break;
2682 case MEMCG_PROT_SKIP:
2683 /*
2684 * Skip scanning this memcg if the usage of it is
2685 * zero.
2686 */
2687 continue;
2688 }
2689
2690 reclaimed = sc->nr_reclaimed;
2691 scanned = sc->nr_scanned;
2692
2693 shrink_lruvec(lruvec, sc);
2694
2695 shrink_slab(sc->gfp_mask, pgdat->node_id, memcg,
2696 sc->priority);
2697
2698 if (memcg->in_low_reclaim)
2699 memcg->in_low_reclaim = 0;
2700
2701 /* Record the group's reclaim efficiency */
2702 vmpressure(sc->gfp_mask, memcg, false,
2703 sc->nr_scanned - scanned,
2704 sc->nr_reclaimed - reclaimed);
2705
2706 } while ((memcg = mem_cgroup_iter(target_memcg, memcg, NULL)));
2707 }
2708
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 8440 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
To: Yafang Shao <laoar.shao@gmail.com>
Cc: kbuild-all@lists.01.org, hannes@cmpxchg.org, david@fromorbit.com,
mhocko@kernel.org, vdavydov.dev@gmail.com,
akpm@linux-foundation.org, viro@zeniv.linux.org.uk,
linux-mm@kvack.org, linux-fsdevel@vger.kernel.org,
Yafang Shao <laoar.shao@gmail.com>, Roman Gushchin <guro@fb.com>,
Chris Down <chris@chrisdown.name>,
Dave Chinner <dchinner@redhat.com>
Subject: Re: [PATCH v2 5/5] memcg, inode: protect page cache from freeing inode
Date: Wed, 25 Dec 2019 21:01:35 +0800 [thread overview]
Message-ID: <201912252008.Lm7IU6Lm%lkp@intel.com> (raw)
In-Reply-To: <1577174006-13025-6-git-send-email-laoar.shao@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4639 bytes --]
Hi Yafang,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v5.5-rc3 next-20191219]
[cannot apply to mmotm/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Yafang-Shao/protect-page-cache-from-freeing-inode/20191225-193636
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 46cf053efec6a3a5f343fead837777efe8252a46
config: um-x86_64_defconfig (attached as .config)
compiler: gcc-7 (Debian 7.5.0-3) 7.5.0
reproduce:
# save the attached .config to linux build tree
make ARCH=um SUBARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/swap.h:9:0,
from mm/vmscan.c:22:
include/linux/memcontrol.h:872:23: error: conflicting types for 'memcg'
struct inode *memcg)
^~~~~
include/linux/memcontrol.h:871:63: note: previous definition of 'memcg' was here
static inline bool memcg_can_reclaim_inode(struct mem_cgroup *memcg,
^~~~~
mm/vmscan.c: In function 'shrink_node_memcgs':
>> mm/vmscan.c:2670:9: error: dereferencing pointer to incomplete type 'struct mem_cgroup'
memcg->in_low_reclaim = 1;
^~
--
In file included from include/linux/swap.h:9:0,
from fs/inode.c:11:
include/linux/memcontrol.h:872:23: error: conflicting types for 'memcg'
struct inode *memcg)
^~~~~
include/linux/memcontrol.h:871:63: note: previous definition of 'memcg' was here
static inline bool memcg_can_reclaim_inode(struct mem_cgroup *memcg,
^~~~~
fs/inode.c: In function 'prune_icache_sb':
>> fs/inode.c:822:7: error: 'struct inode_head' has no member named 'memcg'
ihead.memcg = sc->memcg;
^
vim +2670 mm/vmscan.c
2639
2640 static void shrink_node_memcgs(pg_data_t *pgdat, struct scan_control *sc)
2641 {
2642 struct mem_cgroup *target_memcg = sc->target_mem_cgroup;
2643 struct mem_cgroup *memcg;
2644
2645 memcg = mem_cgroup_iter(target_memcg, NULL, NULL);
2646 do {
2647 struct lruvec *lruvec = mem_cgroup_lruvec(memcg, pgdat);
2648 unsigned long reclaimed;
2649 unsigned long scanned;
2650
2651 switch (mem_cgroup_protected(target_memcg, memcg)) {
2652 case MEMCG_PROT_MIN:
2653 /*
2654 * Hard protection.
2655 * If there is no reclaimable memory, OOM.
2656 */
2657 continue;
2658 case MEMCG_PROT_LOW:
2659 /*
2660 * Soft protection.
2661 * Respect the protection only as long as
2662 * there is an unprotected supply
2663 * of reclaimable memory from other cgroups.
2664 */
2665 if (!sc->memcg_low_reclaim) {
2666 sc->memcg_low_skipped = 1;
2667 continue;
2668 }
2669
> 2670 memcg->in_low_reclaim = 1;
2671 memcg_memory_event(memcg, MEMCG_LOW);
2672 break;
2673 case MEMCG_PROT_NONE:
2674 /*
2675 * All protection thresholds breached. We may
2676 * still choose to vary the scan pressure
2677 * applied based on by how much the cgroup in
2678 * question has exceeded its protection
2679 * thresholds (see get_scan_count).
2680 */
2681 break;
2682 case MEMCG_PROT_SKIP:
2683 /*
2684 * Skip scanning this memcg if the usage of it is
2685 * zero.
2686 */
2687 continue;
2688 }
2689
2690 reclaimed = sc->nr_reclaimed;
2691 scanned = sc->nr_scanned;
2692
2693 shrink_lruvec(lruvec, sc);
2694
2695 shrink_slab(sc->gfp_mask, pgdat->node_id, memcg,
2696 sc->priority);
2697
2698 if (memcg->in_low_reclaim)
2699 memcg->in_low_reclaim = 0;
2700
2701 /* Record the group's reclaim efficiency */
2702 vmpressure(sc->gfp_mask, memcg, false,
2703 sc->nr_scanned - scanned,
2704 sc->nr_reclaimed - reclaimed);
2705
2706 } while ((memcg = mem_cgroup_iter(target_memcg, memcg, NULL)));
2707 }
2708
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 8440 bytes --]
next prev parent reply other threads:[~2019-12-25 13:01 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-24 7:53 [PATCH v2 0/5] protect page cache from freeing inode Yafang Shao
2019-12-24 7:53 ` [PATCH v2 1/5] mm, memcg: reduce size of struct mem_cgroup by using bit field Yafang Shao
2019-12-26 21:23 ` Roman Gushchin
2019-12-27 1:03 ` Yafang Shao
2019-12-24 7:53 ` [PATCH v2 2/5] mm, memcg: introduce MEMCG_PROT_SKIP for memcg zero usage case Yafang Shao
2019-12-26 21:36 ` Roman Gushchin
2019-12-27 1:09 ` Yafang Shao
2019-12-24 7:53 ` [PATCH v2 3/5] mm, memcg: reset memcg's memory.{min, low} for reclaiming itself Yafang Shao
2019-12-26 21:45 ` Roman Gushchin
2019-12-27 1:11 ` Yafang Shao
2019-12-24 7:53 ` [PATCH v2 4/5] mm: make memcg visible to lru walker isolation function Yafang Shao
2020-01-04 3:35 ` Dave Chinner
2020-01-04 7:26 ` Yafang Shao
2020-01-04 21:23 ` Dave Chinner
2020-01-05 1:43 ` Yafang Shao
2020-01-06 0:17 ` Dave Chinner
2020-01-06 14:41 ` Yafang Shao
2020-01-06 21:31 ` Dave Chinner
2020-01-07 13:22 ` Yafang Shao
2019-12-24 7:53 ` [PATCH v2 5/5] memcg, inode: protect page cache from freeing inode Yafang Shao
2019-12-25 13:01 ` kbuild test robot [this message]
2019-12-25 13:01 ` kbuild test robot
2019-12-25 13:18 ` kbuild test robot
2019-12-25 13:18 ` kbuild test robot
2019-12-26 5:09 ` Yafang Shao
2020-01-04 3:55 ` Dave Chinner
2020-01-04 7:42 ` Yafang Shao
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=201912252008.Lm7IU6Lm%lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/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.