Messages in this thread | | | From | "Huang\, Ying" <> | Subject | Re: [RFC][PATCH 8/8] mm/numa: new reclaim mode to enable reclaim-based migration | Date | Fri, 03 Jul 2020 17:30:09 +0800 |
| |
Dave Hansen <dave.hansen@linux.intel.com> writes: > +/* > + * React to hotplug events that might online or offline > + * NUMA nodes. > + * > + * This leaves migrate-on-reclaim transiently disabled > + * between the MEM_GOING_OFFLINE and MEM_OFFLINE events. > + * This runs whether RECLAIM_MIGRATE is enabled or not. > + * That ensures that the user can turn RECLAIM_MIGRATE > + * without needing to recalcuate migration targets. > + */ > +#if defined(CONFIG_MEMORY_HOTPLUG) > +static int __meminit migrate_on_reclaim_callback(struct notifier_block *self, > + unsigned long action, void *arg) > +{ > + switch (action) { > + case MEM_GOING_OFFLINE: > + /* > + * Make sure there are not transient states where > + * an offline node is a migration target. This > + * will leave migration disabled until the offline > + * completes and the MEM_OFFLINE case below runs. > + */ > + disable_all_migrate_targets(); > + break; > + case MEM_OFFLINE: > + case MEM_ONLINE: > + /* > + * Recalculate the target nodes once the node > + * reaches its final state (online or offline). > + */ > + set_migration_target_nodes(); > + break; > + case MEM_CANCEL_OFFLINE: > + /* > + * MEM_GOING_OFFLINE disabled all the migration > + * targets. Reenable them. > + */ > + set_migration_target_nodes(); > + break; > + case MEM_GOING_ONLINE: > + case MEM_CANCEL_ONLINE: > + break;
I think we need to call disable_all_migrate_targets()/set_migration_target_nodes() for CPU online/offline event too. Because that will influence node_state(nid, N_CPU). Which will influence node demotion relationship.
> + } > + > + return notifier_from_errno(0); > } > +
Best Regards, Huang, Ying
| |