Re: linux-next: manual merge of the mm-stable tree with the bitmap tree

From: Yury Norov
Date: Tue Sep 27 2022 - 15:40:35 EST


On Tue, Sep 27, 2022 at 08:26:49PM +0100, broonie@xxxxxxxxxx wrote:
> Hi all,
>
> Today's linux-next merge of the mm-stable tree got a conflict in:
>
> include/linux/nodemask.h
>
> between commit:
>
> 97848c10f9f8a ("lib/bitmap: remove bitmap_ord_to_pos")
>
> from the bitmap tree and commit:
>
> 3e061d924fe9c ("lib/nodemask: optimize node_random for nodemask with single NUMA node")
>
> from the mm-stable tree.

The fix is correct. I sent the updated patch to Stephen, and
apparently had to CC you. Thanks.

>
> 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.
>
> diff --cc include/linux/nodemask.h
> index 0c45fb066caa7,e66742db741cf..0000000000000
> --- a/include/linux/nodemask.h
> +++ b/include/linux/nodemask.h
> @@@ -504,11 -505,21 +505,20 @@@ static inline int num_node_state(enum n
> static inline int node_random(const nodemask_t *maskp)
> {
> #if defined(CONFIG_NUMA) && (MAX_NUMNODES > 1)
> - int w, bit = NUMA_NO_NODE;
> + int w, bit;
>
> w = nodes_weight(*maskp);
> - if (w)
> + switch (w) {
> + case 0:
> + bit = NUMA_NO_NODE;
> + break;
> + case 1:
> + bit = first_node(*maskp);
> + break;
> + default:
> - bit = bitmap_ord_to_pos(maskp->bits,
> - get_random_int() % w, MAX_NUMNODES);
> + bit = find_nth_bit(maskp->bits, MAX_NUMNODES, get_random_int() % w);
> + break;
> + }
> return bit;
> #else
> return 0;