All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] livepatch: add support on s390
@ 2015-03-26  9:10 Jiri Slaby
  2015-03-26 12:15 ` Josh Poimboeuf
  2015-03-26 18:24 ` Jiri Kosina
  0 siblings, 2 replies; 9+ messages in thread
From: Jiri Slaby @ 2015-03-26  9:10 UTC (permalink / raw)
  To: jkosina
  Cc: jpoimboe, sjenning, vojtech, live-patching, linux-s390,
	linux-kernel, Jiri Slaby

This is a trivial port from kGraft. Module relocations are not
supported.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
[v2] return ENOSYS
[v3] proper return value from klp_check_compiler_support

 arch/s390/Kconfig                 |  3 +++
 arch/s390/include/asm/livepatch.h | 43 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 arch/s390/include/asm/livepatch.h

diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 5f01f22b4f16..de2726a487b0 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -134,6 +134,7 @@ config S390
 	select HAVE_KPROBES
 	select HAVE_KRETPROBES
 	select HAVE_KVM
+	select HAVE_LIVEPATCH
 	select HAVE_MEMBLOCK
 	select HAVE_MEMBLOCK_NODE_MAP
 	select HAVE_MEMBLOCK_PHYS_MAP
@@ -164,6 +165,8 @@ source "init/Kconfig"
 
 source "kernel/Kconfig.freezer"
 
+source "kernel/livepatch/Kconfig"
+
 menu "Processor type and features"
 
 config HAVE_MARCH_Z900_FEATURES
diff --git a/arch/s390/include/asm/livepatch.h b/arch/s390/include/asm/livepatch.h
new file mode 100644
index 000000000000..7aa799134a11
--- /dev/null
+++ b/arch/s390/include/asm/livepatch.h
@@ -0,0 +1,43 @@
+/*
+ * livepatch.h - s390-specific Kernel Live Patching Core
+ *
+ *  Copyright (c) 2013-2015 SUSE
+ *   Authors: Jiri Kosina
+ *	      Vojtech Pavlik
+ *	      Jiri Slaby
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ */
+
+#ifndef ASM_LIVEPATCH_H
+#define ASM_LIVEPATCH_H
+
+#include <linux/module.h>
+
+#ifdef CONFIG_LIVEPATCH
+static inline int klp_check_compiler_support(void)
+{
+	return 0;
+}
+
+static inline int klp_write_module_reloc(struct module *mod, unsigned long
+		type, unsigned long loc, unsigned long value)
+{
+	/* not supported yet */
+	return -ENOSYS;
+}
+
+static inline void klp_arch_set_pc(struct pt_regs *regs, unsigned long ip)
+{
+	regs->psw.addr = ip;
+}
+#else
+#error Live patching support is disabled; check CONFIG_LIVEPATCH
+#endif
+
+#endif
-- 
2.3.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] livepatch: add support on s390
  2015-03-26  9:10 [PATCH 1/1] livepatch: add support on s390 Jiri Slaby
@ 2015-03-26 12:15 ` Josh Poimboeuf
  2015-03-26 18:24 ` Jiri Kosina
  1 sibling, 0 replies; 9+ messages in thread
From: Josh Poimboeuf @ 2015-03-26 12:15 UTC (permalink / raw)
  To: Jiri Slaby
  Cc: jkosina, sjenning, vojtech, live-patching, linux-s390, linux-kernel

On Thu, Mar 26, 2015 at 10:10:17AM +0100, Jiri Slaby wrote:
> This is a trivial port from kGraft. Module relocations are not
> supported.
> 
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> ---
> [v2] return ENOSYS
> [v3] proper return value from klp_check_compiler_support
> 
>  arch/s390/Kconfig                 |  3 +++
>  arch/s390/include/asm/livepatch.h | 43 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 46 insertions(+)
>  create mode 100644 arch/s390/include/asm/livepatch.h

Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>

> 
> diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
> index 5f01f22b4f16..de2726a487b0 100644
> --- a/arch/s390/Kconfig
> +++ b/arch/s390/Kconfig
> @@ -134,6 +134,7 @@ config S390
>  	select HAVE_KPROBES
>  	select HAVE_KRETPROBES
>  	select HAVE_KVM
> +	select HAVE_LIVEPATCH
>  	select HAVE_MEMBLOCK
>  	select HAVE_MEMBLOCK_NODE_MAP
>  	select HAVE_MEMBLOCK_PHYS_MAP
> @@ -164,6 +165,8 @@ source "init/Kconfig"
>  
>  source "kernel/Kconfig.freezer"
>  
> +source "kernel/livepatch/Kconfig"
> +
>  menu "Processor type and features"
>  
>  config HAVE_MARCH_Z900_FEATURES
> diff --git a/arch/s390/include/asm/livepatch.h b/arch/s390/include/asm/livepatch.h
> new file mode 100644
> index 000000000000..7aa799134a11
> --- /dev/null
> +++ b/arch/s390/include/asm/livepatch.h
> @@ -0,0 +1,43 @@
> +/*
> + * livepatch.h - s390-specific Kernel Live Patching Core
> + *
> + *  Copyright (c) 2013-2015 SUSE
> + *   Authors: Jiri Kosina
> + *	      Vojtech Pavlik
> + *	      Jiri Slaby
> + */
> +
> +/*
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the Free
> + * Software Foundation; either version 2 of the License, or (at your option)
> + * any later version.
> + */
> +
> +#ifndef ASM_LIVEPATCH_H
> +#define ASM_LIVEPATCH_H
> +
> +#include <linux/module.h>
> +
> +#ifdef CONFIG_LIVEPATCH
> +static inline int klp_check_compiler_support(void)
> +{
> +	return 0;
> +}
> +
> +static inline int klp_write_module_reloc(struct module *mod, unsigned long
> +		type, unsigned long loc, unsigned long value)
> +{
> +	/* not supported yet */
> +	return -ENOSYS;
> +}
> +
> +static inline void klp_arch_set_pc(struct pt_regs *regs, unsigned long ip)
> +{
> +	regs->psw.addr = ip;
> +}
> +#else
> +#error Live patching support is disabled; check CONFIG_LIVEPATCH
> +#endif
> +
> +#endif
> -- 
> 2.3.3
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] livepatch: add support on s390
  2015-03-26  9:10 [PATCH 1/1] livepatch: add support on s390 Jiri Slaby
  2015-03-26 12:15 ` Josh Poimboeuf
@ 2015-03-26 18:24 ` Jiri Kosina
  2015-03-27  9:19   ` Heiko Carstens
  1 sibling, 1 reply; 9+ messages in thread
From: Jiri Kosina @ 2015-03-26 18:24 UTC (permalink / raw)
  To: Jiri Slaby
  Cc: jpoimboe, sjenning, vojtech, live-patching, linux-s390, linux-kernel

On Thu, 26 Mar 2015, Jiri Slaby wrote:

> This is a trivial port from kGraft. Module relocations are not
> supported.
> 
> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> ---
> [v2] return ENOSYS
> [v3] proper return value from klp_check_compiler_support

Applied to for-4.1/core.

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] livepatch: add support on s390
  2015-03-26 18:24 ` Jiri Kosina
@ 2015-03-27  9:19   ` Heiko Carstens
  2015-03-27  9:29     ` Jiri Kosina
  0 siblings, 1 reply; 9+ messages in thread
From: Heiko Carstens @ 2015-03-27  9:19 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Jiri Slaby, jpoimboe, sjenning, vojtech, live-patching,
	linux-s390, linux-kernel

On Thu, Mar 26, 2015 at 07:24:58PM +0100, Jiri Kosina wrote:
> On Thu, 26 Mar 2015, Jiri Slaby wrote:
> 
> > This is a trivial port from kGraft. Module relocations are not
> > supported.
> > 
> > Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> > ---
> > [v2] return ENOSYS
> > [v3] proper return value from klp_check_compiler_support
> 
> Applied to for-4.1/core.

Hello Jiri,

while I do appreciate your work on the s390 architecture backend for
livepatching:  this should go upstream only via the s390 tree or with
an Ack from Martin or me.

That being said, what is the reason why module relocations are not
supported?
As far as I can tell right now there is only one simple in-kernel
test case available (which is fine). However is the tool chain to
generate additional livepatch modules, available somewhere?
If so, where?

