mm/migrate: de-duplicate migrate_reason strings
In order to remove the need to manually keep three different files in synch, provide a common definition of the mapping between enum migrate_reason, and the associated strings for each enum item. 1. Use the tracing system's mapping of enums to strings, by redefining and reusing the MIGRATE_REASON and supporting macros, and using that to populate the string array in mm/debug.c. 2. Move enum migrate_reason to migrate_mode.h. This is not strictly necessary for this patch, but migrate mode and migrate reason go together, so this will slightly clarify things. Link: https://lkml.kernel.org/r/20210922041755.141817-2-jhubbard@nvidia.com Signed-off-by: John Hubbard <jhubbard@nvidia.com> Reviewed-by: Weizhao Ouyang <o451686892@gmail.com> Cc: "Huang, Ying" <ying.huang@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
b5389086ad
commit
8eb42beac8
|
@ -19,24 +19,7 @@ struct migration_target_control;
|
|||
*/
|
||||
#define MIGRATEPAGE_SUCCESS 0
|
||||
|
||||
/*
|
||||
* Keep sync with:
|
||||
* - macro MIGRATE_REASON in include/trace/events/migrate.h
|
||||
* - migrate_reason_names[MR_TYPES] in mm/debug.c
|
||||
*/
|
||||
enum migrate_reason {
|
||||
MR_COMPACTION,
|
||||
MR_MEMORY_FAILURE,
|
||||
MR_MEMORY_HOTPLUG,
|
||||
MR_SYSCALL, /* also applies to cpusets */
|
||||
MR_MEMPOLICY_MBIND,
|
||||
MR_NUMA_MISPLACED,
|
||||
MR_CONTIG_RANGE,
|
||||
MR_LONGTERM_PIN,
|
||||
MR_DEMOTION,
|
||||
MR_TYPES
|
||||
};
|
||||
|
||||
/* Defined in mm/debug.c: */
|
||||
extern const char *migrate_reason_names[MR_TYPES];
|
||||
|
||||
#ifdef CONFIG_MIGRATION
|
||||
|
|
|
@ -19,4 +19,17 @@ enum migrate_mode {
|
|||
MIGRATE_SYNC_NO_COPY,
|
||||
};
|
||||
|
||||
enum migrate_reason {
|
||||
MR_COMPACTION,
|
||||
MR_MEMORY_FAILURE,
|
||||
MR_MEMORY_HOTPLUG,
|
||||
MR_SYSCALL, /* also applies to cpusets */
|
||||
MR_MEMPOLICY_MBIND,
|
||||
MR_NUMA_MISPLACED,
|
||||
MR_CONTIG_RANGE,
|
||||
MR_LONGTERM_PIN,
|
||||
MR_DEMOTION,
|
||||
MR_TYPES
|
||||
};
|
||||
|
||||
#endif /* MIGRATE_MODE_H_INCLUDED */
|
||||
|
|
20
mm/debug.c
20
mm/debug.c
|
@ -16,17 +16,19 @@
|
|||
#include <linux/ctype.h>
|
||||
|
||||
#include "internal.h"
|
||||
#include <trace/events/migrate.h>
|
||||
|
||||
/*
|
||||
* Define EM() and EMe() so that MIGRATE_REASON from trace/events/migrate.h can
|
||||
* be used to populate migrate_reason_names[].
|
||||
*/
|
||||
#undef EM
|
||||
#undef EMe
|
||||
#define EM(a, b) b,
|
||||
#define EMe(a, b) b
|
||||
|
||||
const char *migrate_reason_names[MR_TYPES] = {
|
||||
"compaction",
|
||||
"memory_failure",
|
||||
"memory_hotplug",
|
||||
"syscall_or_cpuset",
|
||||
"mempolicy_mbind",
|
||||
"numa_misplaced",
|
||||
"contig_range",
|
||||
"longterm_pin",
|
||||
"demotion",
|
||||
MIGRATE_REASON
|
||||
};
|
||||
|
||||
const struct trace_print_flags pageflag_names[] = {
|
||||
|
|
Loading…
Reference in New Issue