Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932749AbbFJOLq (ORCPT ); Wed, 10 Jun 2015 10:11:46 -0400 Received: from one.firstfloor.org ([193.170.194.197]:39899 "EHLO one.firstfloor.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965430AbbFJOLH (ORCPT ); Wed, 10 Jun 2015 10:11:07 -0400 Date: Wed, 10 Jun 2015 16:11:04 +0200 From: Andi Kleen To: Josh Poimboeuf Cc: Andi Kleen , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Michal Marek , Peter Zijlstra , Andy Lutomirski , Borislav Petkov , Linus Torvalds , x86@kernel.org, live-patching@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v5 00/10] x86/asm: Compile-time asm code validation Message-ID: <20150610141104.GQ19417@two.firstfloor.org> References: <20150610130814.GN19417@two.firstfloor.org> <20150610135203.GA19509@treble.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150610135203.GA19509@treble.redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1418 Lines: 41 > In most cases there are ways to keep the optimizations. For example: > > - grow the function bounds to keep the jump internal So you mean moving it after the ret? That still means icache bloat. > - duplicate the destination code inside the function > - convert the jump to a call That all won't work for a lot of cases. > Also note that these rules only affect _callable_ functions, so the > entry code and other non-function asm code can still be a pile of > spaghetti (though I think Andy is working on improving that). Thank you for your kind words. > > In fact even gcc with the right options can generate code that violates > > this. Standard Linux constructions, such as exception handling, > > also violate this. > > > > If your tool needs that your tool is broken. > > This tool only validates asm code, so I don't see how whatever gcc does > is relevant. Whoever needs it would need it everywhere, right? If it's not needed for gcc then it shouldn't be needed for assembler code either. BTW the way gcc handles it is to use the dwarf 4 extensions that can describe non contiguous sections.` -Andi -- ak@linux.intel.com -- Speaking for myself only. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/