Thanks,
Heiko


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] livepatch: add support on s390
  2015-03-27  9:19   ` Heiko Carstens
@ 2015-03-27  9:29     ` Jiri Kosina
  2015-03-27 13:58       ` Heiko Carstens
  0 siblings, 1 reply; 9+ messages in thread
From: Jiri Kosina @ 2015-03-27  9:29 UTC (permalink / raw)
  To: Heiko Carstens
  Cc: Jiri Slaby, jpoimboe, sjenning, vojtech, live-patching,
	linux-s390, linux-kernel

On Fri, 27 Mar 2015, Heiko Carstens wrote:

> On Thu, Mar 26, 2015 at 07:24:58PM +0100, Jiri Kosina wrote:
> > On Thu, 26 Mar 2015, Jiri Slaby wrote:
> > 
> > > This is a trivial port from kGraft. Module relocations are not
> > > supported.
> > > 
> > > Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> > > ---
> > > [v2] return ENOSYS
> > > [v3] proper return value from klp_check_compiler_support
> > 
> > Applied to for-4.1/core.
> 
> Hello Jiri,
> 
> while I do appreciate your work on the s390 architecture backend for
> livepatching:  this should go upstream only via the s390 tree or with
> an Ack from Martin or me.

Fair enough; I merged it because I was convinced that we have your Ack for 
the very same patch in our tree for kGraft, but now that I look again, we 
apparently don't. So sorry for that. What is your standpoint on this one 
then, please?

> That being said, what is the reason why module relocations are not
> supported?

That's an addon feature that can be added gradually, it's not crucial for 
basic functionality. Basically: someone has to write the code, but it's 
useful even without it.

> As far as I can tell right now there is only one simple in-kernel test 
> case available (which is fine). However is the tool chain to generate 
> additional livepatch modules, available somewhere? If so, where?

For the current feature set of livepatching as-is upstream, no tooling is 
really hard requirement and the patches are to be written by hand (exactly 
as the one in the samples/ directory).

Thanks,

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] livepatch: add support on s390
  2015-03-27  9:29     ` Jiri Kosina
@ 2015-03-27 13:58       ` Heiko Carstens
  2015-03-27 14:09         ` Jiri Kosina
  0 siblings, 1 reply; 9+ messages in thread
From: Heiko Carstens @ 2015-03-27 13:58 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Jiri Slaby, jpoimboe, sjenning, vojtech, live-patching,
	linux-s390, linux-kernel

On Fri, Mar 27, 2015 at 10:29:28AM +0100, Jiri Kosina wrote:
> On Fri, 27 Mar 2015, Heiko Carstens wrote:
> 
> > On Thu, Mar 26, 2015 at 07:24:58PM +0100, Jiri Kosina wrote:
> > > On Thu, 26 Mar 2015, Jiri Slaby wrote:
> > > 
> > > > This is a trivial port from kGraft. Module relocations are not
> > > > supported.
> > > > 
> > > > Signed-off-by: Jiri Slaby <jslaby@suse.cz>
> > > > ---
> > > > [v2] return ENOSYS
> > > > [v3] proper return value from klp_check_compiler_support
> > > 
> > > Applied to for-4.1/core.
> > 
> > Hello Jiri,
> > 
> > while I do appreciate your work on the s390 architecture backend for
> > livepatching:  this should go upstream only via the s390 tree or with
> > an Ack from Martin or me.
> 
> Fair enough; I merged it because I was convinced that we have your Ack for 
> the very same patch in our tree for kGraft, but now that I look again, we 
> apparently don't. So sorry for that. What is your standpoint on this one 
> then, please?

I thought there was more available then the simple testcase within the kernel.
But since the testcase works:

Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] livepatch: add support on s390
  2015-03-27 13:58       ` Heiko Carstens
@ 2015-03-27 14:09         ` Jiri Kosina
  0 siblings, 0 replies; 9+ messages in thread
From: Jiri Kosina @ 2015-03-27 14:09 UTC (permalink / raw)
  To: Heiko Carstens
  Cc: Jiri Slaby, jpoimboe, sjenning, vojtech, live-patching,
	linux-s390, linux-kernel

On Fri, 27 Mar 2015, Heiko Carstens wrote:

> > Fair enough; I merged it because I was convinced that we have your Ack for 
> > the very same patch in our tree for kGraft, but now that I look again, we 
> > apparently don't. So sorry for that. What is your standpoint on this one 
> > then, please?
> 
> I thought there was more available then the simple testcase within the kernel.

For kGraft we have, and I believe kPatch guys also have patches they are 
distributing for their own distro.

So far we have the simplest testcases working with the in-kernel common 
infrastructure, and are working on adding more features (called 
"consistency models" in some discussions) that will allow for more 
complexity in the patches, so that we ultimately reach (or overcome) the 
level of complexity we are currently able to handle in kgraft/kpatch.

