Traditionally after a migration operation drmgr has coordinated the device tree update with the kernel in userspace via the ugly /proc/ppc64/ofdt interface. This can be better done fully in the kernel where support already exists. Currently, drmgr makes a faux ibm,suspend-me RTAS call which we intercept in the kernel so that we can check VASI state for suspendability. After the LPAR resumes and returns to drmgr that is followed by the necessary update-nodes and update-properties RTAS calls which are parsed and communitated back to the kernel through /proc/ppc64/ofdt for the device tree update. The drmgr tool should instead initiate the migration using the already existing /sysfs/kernel/mobility/migration entry that performs all this work in the kernel.
This patch adds a show function to the sysfs "migration" attribute that returns 1 to indicate the kernel will perform the device tree update after a migration operation and that drmgr should initiated the migration through the sysfs "migration" attribute. Signed-off-by: Tyrel Datwyler <tyr...@linux.vnet.ibm.com> --- arch/powerpc/platforms/pseries/mobility.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c index 0b1f70e..a689f74 100644 --- a/arch/powerpc/platforms/pseries/mobility.c +++ b/arch/powerpc/platforms/pseries/mobility.c @@ -40,6 +40,9 @@ struct update_props_workarea { #define MIGRATION_SCOPE (1) +#define USER_DT_UPDATE 0 +#define KERN_DT_UPDATE 1 + static int mobility_rtas_call(int token, char *buf, s32 scope) { int rc; @@ -339,7 +342,13 @@ static ssize_t migrate_store(struct class *class, struct class_attribute *attr, return count; } -static CLASS_ATTR(migration, S_IWUSR, NULL, migrate_store); +static ssize_t migrate_show(struct class *class, struct class_attribute *attr, + char *buf) +{ + return sprintf(buf, "%d\n", KERN_DT_UPDATE); +} + +static CLASS_ATTR(migration, S_IWUSR | S_IRUGO, migrate_show, migrate_store); static int __init mobility_sysfs_init(void) { -- 1.7.12.2 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev