2023-02-15 02:57:46

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: manual merge of the mm tree with the bpf-next tree

Hi all,

Today's linux-next merge of the mm tree got conflicts in:

include/linux/memcontrol.h
mm/memcontrol.c

between commit:

b6c1a8af5b1e ("mm: memcontrol: add new kernel parameter cgroup.memory=nobpf")

from the bpf-next tree and commit:

2006d382484e ("mm: memcontrol: rename memcg_kmem_enabled()")

from the mm tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

--
Cheers,
Stephen Rothwell

diff --cc include/linux/memcontrol.h
index e7310363f0cb,5567319027d1..000000000000
--- a/include/linux/memcontrol.h
+++ b/include/linux/memcontrol.h
@@@ -1776,17 -1776,11 +1776,17 @@@ struct obj_cgroup *get_obj_cgroup_from_
int obj_cgroup_charge(struct obj_cgroup *objcg, gfp_t gfp, size_t size);
void obj_cgroup_uncharge(struct obj_cgroup *objcg, size_t size);

+extern struct static_key_false memcg_bpf_enabled_key;
+static inline bool memcg_bpf_enabled(void)
+{
+ return static_branch_likely(&memcg_bpf_enabled_key);
+}
+
- extern struct static_key_false memcg_kmem_enabled_key;
+ extern struct static_key_false memcg_kmem_online_key;

- static inline bool memcg_kmem_enabled(void)
+ static inline bool memcg_kmem_online(void)
{
- return static_branch_likely(&memcg_kmem_enabled_key);
+ return static_branch_likely(&memcg_kmem_online_key);
}

static inline int memcg_kmem_charge_page(struct page *page, gfp_t gfp,
@@@ -1860,12 -1854,7 +1860,12 @@@ static inline struct obj_cgroup *get_ob
return NULL;
}

+static inline bool memcg_bpf_enabled(void)
+{
+ return false;
+}
+
- static inline bool memcg_kmem_enabled(void)
+ static inline bool memcg_kmem_online(void)
{
return false;
}
diff --cc mm/memcontrol.c
index 186a3a56dd7c,3e3cdb9bed95..000000000000
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@@ -348,11 -345,8 +348,11 @@@ static void memcg_reparent_objcgs(struc
* conditional to this static branch, we'll have to allow modules that does
* kmem_cache_alloc and the such to see this symbol as well
*/
- DEFINE_STATIC_KEY_FALSE(memcg_kmem_enabled_key);
- EXPORT_SYMBOL(memcg_kmem_enabled_key);
+ DEFINE_STATIC_KEY_FALSE(memcg_kmem_online_key);
+ EXPORT_SYMBOL(memcg_kmem_online_key);
+
+DEFINE_STATIC_KEY_FALSE(memcg_bpf_enabled_key);
+EXPORT_SYMBOL(memcg_bpf_enabled_key);
#endif

/**


Attachments:
(No filename) (488.00 B)
OpenPGP digital signature

2023-02-15 03:26:39

by Roman Gushchin

[permalink] [raw]
Subject: Re: linux-next: manual merge of the mm tree with the bpf-next tree

Hi Stephen,

the merge looks good to me. Thank you for doing this!

Roman

> On Feb 14, 2023, at 6:57 PM, Stephen Rothwell <[email protected]> wrote:
>
> Hi all,
>
> Today's linux-next merge of the mm tree got conflicts in:
>
> include/linux/memcontrol.h
> mm/memcontrol.c
>
> between commit:
>
> b6c1a8af5b1e ("mm: memcontrol: add new kernel parameter cgroup.memory=nobpf")
>
> from the bpf-next tree and commit:
>
> 2006d382484e ("mm: memcontrol: rename memcg_kmem_enabled()")
>
> from the mm tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc include/linux/memcontrol.h
> index e7310363f0cb,5567319027d1..000000000000
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@@ -1776,17 -1776,11 +1776,17 @@@ struct obj_cgroup *get_obj_cgroup_from_
> int obj_cgroup_charge(struct obj_cgroup *objcg, gfp_t gfp, size_t size);
> void obj_cgroup_uncharge(struct obj_cgroup *objcg, size_t size);
>
> +extern struct static_key_false memcg_bpf_enabled_key;
> +static inline bool memcg_bpf_enabled(void)
> +{
> + return static_branch_likely(&memcg_bpf_enabled_key);
> +}
> +
> - extern struct static_key_false memcg_kmem_enabled_key;
> + extern struct static_key_false memcg_kmem_online_key;
>
> - static inline bool memcg_kmem_enabled(void)
> + static inline bool memcg_kmem_online(void)
> {
> - return static_branch_likely(&memcg_kmem_enabled_key);
> + return static_branch_likely(&memcg_kmem_online_key);
> }
>
> static inline int memcg_kmem_charge_page(struct page *page, gfp_t gfp,
> @@@ -1860,12 -1854,7 +1860,12 @@@ static inline struct obj_cgroup *get_ob
> return NULL;
> }
>
> +static inline bool memcg_bpf_enabled(void)
> +{
> + return false;
> +}
> +
> - static inline bool memcg_kmem_enabled(void)
> + static inline bool memcg_kmem_online(void)
> {
> return false;
> }
> diff --cc mm/memcontrol.c
> index 186a3a56dd7c,3e3cdb9bed95..000000000000
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@@ -348,11 -345,8 +348,11 @@@ static void memcg_reparent_objcgs(struc
> * conditional to this static branch, we'll have to allow modules that does
> * kmem_cache_alloc and the such to see this symbol as well
> */
> - DEFINE_STATIC_KEY_FALSE(memcg_kmem_enabled_key);
> - EXPORT_SYMBOL(memcg_kmem_enabled_key);
> + DEFINE_STATIC_KEY_FALSE(memcg_kmem_online_key);
> + EXPORT_SYMBOL(memcg_kmem_online_key);
> +
> +DEFINE_STATIC_KEY_FALSE(memcg_bpf_enabled_key);
> +EXPORT_SYMBOL(memcg_bpf_enabled_key);
> #endif
>
> /**