* [PATCH] powerpc/pseries: Introduce api_version to migration sysfs interface
@ 2015-03-05 2:25 Tyrel Datwyler
2015-03-23 20:21 ` Tyrel Datwyler
2015-03-24 0:24 ` Michael Ellerman
0 siblings, 2 replies; 3+ messages in thread
From: Tyrel Datwyler @ 2015-03-05 2:25 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Cyril Bur, Tyrel Datwyler, Nathan Fontenot
The /sys/kernel/mobility/migration interface was added all the way back
in 2.6.37. However, the drmgr userspace tool was never augmented to use
this interface to perfrom migrations. Instead it has continued using a
faux rtas call coupled with performing the device tree update processing
in userspace and communicating it back to the kernel via the ugly
/proc/ppc64/ofdt interface.
Up until 3.12 the device tree update code in the kernel was badly broken
and bit rotting. This code was fixed in 3.12 and is now utilized by the
kernel suspend code as of 3.15. The kernel is now better suited to
handle the post-mobility fixup of the device tree and drmgr should be
transitioned to using the sysfs migration interface.
This patch introduces the api_version sysfs file to /sys/kernel/mobility
as a means for drmgr to query the current implementation level of the
kernel migration code. This initial versioning indicates it is capable
of perfroming all current PAPR requirements for migration including the
post-mobility firmware activation and device tree update.
Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Cc: Cyril Bur <cyrilbur@gmail.com>
---
arch/powerpc/platforms/pseries/mobility.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c
index bdf62c1..ceb18d3 100644
--- a/arch/powerpc/platforms/pseries/mobility.c
+++ b/arch/powerpc/platforms/pseries/mobility.c
@@ -338,7 +338,16 @@ static ssize_t migrate_store(struct class *class, struct class_attribute *attr,
return count;
}
+/*
+ * Used by drmgr to determine the kernel behavior of the migration interface.
+ *
+ * Version 1: Performs all PAPR requirements for migration including
+ * firmware activation and device tree update.
+ */
+#define MIGRATION_API_VERSION 1
+
static CLASS_ATTR(migration, S_IWUSR, NULL, migrate_store);
+static CLASS_ATTR_STRING(api_version, S_IRUGO, __stringify(MIGRATION_API_VERSION));
static int __init mobility_sysfs_init(void)
{
@@ -349,7 +358,13 @@ static int __init mobility_sysfs_init(void)
return -ENOMEM;
rc = sysfs_create_file(mobility_kobj, &class_attr_migration.attr);
+ if (rc)
+ pr_err("mobility: unable to create migration sysfs file (%d)\n", rc);
- return rc;
+ rc = sysfs_create_file(mobility_kobj, &class_attr_api_version.attr.attr);
+ if (rc)
+ pr_err("mobility: unable to create api_version sysfs file (%d)\n", rc);
+
+ return 0;
}
machine_device_initcall(pseries, mobility_sysfs_init);
--
1.7.12.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] powerpc/pseries: Introduce api_version to migration sysfs interface
2015-03-05 2:25 [PATCH] powerpc/pseries: Introduce api_version to migration sysfs interface Tyrel Datwyler
@ 2015-03-23 20:21 ` Tyrel Datwyler
2015-03-24 0:24 ` Michael Ellerman
1 sibling, 0 replies; 3+ messages in thread
From: Tyrel Datwyler @ 2015-03-23 20:21 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Cyril Bur, Nathan Fontenot
On 03/04/2015 06:25 PM, Tyrel Datwyler wrote:
> The /sys/kernel/mobility/migration interface was added all the way back
> in 2.6.37. However, the drmgr userspace tool was never augmented to use
> this interface to perfrom migrations. Instead it has continued using a
> faux rtas call coupled with performing the device tree update processing
> in userspace and communicating it back to the kernel via the ugly
> /proc/ppc64/ofdt interface.
>
> Up until 3.12 the device tree update code in the kernel was badly broken
> and bit rotting. This code was fixed in 3.12 and is now utilized by the
> kernel suspend code as of 3.15. The kernel is now better suited to
> handle the post-mobility fixup of the device tree and drmgr should be
> transitioned to using the sysfs migration interface.
>
> This patch introduces the api_version sysfs file to /sys/kernel/mobility
> as a means for drmgr to query the current implementation level of the
> kernel migration code. This initial versioning indicates it is capable
> of perfroming all current PAPR requirements for migration including the
> post-mobility firmware activation and device tree update.
>
> Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
> Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com>
> Cc: Cyril Bur <cyrilbur@gmail.com>
> ---
Ping. Does this look acceptable for -next?
-Tyrel
> arch/powerpc/platforms/pseries/mobility.c | 17 ++++++++++++++++-
> 1 file changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/arch/powerpc/platforms/pseries/mobility.c b/arch/powerpc/platforms/pseries/mobility.c
> index bdf62c1..ceb18d3 100644
> --- a/arch/powerpc/platforms/pseries/mobility.c
> +++ b/arch/powerpc/platforms/pseries/mobility.c
> @@ -338,7 +338,16 @@ static ssize_t migrate_store(struct class *class, struct class_attribute *attr,
> return count;
> }
>
> +/*
> + * Used by drmgr to determine the kernel behavior of the migration interface.
> + *
> + * Version 1: Performs all PAPR requirements for migration including
> + * firmware activation and device tree update.
> + */
> +#define MIGRATION_API_VERSION 1
> +
> static CLASS_ATTR(migration, S_IWUSR, NULL, migrate_store);
> +static CLASS_ATTR_STRING(api_version, S_IRUGO, __stringify(MIGRATION_API_VERSION));
>
> static int __init mobility_sysfs_init(void)
> {
> @@ -349,7 +358,13 @@ static int __init mobility_sysfs_init(void)
> return -ENOMEM;
>
> rc = sysfs_create_file(mobility_kobj, &class_attr_migration.attr);
> + if (rc)
> + pr_err("mobility: unable to create migration sysfs file (%d)\n", rc);
>
> - return rc;
> + rc = sysfs_create_file(mobility_kobj, &class_attr_api_version.attr.attr);
> + if (rc)
> + pr_err("mobility: unable to create api_version sysfs file (%d)\n", rc);
> +
> + return 0;
> }
> machine_device_initcall(pseries, mobility_sysfs_init);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: powerpc/pseries: Introduce api_version to migration sysfs interface
2015-03-05 2:25 [PATCH] powerpc/pseries: Introduce api_version to migration sysfs interface Tyrel Datwyler
2015-03-23 20:21 ` Tyrel Datwyler
@ 2015-03-24 0:24 ` Michael Ellerman
1 sibling, 0 replies; 3+ messages in thread
From: Michael Ellerman @ 2015-03-24 0:24 UTC (permalink / raw)
To: Tyrel Datwyler, linuxppc-dev; +Cc: Nathan Fontenot, Cyril Bur, Tyrel Datwyler
On Thu, 2015-05-03 at 02:25:38 UTC, Tyrel Datwyler wrote:
> The /sys/kernel/mobility/migration interface was added all the way back
> in 2.6.37. However, the drmgr userspace tool was never augmented to use
> this interface to perfrom migrations. Instead it has continued using a
> faux rtas call coupled with performing the device tree update processing
> in userspace and communicating it back to the kernel via the ugly
> /proc/ppc64/ofdt interface.
>
> Up until 3.12 the device tree update code in the kernel was badly broken
> and bit rotting. This code was fixed in 3.12 and is now utilized by the
> kernel suspend code as of 3.15. The kernel is now better suited to
> handle the post-mobility fixup of the device tree and drmgr should be
> transitioned to using the sysfs migration interface.
>
> This patch introduces the api_version sysfs file to /sys/kernel/mobility
> as a means for drmgr to query the current implementation level of the
> kernel migration code. This initial versioning indicates it is capable
> of perfroming all current PAPR requirements for migration including the
> post-mobility firmware activation and device tree update.
I've put this in next.
Please send a follow-up patch that adds documentation for this and the other
sysfs files in Documentation/ABI.
cheers
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-03-24 0:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-05 2:25 [PATCH] powerpc/pseries: Introduce api_version to migration sysfs interface Tyrel Datwyler
2015-03-23 20:21 ` Tyrel Datwyler
2015-03-24 0:24 ` Michael Ellerman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).