From: Josh Poimboeuf <jpoimboe@redhat.com> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de>, Alok Kataria <akataria@vmware.com>, Ingo Molnar <mingo@redhat.com>, Guenter Roeck <linux@roeck-us.net>, Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>, Herbert Xu <herbert@gondor.apana.org.au>, Andrew Morton <akpm@linux-foundation.org>, Rusty Russell <rusty@rustcorp.com.au>, Bernd Petrovitsch <bernd@petrovitsch.priv.at>, linux-watchdog@vger.kernel.org, Pedro Alves <palves@redhat.com>, Pavel Machek <pavel@ucw.cz>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Michal Marek <mmarek@suse.cz>, Namhyung Kim <namhyung@gmail.com>, Jeremy Fitzhardinge <jeremy@goop.org>, Waiman Long <Waiman.Long@hpe.com>, "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, Jiri Slaby <jslaby@suse.cz>, kvm@vger.kernel.org, x86@kernel.org, Arnaldo Carvalho de Melo <acme@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>, Borislav Petkov <bp@alien8.de>, Chris Wright <chrisw@sous-sol.org>, Andy Lutomirski <luto@kernel.org>, Alexei Starovoitov <ast@kernel.org>, "David S. Miller" <davem@davemloft.net>, Wim Van Sebroeck <wim@iguana.be>, David Vrabel <david.vrabel@citrix.com>, live-patching@vger.kernel.org, netdev@vger.kernel.org, Boris Ostrovsky <boris.ostrovsky@oracle.com>, Gleb Natapov <gleb@kernel.org>, Matt Fleming <matt@codeblueprint.co.uk>, Chris J Arges <chris.j.arges@canonical.com>, linux-kernel@vger.kernel.org, Borislav Petkov <bp@suse.de>, Andi Kleen <andi@firstfloor.org>, Len Brown <len.brown@intel.com>, Ananth N Mavinakayanahalli <ananth@in.ibm.com>, "H. Peter Anvin" <hpa@zytor.com>, Peter Zijlstra <peterz@infradead.org> Subject: Re: [PATCH 00/33] Compile-time stack metadata validation Date: Mon, 15 Feb 2016 14:01:56 -0600 [thread overview] Message-ID: <20160215200156.GA3018@treble.redhat.com> (raw) In-Reply-To: <CA+55aFzoPCd_LcSx1FUuEhSBYk2KrfzXGj-Vcn39W5bz=KuZhA@mail.gmail.com> On Mon, Feb 15, 2016 at 08:56:21AM -0800, Linus Torvalds wrote: > On Feb 15, 2016 8:31 AM, "Josh Poimboeuf" <jpoimboe@redhat.com> wrote: > > > > So is the goal to optimize for size? If I replace the calls to > > __preempt_schedule[_notrace]() with real C calls and remove the thunks, > > it only adds about 2k to vmlinux. > > It adds nasty register pressure in some of the most critical parts of the > kernel, and makes the asm code harder to read. > > And yes, I still read the asm. For performance reasons, and when decoding > oopses. > > I realize that few other people care about generated code. That's sad. > > > There are two ways to fix the warnings: > > > > 1. get rid of the thunks and call the C functions directly; or > > No. Not until gcc learns about per-function callibg conventions (so that it > can be marked as not clobbering registers). > > > 2. add the stack pointer to the asm() statement output operand list to > > ensure a stack frame gets created in the caller function before the > > call. > > That probably doesn't make things much worse. It probably makes least > functions have a stack frame if they do preempt disable, but it might still > be acceptable. Hard to say before I end up hurting this case again. Oddly, this change (see patch below) actually seems to make things faster in a lot of cases. For many smaller functions it causes the stack frame creation to get moved out of the common path and into the unlikely path. For example, here's the original cyc2ns_read_end(): ffffffff8101f8c0 <cyc2ns_read_end>: ffffffff8101f8c0: 55 push %rbp ffffffff8101f8c1: 48 89 e5 mov %rsp,%rbp ffffffff8101f8c4: 83 6f 10 01 subl $0x1,0x10(%rdi) ffffffff8101f8c8: 75 08 jne ffffffff8101f8d2 <cyc2ns_read_end+0x12> ffffffff8101f8ca: 65 48 89 3d e6 5a ff mov %rdi,%gs:0x7eff5ae6(%rip) # 153b8 <cyc2ns+0x38> ffffffff8101f8d1: 7e ffffffff8101f8d2: 65 ff 0d 77 c4 fe 7e decl %gs:0x7efec477(%rip) # bd50 <__preempt_count> ffffffff8101f8d9: 74 02 je ffffffff8101f8dd <cyc2ns_read_end+0x1d> ffffffff8101f8db: 5d pop %rbp ffffffff8101f8dc: c3 retq ffffffff8101f8dd: e8 1e 37 fe ff callq ffffffff81003000 <___preempt_schedule> ffffffff8101f8e2: 5d pop %rbp ffffffff8101f8e3: c3 retq ffffffff8101f8e4: 66 66 66 2e 0f 1f 84 data16 data16 nopw %cs:0x0(%rax,%rax,1) ffffffff8101f8eb: 00 00 00 00 00 And here's the same function with the patch: ffffffff8101f8c0 <cyc2ns_read_end>: ffffffff8101f8c0: 83 6f 10 01 subl $0x1,0x10(%rdi) ffffffff8101f8c4: 75 08 jne ffffffff8101f8ce <cyc2ns_read_end+0xe> ffffffff8101f8c6: 65 48 89 3d ea 5a ff mov %rdi,%gs:0x7eff5aea(%rip) # 153b8 <cyc2ns+0x38> ffffffff8101f8cd: 7e ffffffff8101f8ce: 65 ff 0d 7b c4 fe 7e decl %gs:0x7efec47b(%rip) # bd50 <__preempt_count> ffffffff8101f8d5: 74 01 je ffffffff8101f8d8 <cyc2ns_read_end+0x18> ffffffff8101f8d7: c3 retq ffffffff8101f8d8: 55 push %rbp ffffffff8101f8d9: 48 89 e5 mov %rsp,%rbp ffffffff8101f8dc: e8 1f 37 fe ff callq ffffffff81003000 <___preempt_schedule> ffffffff8101f8e1: 5d pop %rbp ffffffff8101f8e2: c3 retq ffffffff8101f8e3: 66 66 66 66 2e 0f 1f data16 data16 data16 nopw %cs:0x0(%rax,%rax,1) ffffffff8101f8ea: 84 00 00 00 00 00 Notice that it moved the frame pointer setup code to the unlikely ___preempt_schedule() call path. Going through a sampling of the differences in the asm, that's the most common change I see. Otherwise it has no real effect on callers which already have stack frames (though it does change the ordering of some 'mov's). And it has the intended effect of fixing the following warnings by ensuring these call sites have stack frames: stacktool: drivers/scsi/hpsa.o: hpsa_scsi_do_simple_cmd.constprop.106()+0x79: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_find_first()+0x70: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_find_first()+0x92: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_free()+0xff: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_free()+0xf5: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_free()+0x11a: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_get()+0x225: call without frame pointer save/setup stacktool: kernel/locking/percpu-rwsem.o: percpu_up_read()+0x27: call without frame pointer save/setup stacktool: kernel/profile.o: do_profile_hits.isra.5()+0x139: call without frame pointer save/setup stacktool: lib/nmi_backtrace.o: nmi_trigger_all_cpu_backtrace()+0x2b6: call without frame pointer save/setup stacktool: net/rds/ib_cm.o: rds_ib_cq_comp_handler_recv()+0x58: call without frame pointer save/setup stacktool: net/rds/ib_cm.o: rds_ib_cq_comp_handler_send()+0x58: call without frame pointer save/setup stacktool: net/rds/ib_recv.o: rds_ib_attempt_ack()+0xc1: call without frame pointer save/setup stacktool: net/rds/iw_recv.o: rds_iw_attempt_ack()+0xc1: call without frame pointer save/setup stacktool: net/rds/iw_recv.o: rds_iw_recv_cq_comp_handler()+0x55: call without frame pointer save/setup So that only adds a stack frame to 15 call sites out of ~5000 calls to ___preempt_schedule[_notrace]. All the others already had stack frames. Any idea for a good benchmark to run with the patch? > The alternative is to just teach the tools about the magic issue of a few > things like this. I think that would be problematic for our goal of making stack traces of sleeping tasks reliable. If preempt_enable()'s caller doesn't first create a stack frame, the caller of the caller will get skipped in the stack trace. ---8<--- diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h index 01bcde8..2989aa6 100644 --- a/arch/x86/include/asm/preempt.h +++ b/arch/x86/include/asm/preempt.h @@ -94,10 +94,19 @@ static __always_inline bool should_resched(int preempt_offset) #ifdef CONFIG_PREEMPT extern asmlinkage void ___preempt_schedule(void); -# define __preempt_schedule() asm ("call ___preempt_schedule") +# define __preempt_schedule() \ +({ \ + register void *__sp asm(_ASM_SP); \ + asm volatile ("call ___preempt_schedule" : "+r"(__sp)); \ +}) + extern asmlinkage void preempt_schedule(void); extern asmlinkage void ___preempt_schedule_notrace(void); -# define __preempt_schedule_notrace() asm ("call ___preempt_schedule_notrace") +# define __preempt_schedule_notrace() \ +({ \ + register void *__sp asm(_ASM_SP); \ + asm volatile ("call ___preempt_schedule_notrace" : "+r"(__sp)); \ +}) extern asmlinkage void preempt_schedule_notrace(void); #endif -- Josh
WARNING: multiple messages have this Message-ID (diff)
From: Josh Poimboeuf <jpoimboe@redhat.com> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de>, Alok Kataria <akataria@vmware.com>, Ingo Molnar <mingo@redhat.com>, Guenter Roeck <linux@roeck-us.net>, Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>, Herbert Xu <herbert@gondor.apana.org.au>, Andrew Morton <akpm@linux-foundation.org>, Rusty Russell <rusty@rustcorp.com.au>, Bernd Petrovitsch <bernd@petrovitsch.priv.at>, linux-watchdog@vger.kernel.org, Pedro Alves <palves@redhat.com>, Pavel Machek <pavel@ucw.cz>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Michal Marek <mmarek@suse.cz>, Namhyung Kim <namhyung@gmail.com>, Jeremy Fitzhardinge <jeremy@goop.org>, Waiman Long <Waiman.Long@hpe.com>, "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, Jiri Slaby <jslaby@suse.cz>, kvm@vger.kernel.org, x86@kernel.org, Arnaldo Carvalho de Melo <acme@kernel.org>, Paolo Bonzini <pbonzini@redhat.com>, Masami Hiramatsu <masami.hira Subject: Re: [PATCH 00/33] Compile-time stack metadata validation Date: Mon, 15 Feb 2016 14:01:56 -0600 [thread overview] Message-ID: <20160215200156.GA3018@treble.redhat.com> (raw) In-Reply-To: <CA+55aFzoPCd_LcSx1FUuEhSBYk2KrfzXGj-Vcn39W5bz=KuZhA@mail.gmail.com> On Mon, Feb 15, 2016 at 08:56:21AM -0800, Linus Torvalds wrote: > On Feb 15, 2016 8:31 AM, "Josh Poimboeuf" <jpoimboe@redhat.com> wrote: > > > > So is the goal to optimize for size? If I replace the calls to > > __preempt_schedule[_notrace]() with real C calls and remove the thunks, > > it only adds about 2k to vmlinux. > > It adds nasty register pressure in some of the most critical parts of the > kernel, and makes the asm code harder to read. > > And yes, I still read the asm. For performance reasons, and when decoding > oopses. > > I realize that few other people care about generated code. That's sad. > > > There are two ways to fix the warnings: > > > > 1. get rid of the thunks and call the C functions directly; or > > No. Not until gcc learns about per-function callibg conventions (so that it > can be marked as not clobbering registers). > > > 2. add the stack pointer to the asm() statement output operand list to > > ensure a stack frame gets created in the caller function before the > > call. > > That probably doesn't make things much worse. It probably makes least > functions have a stack frame if they do preempt disable, but it might still > be acceptable. Hard to say before I end up hurting this case again. Oddly, this change (see patch below) actually seems to make things faster in a lot of cases. For many smaller functions it causes the stack frame creation to get moved out of the common path and into the unlikely path. For example, here's the original cyc2ns_read_end(): ffffffff8101f8c0 <cyc2ns_read_end>: ffffffff8101f8c0: 55 push %rbp ffffffff8101f8c1: 48 89 e5 mov %rsp,%rbp ffffffff8101f8c4: 83 6f 10 01 subl $0x1,0x10(%rdi) ffffffff8101f8c8: 75 08 jne ffffffff8101f8d2 <cyc2ns_read_end+0x12> ffffffff8101f8ca: 65 48 89 3d e6 5a ff mov %rdi,%gs:0x7eff5ae6(%rip) # 153b8 <cyc2ns+0x38> ffffffff8101f8d1: 7e ffffffff8101f8d2: 65 ff 0d 77 c4 fe 7e decl %gs:0x7efec477(%rip) # bd50 <__preempt_count> ffffffff8101f8d9: 74 02 je ffffffff8101f8dd <cyc2ns_read_end+0x1d> ffffffff8101f8db: 5d pop %rbp ffffffff8101f8dc: c3 retq ffffffff8101f8dd: e8 1e 37 fe ff callq ffffffff81003000 <___preempt_schedule> ffffffff8101f8e2: 5d pop %rbp ffffffff8101f8e3: c3 retq ffffffff8101f8e4: 66 66 66 2e 0f 1f 84 data16 data16 nopw %cs:0x0(%rax,%rax,1) ffffffff8101f8eb: 00 00 00 00 00 And here's the same function with the patch: ffffffff8101f8c0 <cyc2ns_read_end>: ffffffff8101f8c0: 83 6f 10 01 subl $0x1,0x10(%rdi) ffffffff8101f8c4: 75 08 jne ffffffff8101f8ce <cyc2ns_read_end+0xe> ffffffff8101f8c6: 65 48 89 3d ea 5a ff mov %rdi,%gs:0x7eff5aea(%rip) # 153b8 <cyc2ns+0x38> ffffffff8101f8cd: 7e ffffffff8101f8ce: 65 ff 0d 7b c4 fe 7e decl %gs:0x7efec47b(%rip) # bd50 <__preempt_count> ffffffff8101f8d5: 74 01 je ffffffff8101f8d8 <cyc2ns_read_end+0x18> ffffffff8101f8d7: c3 retq ffffffff8101f8d8: 55 push %rbp ffffffff8101f8d9: 48 89 e5 mov %rsp,%rbp ffffffff8101f8dc: e8 1f 37 fe ff callq ffffffff81003000 <___preempt_schedule> ffffffff8101f8e1: 5d pop %rbp ffffffff8101f8e2: c3 retq ffffffff8101f8e3: 66 66 66 66 2e 0f 1f data16 data16 data16 nopw %cs:0x0(%rax,%rax,1) ffffffff8101f8ea: 84 00 00 00 00 00 Notice that it moved the frame pointer setup code to the unlikely ___preempt_schedule() call path. Going through a sampling of the differences in the asm, that's the most common change I see. Otherwise it has no real effect on callers which already have stack frames (though it does change the ordering of some 'mov's). And it has the intended effect of fixing the following warnings by ensuring these call sites have stack frames: stacktool: drivers/scsi/hpsa.o: hpsa_scsi_do_simple_cmd.constprop.106()+0x79: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_find_first()+0x70: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_find_first()+0x92: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_free()+0xff: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_free()+0xf5: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_free()+0x11a: call without frame pointer save/setup stacktool: fs/mbcache.o: mb_cache_entry_get()+0x225: call without frame pointer save/setup stacktool: kernel/locking/percpu-rwsem.o: percpu_up_read()+0x27: call without frame pointer save/setup stacktool: kernel/profile.o: do_profile_hits.isra.5()+0x139: call without frame pointer save/setup stacktool: lib/nmi_backtrace.o: nmi_trigger_all_cpu_backtrace()+0x2b6: call without frame pointer save/setup stacktool: net/rds/ib_cm.o: rds_ib_cq_comp_handler_recv()+0x58: call without frame pointer save/setup stacktool: net/rds/ib_cm.o: rds_ib_cq_comp_handler_send()+0x58: call without frame pointer save/setup stacktool: net/rds/ib_recv.o: rds_ib_attempt_ack()+0xc1: call without frame pointer save/setup stacktool: net/rds/iw_recv.o: rds_iw_attempt_ack()+0xc1: call without frame pointer save/setup stacktool: net/rds/iw_recv.o: rds_iw_recv_cq_comp_handler()+0x55: call without frame pointer save/setup So that only adds a stack frame to 15 call sites out of ~5000 calls to ___preempt_schedule[_notrace]. All the others already had stack frames. Any idea for a good benchmark to run with the patch? > The alternative is to just teach the tools about the magic issue of a few > things like this. I think that would be problematic for our goal of making stack traces of sleeping tasks reliable. If preempt_enable()'s caller doesn't first create a stack frame, the caller of the caller will get skipped in the stack trace. ---8<--- diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h index 01bcde8..2989aa6 100644 --- a/arch/x86/include/asm/preempt.h +++ b/arch/x86/include/asm/preempt.h @@ -94,10 +94,19 @@ static __always_inline bool should_resched(int preempt_offset) #ifdef CONFIG_PREEMPT extern asmlinkage void ___preempt_schedule(void); -# define __preempt_schedule() asm ("call ___preempt_schedule") +# define __preempt_schedule() \ +({ \ + register void *__sp asm(_ASM_SP); \ + asm volatile ("call ___preempt_schedule" : "+r"(__sp)); \ +}) + extern asmlinkage void preempt_schedule(void); extern asmlinkage void ___preempt_schedule_notrace(void); -# define __preempt_schedule_notrace() asm ("call ___preempt_schedule_notrace") +# define __preempt_schedule_notrace() \ +({ \ + register void *__sp asm(_ASM_SP); \ + asm volatile ("call ___preempt_schedule_notrace" : "+r"(__sp)); \ +}) extern asmlinkage void preempt_schedule_notrace(void); #endif -- Josh
next prev parent reply other threads:[~2016-02-15 20:02 UTC|newest] Thread overview: 156+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-01-21 22:49 [PATCH 00/33] Compile-time stack metadata validation Josh Poimboeuf 2016-01-21 22:49 ` Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 01/33] x86/stacktool: " Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 02/33] kbuild/stacktool: Add CONFIG_STACK_VALIDATION option Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 03/33] x86/stacktool: Enable stacktool on x86_64 Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 04/33] x86/stacktool: Add STACKTOOL_IGNORE_FUNC macro Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 05/33] x86/xen: Add stack frame dependency to hypercall inline asm calls Josh Poimboeuf 2016-02-23 8:55 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:45 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 06/33] x86/asm/xen: Set ELF function type for xen_adjust_exception_frame() Josh Poimboeuf 2016-02-23 8:56 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:45 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 07/33] x86/asm/xen: Create stack frames in xen-asm.S Josh Poimboeuf 2016-02-23 8:56 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:45 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 08/33] x86/paravirt: Add stack frame dependency to PVOP inline asm calls Josh Poimboeuf 2016-02-23 8:56 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:46 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 09/33] x86/paravirt: Create a stack frame in PV_CALLEE_SAVE_REGS_THUNK Josh Poimboeuf 2016-02-23 8:57 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:46 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 10/33] x86/amd: Set ELF function type for vide() Josh Poimboeuf 2016-02-23 8:57 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:46 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 11/33] x86/asm/crypto: Move .Lbswap_mask data to .rodata section Josh Poimboeuf 2016-02-23 8:58 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:47 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 12/33] x86/asm/crypto: Move jump_table " Josh Poimboeuf 2016-02-23 8:58 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:47 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 13/33] x86/asm/crypto: Simplify stack usage in sha-mb functions Josh Poimboeuf 2016-02-23 8:59 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:47 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 14/33] x86/asm/crypto: Don't use rbp as a scratch register Josh Poimboeuf 2016-02-23 8:59 ` [tip:x86/debug] x86/asm/crypto: Don't use RBP " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:48 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 15/33] x86/asm/crypto: Create stack frames in crypto functions Josh Poimboeuf 2016-02-23 8:59 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:48 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 16/33] x86/asm/entry: Create stack frames in thunk functions Josh Poimboeuf 2016-02-23 9:00 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:48 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 17/33] x86/asm/acpi: Create a stack frame in do_suspend_lowlevel() Josh Poimboeuf 2016-02-23 9:00 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-23 11:39 ` Pavel Machek 2016-02-25 5:49 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 18/33] x86/asm: Create stack frames in rwsem functions Josh Poimboeuf 2016-02-23 9:01 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:49 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 19/33] x86/asm/efi: Create a stack frame in efi_call() Josh Poimboeuf 2016-02-23 9:01 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:49 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 20/33] x86/asm/power: Create stack frames in hibernate_asm_64.S Josh Poimboeuf 2016-02-23 9:01 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:50 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 21/33] x86/uaccess: Add stack frame output operand in get_user inline asm Josh Poimboeuf 2016-02-23 9:02 ` [tip:x86/debug] x86/uaccess: Add stack frame output operand in get_user() " =?UTF-8?B?dGlwLWJvdCBmb3IgQ2hyaXMgSiBBcmdlcyA8dGlwYm90QHp5dG9yLmNvbT4=?= 2016-02-25 5:50 ` tip-bot for Chris J Arges 2016-01-21 22:49 ` [PATCH 22/33] x86/asm/bpf: Annotate callable functions Josh Poimboeuf 2016-02-23 9:02 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:50 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 23/33] x86/asm/bpf: Create stack frames in bpf_jit.S Josh Poimboeuf 2016-01-22 2:44 ` Alexei Starovoitov 2016-01-22 3:55 ` Josh Poimboeuf 2016-01-22 4:18 ` Alexei Starovoitov 2016-01-22 7:36 ` Ingo Molnar 2016-01-22 15:58 ` Josh Poimboeuf 2016-01-22 17:18 ` Alexei Starovoitov 2016-01-22 17:36 ` Josh Poimboeuf 2016-01-22 17:40 ` Alexei Starovoitov 2016-02-23 9:03 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:51 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 24/33] x86/kprobes: Get rid of kretprobe_trampoline_holder() Josh Poimboeuf 2016-01-21 23:42 ` 平松雅巳 / HIRAMATU,MASAMI 2016-02-23 9:03 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:51 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 25/33] x86/kvm: Set ELF function type for fastop functions Josh Poimboeuf 2016-01-22 10:05 ` Paolo Bonzini 2016-02-23 9:03 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:51 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 26/33] x86/kvm: Add stack frame dependency to test_cc() inline asm Josh Poimboeuf 2016-01-22 10:05 ` Paolo Bonzini 2016-01-22 16:02 ` Josh Poimboeuf 2016-01-22 16:16 ` [PATCH v16.1 26/33] x86/kvm: Make test_cc() always inline Josh Poimboeuf 2016-02-23 9:04 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:52 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 27/33] watchdog/hpwdt: Create stack frame in asminline_call() Josh Poimboeuf 2016-02-23 9:04 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:52 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 28/33] x86/locking: Create stack frame in PV unlock Josh Poimboeuf 2016-02-23 9:05 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:52 ` tip-bot for Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 29/33] x86/stacktool: Add directory and file whitelists Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 30/33] x86/xen: Add xen_cpuid() to stacktool whitelist Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 31/33] bpf: Add __bpf_prog_run() " Josh Poimboeuf 2016-01-21 22:57 ` Daniel Borkmann 2016-01-22 2:55 ` Alexei Starovoitov 2016-01-22 4:13 ` Josh Poimboeuf 2016-01-22 17:19 ` Alexei Starovoitov 2016-01-21 22:49 ` [PATCH 32/33] sched: Add __schedule() " Josh Poimboeuf 2016-01-21 22:49 ` [PATCH 33/33] x86/kprobes: Add kretprobe_trampoline() " Josh Poimboeuf 2016-01-22 17:43 ` [PATCH 00/33] Compile-time stack metadata validation Chris J Arges 2016-01-22 17:43 ` Chris J Arges 2016-01-22 19:14 ` Josh Poimboeuf 2016-01-22 19:14 ` Josh Poimboeuf 2016-01-22 20:40 ` Chris J Arges 2016-01-22 20:40 ` Chris J Arges 2016-01-22 20:47 ` Josh Poimboeuf 2016-01-22 20:47 ` Josh Poimboeuf 2016-01-22 21:44 ` [PATCH 0/2] A few stacktool warning fixes Chris J Arges 2016-01-22 21:44 ` [PATCH 1/2] tools/stacktool: Add __reiserfs_panic to global_noreturns list Chris J Arges 2016-01-25 15:04 ` Josh Poimboeuf 2016-01-22 21:44 ` [PATCH 2/2] x86/kvm: Add output operand in vmx_handle_external_intr inline asm Chris J Arges 2016-01-25 15:05 ` Josh Poimboeuf 2016-02-23 9:05 ` [tip:x86/debug] " =?UTF-8?B?dGlwLWJvdCBmb3IgQ2hyaXMgSiBBcmdlcyA8dGlwYm90QHp5dG9yLmNvbT4=?= 2016-02-25 5:53 ` tip-bot for Chris J Arges 2016-02-12 10:36 ` [PATCH 00/33] Compile-time stack metadata validation Jiri Slaby 2016-02-12 10:36 ` Jiri Slaby 2016-02-12 10:41 ` Jiri Slaby 2016-02-12 10:41 ` Jiri Slaby 2016-02-12 14:45 ` Josh Poimboeuf 2016-02-12 14:45 ` Josh Poimboeuf 2016-02-12 17:10 ` Peter Zijlstra 2016-02-12 17:10 ` Peter Zijlstra 2016-02-12 18:32 ` Josh Poimboeuf 2016-02-12 18:32 ` Josh Poimboeuf 2016-02-12 18:34 ` Josh Poimboeuf 2016-02-12 18:34 ` Josh Poimboeuf 2016-02-12 20:10 ` Peter Zijlstra 2016-02-12 20:10 ` Peter Zijlstra 2016-02-15 16:31 ` Josh Poimboeuf 2016-02-15 16:31 ` Josh Poimboeuf 2016-02-15 16:49 ` Peter Zijlstra 2016-02-15 16:49 ` Peter Zijlstra [not found] ` <CA+55aFzoPCd_LcSx1FUuEhSBYk2KrfzXGj-Vcn39W5bz=KuZhA@mail.gmail.com> 2016-02-15 20:01 ` Josh Poimboeuf [this message] 2016-02-15 20:01 ` Josh Poimboeuf 2016-02-18 17:41 ` [PATCH] sched/x86: Add stack frame dependency to __preempt_schedule[_notrace] Josh Poimboeuf 2016-02-19 12:05 ` Jiri Slaby 2016-02-23 9:05 ` [tip:x86/debug] sched/x86: Add stack frame dependency to __preempt_schedule[_notrace]() =?UTF-8?B?dGlwLWJvdCBmb3IgSm9zaCBQb2ltYm9ldWYgPHRpcGJvdEB6eXRvci5jb20+?= 2016-02-25 5:53 ` tip-bot for Josh Poimboeuf 2016-02-15 20:02 ` [PATCH 00/33] Compile-time stack metadata validation Andi Kleen 2016-02-15 20:02 ` Andi Kleen 2016-02-23 8:14 ` Ingo Molnar 2016-02-23 8:14 ` Ingo Molnar 2016-02-23 14:27 ` Arnaldo Carvalho de Melo 2016-02-23 14:27 ` Arnaldo Carvalho de Melo 2016-02-23 15:07 ` Josh Poimboeuf 2016-02-23 15:07 ` Josh Poimboeuf 2016-02-23 15:28 ` Arnaldo Carvalho de Melo 2016-02-23 15:28 ` Arnaldo Carvalho de Melo 2016-02-23 15:01 ` Josh Poimboeuf 2016-02-23 15:01 ` Josh Poimboeuf 2016-02-24 7:40 ` Ingo Molnar 2016-02-24 7:40 ` Ingo Molnar 2016-02-24 16:32 ` Josh Poimboeuf 2016-02-24 16:32 ` Josh Poimboeuf
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20160215200156.GA3018@treble.redhat.com \ --to=jpoimboe@redhat.com \ --cc=Waiman.Long@hpe.com \ --cc=acme@kernel.org \ --cc=akataria@vmware.com \ --cc=akpm@linux-foundation.org \ --cc=ananth@in.ibm.com \ --cc=andi@firstfloor.org \ --cc=anil.s.keshavamurthy@intel.com \ --cc=ast@kernel.org \ --cc=bernd@petrovitsch.priv.at \ --cc=boris.ostrovsky@oracle.com \ --cc=bp@alien8.de \ --cc=bp@suse.de \ --cc=chris.j.arges@canonical.com \ --cc=chrisw@sous-sol.org \ --cc=davem@davemloft.net \ --cc=david.vrabel@citrix.com \ --cc=gleb@kernel.org \ --cc=herbert@gondor.apana.org.au \ --cc=hpa@zytor.com \ --cc=jeremy@goop.org \ --cc=jslaby@suse.cz \ --cc=konrad.wilk@oracle.com \ --cc=kvm@vger.kernel.org \ --cc=len.brown@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-watchdog@vger.kernel.org \ --cc=linux@roeck-us.net \ --cc=live-patching@vger.kernel.org \ --cc=luto@kernel.org \ --cc=masami.hiramatsu.pt@hitachi.com \ --cc=matt@codeblueprint.co.uk \ --cc=mingo@redhat.com \ --cc=mmarek@suse.cz \ --cc=namhyung@gmail.com \ --cc=netdev@vger.kernel.org \ --cc=palves@redhat.com \ --cc=pavel@ucw.cz \ --cc=pbonzini@redhat.com \ --cc=peterz@infradead.org \ --cc=rafael.j.wysocki@intel.com \ --cc=rusty@rustcorp.com.au \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ --cc=wim@iguana.be \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.