> But since the testcase works:
> 
> Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com>

Thanks a lot, Heiko.

As I am generally never rebasing a published branches, I've split the 
'for-4.1/core' to two branches and applied the patch ammended with your 
Ack to 'for-4.1/core-s390'.

-- 
Jiri Kosina
SUSE Labs

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/1] livepatch: add support on s390
  2015-03-24 14:51 Jiri Slaby
@ 2015-03-24 14:52 ` Jiri Slaby
  0 siblings, 0 replies; 9+ messages in thread
From: Jiri Slaby @ 2015-03-24 14:52 UTC (permalink / raw)
  To: jkosina
  Cc: jpoimboe, sjenning, vojtech, live-patching, linux-s390, linux-kernel

On 03/24/2015, 03:51 PM, Jiri Slaby wrote:
> This is a trivial port from kGraft. Module relocations are not
> supported.

Please scratch this one. This one is from a different tree. I will
resend a proper one.

-- 
js
suse labs

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/1] livepatch: add support on s390
@ 2015-03-24 14:51 Jiri Slaby
  2015-03-24 14:52 ` Jiri Slaby
  0 siblings, 1 reply; 9+ messages in thread
From: Jiri Slaby @ 2015-03-24 14:51 UTC (permalink / raw)
  To: jkosina
  Cc: jpoimboe, sjenning, vojtech, live-patching, linux-s390,
	linux-kernel, Jiri Slaby

This is a trivial port from kGraft. Module relocations are not
supported.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 arch/s390/Kconfig                 |  3 +++
 arch/s390/include/asm/livepatch.h | 43 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 46 insertions(+)
 create mode 100644 arch/s390/include/asm/livepatch.h

diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 6df439c9e13c..e24523bf1b77 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -135,6 +135,7 @@ config S390
 	select HAVE_KPROBES
 	select HAVE_KRETPROBES
 	select HAVE_KVM
+	select HAVE_LIVEPATCH
 	select HAVE_MEMBLOCK
 	select HAVE_MEMBLOCK_NODE_MAP
 	select HAVE_MEMBLOCK_PHYS_MAP
@@ -167,6 +168,8 @@ source "kernel/Kconfig.freezer"
 
 source "kernel/Kconfig.kgraft"
 
+source "kernel/livepatch/Kconfig"
+
 menu "Processor type and features"
 
 config HAVE_MARCH_Z900_FEATURES
diff --git a/arch/s390/include/asm/livepatch.h b/arch/s390/include/asm/livepatch.h
new file mode 100644
index 000000000000..0621d322ae0b
--- /dev/null
+++ b/arch/s390/include/asm/livepatch.h
@@ -0,0 +1,43 @@
+/*
+ * livepatch.h - s390-specific Kernel Live Patching Core
+ *
+ *  Copyright (c) 2013-2015 SUSE
+ *   Authors: Jiri Kosina
+ *	      Vojtech Pavlik
+ *	      Jiri Slaby
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ */
+
+#ifndef ASM_LIVEPATCH_H
+#define ASM_LIVEPATCH_H
+
+#include <linux/module.h>
+
+#ifdef CONFIG_LIVEPATCH
+static inline int klp_check_compiler_support(void)
+{
+	return 1;
+}
+
+static inline int klp_write_module_reloc(struct module *mod, unsigned long
+		type, unsigned long loc, unsigned long value)
+{
+	/* not supported yet */
+	return -EINVAL;
+}
+
+static inline void klp_arch_set_pc(struct pt_regs *regs, unsigned long ip)
+{
+	regs->psw.addr = ip;
+}
+#else
+#error Live patching support is disabled; check CONFIG_LIVEPATCH
+#endif
+
+#endif
-- 
2.3.3


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-03-27 14:09 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-26  9:10 [PATCH 1/1] livepatch: add support on s390 Jiri Slaby
2015-03-26 12:15 ` Josh Poimboeuf
2015-03-26 18:24 ` Jiri Kosina
2015-03-27  9:19   ` Heiko Carstens
2015-03-27  9:29     ` Jiri Kosina
2015-03-27 13:58       ` Heiko Carstens
2015-03-27 14:09         ` Jiri Kosina
  -- strict thread matches above, loose matches on Subject: below --
2015-03-24 14:51 Jiri Slaby
2015-03-24 14:52 ` Jiri Slaby

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.