Subject: Re: linux-next: manual merge of the mm tree with the bpf-next tree

From: Roman Gushchin <[email-masked]>
Date: Tue, 14 Feb 2023 19:26:18 -0800

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-masked]> 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
> 
>  /**