Re: [PATCH 0/5] Live patching for powerpc
On Wed, 20 Apr 2016, Balbir Singh wrote: > Thanks, do we have a summary of what the relocation changes look like? This work is queued in livepatching.git#for-4.7/arch-independent-klp-relocations -- Jiri Kosina SUSE Labs ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On 16/04/16 01:07, Jiri Kosina wrote: > On Thu, 14 Apr 2016, Michael Ellerman wrote: > >> Topic branch here: >> >> >> https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/log/?h=topic/livepatch >> >> I will merge that before Monday (my time) if I don't hear any objections. > > I've now pulled this into livepatching.git#for-4.7/livepatching-ppc64 and > merged that branch into for-next as well. > > That branch already contains all the relocation changes queued for 4.7, so > as much testing of the merged result as possible on ppc64 would be > appreciated. Thanks, do we have a summary of what the relocation changes look like? Balbir Singh. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Thu, 14 Apr 2016, Michael Ellerman wrote: > Topic branch here: > > > https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/log/?h=topic/livepatch > > I will merge that before Monday (my time) if I don't hear any objections. I've now pulled this into livepatching.git#for-4.7/livepatching-ppc64 and merged that branch into for-next as well. That branch already contains all the relocation changes queued for 4.7, so as much testing of the merged result as possible on ppc64 would be appreciated. Thanks everybody, -- Jiri Kosina SUSE Labs ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Fri, 2016-04-15 at 07:59 -0500, Josh Poimboeuf wrote: > On Fri, Apr 15, 2016 at 09:22:49PM +1000, Michael Ellerman wrote: > > On Thu, 2016-04-14 at 11:41 -0500, Josh Poimboeuf wrote: > > > On Thu, Apr 14, 2016 at 05:20:29PM +0200, Torsten Duwe wrote: > > > > On Thu, Apr 14, 2016 at 11:08:02PM +1000, Michael Ellerman wrote: > > > > > On Thu, 2016-04-14 at 14:57 +0200, Torsten Duwe wrote: > > > > > > FTR: then I still have a few ppc64 hunks floating around to support > > > > > > certain consistency > > > > > > models... > > > > > > > > > > OK. I'm not quite sure what you mean but post them and we'll see I > > > > > guess :) > > > > > > > > It's *roughly* the ppc64 equivalent of Josh Poimboeuf's Mar 25 > > > > > [RFC PATCH v1.9 14/14] livepatch: update task universe when exiting > > > > > kernel > > > > which only considers x86. > > > > > > > > It's forward ported from an earlier code base; there's some glue > > > > missing, > > > > but here it is, for reference. > > > > > > > > Signed-off-by: Torsten Duwe> > > > > > Hi Torsten, > > > > > > Thanks for sharing. This is quite fortuitous as Miroslav just today > > > mentioned to me that we would need something like this. If you don't > > > mind, I may pull this patch or some variant of it into v2 of the > > > consistency model. > > > > Well please wait for me to review & ack it before you pull it into anything > > permanent. > > > > At a quick glance it seems OK but I'd probably do it a little differently. > > I'll > > try and have a closer look next week. > > Sure, no problem. The consistency model patches are still in > development so they won't be merged anytime soon. And we wouldn't merge > any powerpc code without maintainer acks anyway. I'm just glad you guys > are looking at it so I don't have to butcher it ;-) I'm paid to butcher it ;) cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Fri, Apr 15, 2016 at 09:22:49PM +1000, Michael Ellerman wrote: > On Thu, 2016-04-14 at 11:41 -0500, Josh Poimboeuf wrote: > > On Thu, Apr 14, 2016 at 05:20:29PM +0200, Torsten Duwe wrote: > > > On Thu, Apr 14, 2016 at 11:08:02PM +1000, Michael Ellerman wrote: > > > > On Thu, 2016-04-14 at 14:57 +0200, Torsten Duwe wrote: > > > > > FTR: then I still have a few ppc64 hunks floating around to support > > > > > certain consistency > > > > > models... > > > > > > > > OK. I'm not quite sure what you mean but post them and we'll see I > > > > guess :) > > > > > > It's *roughly* the ppc64 equivalent of Josh Poimboeuf's Mar 25 > > > > > [RFC PATCH v1.9 14/14] livepatch: update task universe when exiting > > > > kernel > > > which only considers x86. > > > > > > It's forward ported from an earlier code base; there's some glue missing, > > > but here it is, for reference. > > > > > > Signed-off-by: Torsten Duwe> > > > Hi Torsten, > > > > Thanks for sharing. This is quite fortuitous as Miroslav just today > > mentioned to me that we would need something like this. If you don't > > mind, I may pull this patch or some variant of it into v2 of the > > consistency model. > > Well please wait for me to review & ack it before you pull it into anything > permanent. > > At a quick glance it seems OK but I'd probably do it a little differently. > I'll > try and have a closer look next week. Sure, no problem. The consistency model patches are still in development so they won't be merged anytime soon. And we wouldn't merge any powerpc code without maintainer acks anyway. I'm just glad you guys are looking at it so I don't have to butcher it ;-) -- Josh ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Thu, 2016-04-14 at 16:34 +0200, Jiri Kosina wrote: > On Thu, 14 Apr 2016, Torsten Duwe wrote: > > > > > > It's unchanged since the version I posted on March 24, with the > > > > > > exception that > > > > > > I've dropped the first patch, which was a testing-only patch. > > > > Confirmed. And it still works on top of 4.6-rc3, even with the > > additional testing. > > Thanks a lot for testing. > > The imporant part here is testing on top of > livepatching.git#for-4.7/arch-independent-klp-relocations as well. > > I am pretty sure there will be adjustments needed for the merge, as we'll > have to figure out which parts of ELF can't be thrown away and need to be > preserved in order for the relocation entry to be successfully > constructed. > > Michael, I think this is an additional reason why the whole final pile > will have to go through livepatching.git, as the merge with what we have > in for-4.7/arch-independent-klp-relocations might not be completely > trivial. Well it will go through both :) I'll merge it into powerpc#next, and you can merge it into livepatching and do what ever else is needed as part of, or after, that merge. cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Thu, 2016-04-14 at 11:41 -0500, Josh Poimboeuf wrote: > On Thu, Apr 14, 2016 at 05:20:29PM +0200, Torsten Duwe wrote: > > On Thu, Apr 14, 2016 at 11:08:02PM +1000, Michael Ellerman wrote: > > > On Thu, 2016-04-14 at 14:57 +0200, Torsten Duwe wrote: > > > > FTR: then I still have a few ppc64 hunks floating around to support > > > > certain consistency > > > > models... > > > > > > OK. I'm not quite sure what you mean but post them and we'll see I guess > > > :) > > > > It's *roughly* the ppc64 equivalent of Josh Poimboeuf's Mar 25 > > > [RFC PATCH v1.9 14/14] livepatch: update task universe when exiting kernel > > which only considers x86. > > > > It's forward ported from an earlier code base; there's some glue missing, > > but here it is, for reference. > > > > Signed-off-by: Torsten Duwe> > Hi Torsten, > > Thanks for sharing. This is quite fortuitous as Miroslav just today > mentioned to me that we would need something like this. If you don't > mind, I may pull this patch or some variant of it into v2 of the > consistency model. Well please wait for me to review & ack it before you pull it into anything permanent. At a quick glance it seems OK but I'd probably do it a little differently. I'll try and have a closer look next week. cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Thu, Apr 14, 2016 at 05:20:29PM +0200, Torsten Duwe wrote: > On Thu, Apr 14, 2016 at 11:08:02PM +1000, Michael Ellerman wrote: > > On Thu, 2016-04-14 at 14:57 +0200, Torsten Duwe wrote: > > > > > FTR: then I still have a few ppc64 hunks floating around to support > > > certain consistency > > > models... > > > > OK. I'm not quite sure what you mean but post them and we'll see I guess :) > > It's *roughly* the ppc64 equivalent of Josh Poimboeuf's Mar 25 > | [RFC PATCH v1.9 14/14] livepatch: update task universe when exiting kernel > which only considers x86. > > It's forward ported from an earlier code base; there's some glue missing, > but here it is, for reference. > > Signed-off-by: Torsten DuweHi Torsten, Thanks for sharing. This is quite fortuitous as Miroslav just today mentioned to me that we would need something like this. If you don't mind, I may pull this patch or some variant of it into v2 of the consistency model. > > > diff --git a/arch/powerpc/include/asm/thread_info.h > b/arch/powerpc/include/asm/thread_info.h > index b034ecd..3e749f4 100644 > --- a/arch/powerpc/include/asm/thread_info.h > +++ b/arch/powerpc/include/asm/thread_info.h > @@ -92,6 +92,7 @@ static inline struct thread_info *current_thread_info(void) > TIF_NEED_RESCHED */ > #define TIF_32BIT4 /* 32 bit binary */ > #define TIF_RESTORE_TM 5 /* need to restore TM > FP/VEC/VSX */ > +#define TIF_KLP_NEED_UPDATE 6 /* kGraft patching in progress */ > #define TIF_SYSCALL_AUDIT7 /* syscall auditing active */ > #define TIF_SINGLESTEP 8 /* singlestepping active */ > #define TIF_NOHZ 9 /* in adaptive nohz mode */ > @@ -115,8 +116,10 @@ static inline struct thread_info > *current_thread_info(void) > #define _TIF_POLLING_NRFLAG (1< #define _TIF_32BIT (1< #define _TIF_RESTORE_TM (1< +#define _TIF_KLP_NEED_UPDATE (1< #define _TIF_SYSCALL_AUDIT (1< #define _TIF_SINGLESTEP (1< +#define _TIF_NOHZ(1< #define _TIF_SECCOMP (1< #define _TIF_RESTOREALL (1< #define _TIF_NOERROR (1< @@ -124,7 +127,7 @@ static inline struct thread_info > *current_thread_info(void) > #define _TIF_UPROBE (1< #define _TIF_SYSCALL_TRACEPOINT (1< #define _TIF_EMULATE_STACK_STORE (1< -#define _TIF_NOHZ(1< + > #define _TIF_SYSCALL_DOTRACE (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \ >_TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \ >_TIF_NOHZ) > @@ -132,7 +135,8 @@ static inline struct thread_info > *current_thread_info(void) > #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \ >_TIF_NOTIFY_RESUME | _TIF_UPROBE | \ >_TIF_RESTORE_TM) > -#define _TIF_PERSYSCALL_MASK (_TIF_RESTOREALL|_TIF_NOERROR) > + > +#define _TIF_PERSYSCALL_MASK > (_TIF_RESTOREALL|_TIF_NOERROR|_TIF_KLP_NEED_UPDATE) > > /* Bits in local_flags */ > /* Don't move TLF_NAPPING without adjusting the code in entry_32.S */ > diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S > index 5bbd1bc..17f8a18 100644 > --- a/arch/powerpc/kernel/entry_64.S > +++ b/arch/powerpc/kernel/entry_64.S > @@ -151,8 +151,8 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_SPLPAR) > > CURRENT_THREAD_INFO(r11, r1) > ld r10,TI_FLAGS(r11) > - andi. r11,r10,_TIF_SYSCALL_DOTRACE > - bne syscall_dotrace /* does not return */ > + andi. r10,r10,(_TIF_SYSCALL_DOTRACE|_TIF_KLP_NEED_UPDATE) > + bne-syscall_precall /* does not return */ > cmpldi 0,r0,NR_syscalls > bge-syscall_enosys > > @@ -245,6 +245,17 @@ syscall_error: > neg r3,r3 > std r5,_CCR(r1) > b .Lsyscall_error_cont > + > +syscall_precall: > + andi. r10,r10,(_TIF_KLP_NEED_UPDATE) > + beq+syscall_dotrace > + > + addir11,r11,TI_FLAGS > +1: ldarx r12,0,r11 > + andcr12,r12,r10 > + stdcx. r12,0,r11 > + bne-1b > + subir11,r11,TI_FLAGS > > /* Traced system call support */ > syscall_dotrace: -- Josh ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Thu, Apr 14, 2016 at 11:08:02PM +1000, Michael Ellerman wrote: > On Thu, 2016-04-14 at 14:57 +0200, Torsten Duwe wrote: > > > FTR: then I still have a few ppc64 hunks floating around to support certain > > consistency > > models... > > OK. I'm not quite sure what you mean but post them and we'll see I guess :) It's *roughly* the ppc64 equivalent of Josh Poimboeuf's Mar 25 | [RFC PATCH v1.9 14/14] livepatch: update task universe when exiting kernel which only considers x86. It's forward ported from an earlier code base; there's some glue missing, but here it is, for reference. Signed-off-by: Torsten Duwediff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h index b034ecd..3e749f4 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h @@ -92,6 +92,7 @@ static inline struct thread_info *current_thread_info(void) TIF_NEED_RESCHED */ #define TIF_32BIT 4 /* 32 bit binary */ #define TIF_RESTORE_TM 5 /* need to restore TM FP/VEC/VSX */ +#define TIF_KLP_NEED_UPDATE6 /* kGraft patching in progress */ #define TIF_SYSCALL_AUDIT 7 /* syscall auditing active */ #define TIF_SINGLESTEP 8 /* singlestepping active */ #define TIF_NOHZ 9 /* in adaptive nohz mode */ @@ -115,8 +116,10 @@ static inline struct thread_info *current_thread_info(void) #define _TIF_POLLING_NRFLAG(1<
Re: [PATCH 0/5] Live patching for powerpc
On Thu, 14 Apr 2016, Torsten Duwe wrote: > > > > > It's unchanged since the version I posted on March 24, with the > > > > > exception that > > > > > I've dropped the first patch, which was a testing-only patch. > > Confirmed. And it still works on top of 4.6-rc3, even with the > additional testing. Thanks a lot for testing. The imporant part here is testing on top of livepatching.git#for-4.7/arch-independent-klp-relocations as well. I am pretty sure there will be adjustments needed for the merge, as we'll have to figure out which parts of ELF can't be thrown away and need to be preserved in order for the relocation entry to be successfully constructed. Michael, I think this is an additional reason why the whole final pile will have to go through livepatching.git, as the merge with what we have in for-4.7/arch-independent-klp-relocations might not be completely trivial. -- Jiri Kosina SUSE Labs ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Thu, 2016-04-14 at 14:57 +0200, Torsten Duwe wrote: > On Thu, Apr 14, 2016 at 04:49:50PM +1000, Michael Ellerman wrote: > > On Wed, 2016-04-13 at 15:22 +0200, Jiri Kosina wrote: > > > On Wed, 13 Apr 2016, Miroslav Benes wrote: > > > > > This series adds live patching support for powerpc (ppc64le only ATM). > > > > > > > > > > It's unchanged since the version I posted on March 24, with the > > > > > exception that > > > > > I've dropped the first patch, which was a testing-only patch. > > Confirmed. And it still works on top of 4.6-rc3, even with the additional > testing. Thanks. Yeah I tested on top of rc3 as well as back on the topic branch (4.5-rc). > > > > > If there's no further comments I'll put this in a topic branch in the > > > > > next day > > > > > or two and Jiri & I will both merge that into next. > > "Go" from my side. Throttle up! > FTR: then I still have a few ppc64 hunks floating around to support certain > consistency > models... OK. I'm not quite sure what you mean but post them and we'll see I guess :) cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Thu, Apr 14, 2016 at 04:49:50PM +1000, Michael Ellerman wrote: > On Wed, 2016-04-13 at 15:22 +0200, Jiri Kosina wrote: > > On Wed, 13 Apr 2016, Miroslav Benes wrote: > > > > This series adds live patching support for powerpc (ppc64le only ATM). > > > > > > > > It's unchanged since the version I posted on March 24, with the > > > > exception that > > > > I've dropped the first patch, which was a testing-only patch. Confirmed. And it still works on top of 4.6-rc3, even with the additional testing. > > > > If there's no further comments I'll put this in a topic branch in the > > > > next day > > > > or two and Jiri & I will both merge that into next. "Go" from my side. FTR: then I still have a few ppc64 hunks floating around to support certain consistency models... Torsten ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Wed, 2016-04-13 at 15:22 +0200, Jiri Kosina wrote: > On Wed, 13 Apr 2016, Miroslav Benes wrote: > > > This series adds live patching support for powerpc (ppc64le only ATM). > > > > > > It's unchanged since the version I posted on March 24, with the exception > > > that > > > I've dropped the first patch, which was a testing-only patch. > > > > > > If there's no further comments I'll put this in a topic branch in the > > > next day > > > or two and Jiri & I will both merge that into next. > > > > Hi, > > > > I'll definitely give it a proper look today or tomorrow, but there is one > > thing that needs to be solved. The patch set from Jessica reworking > > relocations for live patching is now merged in our for-next branch. This > > means that we need to find out if there is something in struct > > mod_arch_specific for powerpc which needs to be preserved and do it. > > Michael, if the plan is still the original one, i.e. you push it to your > branch, and I merge it to livepatching (and resolve any dependencies on > the relocations code during the merge) and push it to Linus from > livepatching.git, then there shouldn't be anything do to on your side. That is my plan yeah. Topic branch here: https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/log/?h=topic/livepatch I will merge that before Monday (my time) if I don't hear any objections. cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Wed, 13 Apr 2016, Miroslav Benes wrote: > > This series adds live patching support for powerpc (ppc64le only ATM). > > > > It's unchanged since the version I posted on March 24, with the exception > > that > > I've dropped the first patch, which was a testing-only patch. > > > > If there's no further comments I'll put this in a topic branch in the next > > day > > or two and Jiri & I will both merge that into next. > > Hi, > > I'll definitely give it a proper look today or tomorrow, but there is one > thing that needs to be solved. The patch set from Jessica reworking > relocations for live patching is now merged in our for-next branch. This > means that we need to find out if there is something in struct > mod_arch_specific for powerpc which needs to be preserved and do it. Michael, if the plan is still the original one, i.e. you push it to your branch, and I merge it to livepatching (and resolve any dependencies on the relocations code during the merge) and push it to Linus from livepatching.git, then there shouldn't be anything do to on your side. Alternatively, you can rebase on top of livepatching.git#for-next, and I'll take it directly. Thanks, -- Jiri Kosina SUSE Labs ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 0/5] Live patching for powerpc
On Wed, 13 Apr 2016, Michael Ellerman wrote: > This series adds live patching support for powerpc (ppc64le only ATM). > > It's unchanged since the version I posted on March 24, with the exception that > I've dropped the first patch, which was a testing-only patch. > > If there's no further comments I'll put this in a topic branch in the next day > or two and Jiri & I will both merge that into next. Hi, I'll definitely give it a proper look today or tomorrow, but there is one thing that needs to be solved. The patch set from Jessica reworking relocations for live patching is now merged in our for-next branch. This means that we need to find out if there is something in struct mod_arch_specific for powerpc which needs to be preserved and do it. Regards, Miroslav ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 0/5] Live patching for powerpc
This series adds live patching support for powerpc (ppc64le only ATM). It's unchanged since the version I posted on March 24, with the exception that I've dropped the first patch, which was a testing-only patch. If there's no further comments I'll put this in a topic branch in the next day or two and Jiri & I will both merge that into next. cheers Michael Ellerman (5): ftrace: Make ftrace_location_range() global livepatch: Allow architectures to specify an alternate ftrace location powerpc/livepatch: Add livepatch header powerpc/livepatch: Add livepatch stack to struct thread_info powerpc/livepatch: Add live patching support on ppc64le arch/powerpc/Kconfig | 3 ++ arch/powerpc/include/asm/livepatch.h | 62 ++ arch/powerpc/include/asm/thread_info.h | 4 +- arch/powerpc/kernel/asm-offsets.c | 4 ++ arch/powerpc/kernel/entry_64.S | 97 ++ arch/powerpc/kernel/irq.c | 3 ++ arch/powerpc/kernel/process.c | 6 ++- arch/powerpc/kernel/setup_64.c | 17 +++--- include/linux/ftrace.h | 1 + kernel/livepatch/core.c| 34 ++-- kernel/trace/ftrace.c | 14 - 11 files changed, 232 insertions(+), 13 deletions(-) create mode 100644 arch/powerpc/include/asm/livepatch.h -- 2.5.0 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev