From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933026AbbHKWZ3 (ORCPT ); Tue, 11 Aug 2015 18:25:29 -0400 Received: from mail-ob0-f179.google.com ([209.85.214.179]:33505 "EHLO mail-ob0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932316AbbHKWZ0 (ORCPT ); Tue, 11 Aug 2015 18:25:26 -0400 MIME-Version: 1.0 In-Reply-To: <20150811221822.GA15639@lerouge> References: <60e90901eee611e59e958bfdbbe39969b4f88fe5.1435952415.git.luto@kernel.org> <20150811221822.GA15639@lerouge> From: Andy Lutomirski Date: Tue, 11 Aug 2015 15:25:04 -0700 Message-ID: Subject: Re: [tip:x86/asm] x86/asm/entry/64: Migrate error and IRQ exit work to C and remove old assembly code To: Frederic Weisbecker Cc: Denys Vlasenko , Rik van Riel , Borislav Petkov , Peter Zijlstra , Brian Gerst , Denys Vlasenko , Kees Cook , Thomas Gleixner , Oleg Nesterov , Andrew Lutomirski , Linus Torvalds , Ingo Molnar , "H. Peter Anvin" , "linux-kernel@vger.kernel.org" , "linux-tip-commits@vger.kernel.org" Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 11, 2015 at 3:18 PM, Frederic Weisbecker wrote: > On Tue, Jul 07, 2015 at 03:53:29AM -0700, tip-bot for Andy Lutomirski wrote: >> Commit-ID: 02bc7768fe447ae305e924b931fa629073a4a1b9 >> Gitweb: http://git.kernel.org/tip/02bc7768fe447ae305e924b931fa629073a4a1b9 >> Author: Andy Lutomirski >> AuthorDate: Fri, 3 Jul 2015 12:44:31 -0700 >> Committer: Ingo Molnar >> CommitDate: Tue, 7 Jul 2015 10:59:08 +0200 >> >> x86/asm/entry/64: Migrate error and IRQ exit work to C and remove old assembly code >> >> Signed-off-by: Andy Lutomirski >> Cc: Andy Lutomirski >> Cc: Borislav Petkov >> Cc: Brian Gerst >> Cc: Denys Vlasenko >> Cc: Denys Vlasenko >> Cc: Frederic Weisbecker >> Cc: H. Peter Anvin >> Cc: Kees Cook >> Cc: Linus Torvalds >> Cc: Oleg Nesterov >> Cc: Peter Zijlstra >> Cc: Rik van Riel >> Cc: Thomas Gleixner >> Cc: paulmck@linux.vnet.ibm.com >> Link: http://lkml.kernel.org/r/60e90901eee611e59e958bfdbbe39969b4f88fe5.1435952415.git.luto@kernel.org >> Signed-off-by: Ingo Molnar >> --- >> arch/x86/entry/entry_64.S | 64 +++++++++++----------------------------- >> arch/x86/entry/entry_64_compat.S | 5 ++++ >> 2 files changed, 23 insertions(+), 46 deletions(-) >> >> diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S >> index 83eb63d..168ee26 100644 >> --- a/arch/x86/entry/entry_64.S >> +++ b/arch/x86/entry/entry_64.S >> @@ -508,7 +508,16 @@ END(irq_entries_start) >> >> testb $3, CS(%rsp) >> jz 1f >> + >> + /* >> + * IRQ from user mode. Switch to kernel gsbase and inform context >> + * tracking that we're in kernel mode. >> + */ >> SWAPGS >> +#ifdef CONFIG_CONTEXT_TRACKING >> + call enter_from_user_mode >> +#endif > > There have been a lot of patches going there lately so I couldn't follow > everything and since you just started a discussion on context tracking, I > just had a look on the latest change. > > So it seems we're now calling user_exit() on IRQ entry. This is not something > we want. We already have everything we need with rcu_irq_enter() and > vtime_account_irq_enter(). user_exit() brings a lot of overhead here that we > don't need. Plus this is called unconditionally since CONFIG_CONTEXT_TRACKING=y > on most distros now. > > We really want the context tracking code to be called on syscall slow path only > (and exceptions with static keys but an exception slow path would be desired as well). Can you explain to me what context tracking does that rcu_irq_enter and vtime_account_irq_enter don't do that's expensive? Frankly, I'd rather drop everything except the context tracking callback. We also need this for the deletion of exception_enter from the trap entries to be correct. Like I said in the other thread, there are too many hooks for arch code to juggle. Grumble. --Andy