Message ID | c31d36bd097c6e9e69fc0f409c43b78e53e64fc2.1637766801.git.baolin.wang@linux.alibaba.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm: migrate: Add more comments for selecting target node randomly | expand |
On Wed, Nov 24, 2021 at 7:17 AM Baolin Wang <baolin.wang@linux.alibaba.com> wrote: > > As Yang Shi suggested [1], it will be helpful to explain why we should > select target node randomly now if there are multiple target nodes. > > [1] https://lore.kernel.org/all/CAHbLzkqSqCL+g7dfzeOw8fPyeEC0BBv13Ny1UVGHDkadnQdR=g@mail.gmail.com/ > Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com> > --- > mm/migrate.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/mm/migrate.c b/mm/migrate.c > index 8d39720de4eb..d9af89248196 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -1209,6 +1209,14 @@ int next_demotion_node(int node) > /* > * If there are multiple target nodes, just select one > * target node randomly. > + * > + * In addition, we can also use round-robin to select > + * target node, but we should introduce another variable > + * for node_demotion[] to record last selected target node, > + * that may cause cache ping-pong due to the changing of > + * last target node. Or introducing per-cpu data to avoid > + * caching issue, which seems more complicated. So selecting > + * target node randomly seems better until now. Thank you. Reviewed-by: Yang Shi <shy828301@gmail.com> > */ > index = get_random_int() % target_nr; > break; > -- > 2.27.0 >
diff --git a/mm/migrate.c b/mm/migrate.c index 8d39720de4eb..d9af89248196 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -1209,6 +1209,14 @@ int next_demotion_node(int node) /* * If there are multiple target nodes, just select one * target node randomly. + * + * In addition, we can also use round-robin to select + * target node, but we should introduce another variable + * for node_demotion[] to record last selected target node, + * that may cause cache ping-pong due to the changing of + * last target node. Or introducing per-cpu data to avoid + * caching issue, which seems more complicated. So selecting + * target node randomly seems better until now. */ index = get_random_int() % target_nr; break;
As Yang Shi suggested [1], it will be helpful to explain why we should select target node randomly now if there are multiple target nodes. [1] https://lore.kernel.org/all/CAHbLzkqSqCL+g7dfzeOw8fPyeEC0BBv13Ny1UVGHDkadnQdR=g@mail.gmail.com/ Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com> --- mm/migrate.c | 8 ++++++++ 1 file changed, 8 insertions(+)