Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755099AbbGFRKb (ORCPT ); Mon, 6 Jul 2015 13:10:31 -0400 Received: from mail-ie0-f181.google.com ([209.85.223.181]:34813 "EHLO mail-ie0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753726AbbGFRK2 (ORCPT ); Mon, 6 Jul 2015 13:10:28 -0400 MIME-Version: 1.0 In-Reply-To: <20150706134423.GA8094@gmail.com> References: <20150706134423.GA8094@gmail.com> Date: Mon, 6 Jul 2015 10:10:27 -0700 X-Google-Sender-Auth: wi25UsRP6N3ymjMJNkaKB-UV2EY Message-ID: Subject: Re: [PATCH] x86: Fix detection of GCC -mpreferred-stack-boundary support From: Linus Torvalds To: Ingo Molnar Cc: Andy Lutomirski , Linux Kernel Mailing List , "the arch/x86 maintainers" , Jan Kara , Borislav Petkov , Denys Vlasenko Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1437 Lines: 32 On Mon, Jul 6, 2015 at 6:44 AM, Ingo Molnar wrote: > > So looking at this I question the choice of -mpreferred-stack-boundary=3. Why not > do -mpreferred-stack-boundary=2? It wouldn't make sense anyway - it would only make code worse (if it worked) and not any better. The reason the "=3" value is good is because 8-byte alignment is the "natural" alignment - it's what you get with a normal call sequence, simply because the return address is 8 bytes in size. That means that with "=3" you don't get extra code to align the stack for the simple functions that don't need a frame. Anything smaller than 3 wouldn't help even if it worked, because none of the normal stack operations (pushing/popping registers to save/restore them) would be any smaller anyway. But bigger values than 3 result in the compiler having to generate extra stack adjustments just to align the stack after a call that very naturally mis-aligned it. And it doesn't help anyway, since in the kernel we don't put stuff on the stack that needs bigger alignment (of, the fxsave buffer is a counter-example, but it's a very odd one that we _shouldn't_ have put on the stack). Linus -- 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/