Re: [PATCH v8 5/5] powerpc/hv-24x7: Update post_mobility_fixup() to handle migration
From: Nathan Lynch <hidden>
Date: 2020-05-11 19:42:23
Hello, Kajol Jain [off-list ref] writes:
Function 'read_sys_info_pseries()' is added to get system parameter values like number of sockets and chips per socket. and it gets these details via rtas_call with token "PROCESSOR_MODULE_INFO". Incase lpar migrate from one system to another, system parameter details like chips per sockets or number of sockets might change. So, it needs to be re-initialized otherwise, these values corresponds to previous system values. This patch adds a call to 'read_sys_info_pseries()' from 'post-mobility_fixup()' to re-init the physsockets and physchips values Signed-off-by: Kajol Jain <redacted> --- arch/powerpc/platforms/pseries/mobility.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
Please cc me on patches for this code, thanks. I see no technical problems with how this patch handles partition migration. However: "Update post_mobility_fixup() to handle migration" is not an appropriate summary for this change. post_mobility_fixup() already handles migration. A better summary would be "powerpc/pseries: update hv-24x7 info after migration"
quoted hunk ↗ jump to hunk
diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c index b571285f6c14..0fb8f1e6e9d2 100644 --- a/arch/powerpc/platforms/pseries/mobility.c +++ b/arch/powerpc/platforms/pseries/mobility.c@@ -42,6 +42,12 @@ struct update_props_workarea { #define MIGRATION_SCOPE (1) #define PRRN_SCOPE -2 +#ifdef CONFIG_HV_PERF_CTRS +void read_sys_info_pseries(void); +#else +static inline void read_sys_info_pseries(void) { } +#endif
This should go in a header.
quoted hunk ↗ jump to hunk
static int mobility_rtas_call(int token, char *buf, s32 scope) { int rc;@@ -371,6 +377,16 @@ void post_mobility_fixup(void) /* Possibly switch to a new RFI flush type */ pseries_setup_rfi_flush(); + /* + * In case an Lpar migrates from one system to another, system + * parameter details like chips per sockets, cores per chip and + * number of sockets details might change. + * So, they needs to be re-initialized otherwise the + * values will correspond to the previous system. + * Call read_sys_info_pseries() to reinitialise the values. + */
This is needlessly verbose; any literate reader of this code knows this is used immediately after resuming from a suspend (migration). If you give your hook a more descriptive name, the comment becomes unnecessary.
+ read_sys_info_pseries(); +