Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp1764151yba; Sat, 6 Apr 2019 23:13:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqyMtz2853nKfayxYA8DXzVi5Kk8oNAJKs4HQEO1UjIo5mBwV8+H4WHZIavWd2twl2/wucyL X-Received: by 2002:a65:6241:: with SMTP id q1mr20739768pgv.244.1554617587729; Sat, 06 Apr 2019 23:13:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554617587; cv=none; d=google.com; s=arc-20160816; b=G5KVsz3zXz3UdWV0mTsFzOBtBQk4WPMCQOVd1qmb7wVtJcsJt5JnFinnopdAyljKpg cK34jcUCZ7RcQdX/LksRuzZ9Fdmgcp55ouKD93dz3oucoFltkgNqMOgcUXh7zXl3szPs /hcNGqYKx4csyAQSokZBlE6cz2fu5ySqBJFA8tYUBdHYFeBNT8E0cuDcTABst0ETrB42 HZIF0gbcuQAiQrxIOKtEREnfSQ/YoS/+NzQEBQQ54qq4jVVswqOeQ9g7RnV2de35Hjpw 8r1FeKUzqaa/5yCWKStq20g1SWXuTQT+o8CwOo6tQqeGKF7cCU8rx4jXb/jWU86Er33+ AEEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :message-id:in-reply-to:subject:cc:to:from:date; bh=G8vzTVQV8/zK4CoFyAKz6O1dyl4JkdkJm+uKLnCnPTM=; b=Rd4pFb7fPaFpXgwuLxHXkAUQxqZmgNoLU+Be6soG9Uegui9Hx/lXBHzqfMiodlBjkN qrP1ig3gwJx53hLONrTIBjdLjxPePDcFRK79c59abvI4qXCDGlUZ2+OLUUz5vC5yyi6e Rv0Gd6bJ7TdV+vjJ0WmYKIt5Ut6HzPiGgUTMsVXxB0cnVp2GoigVzWR7W3yJ2/UF7S1n jyyy0qOYaCdvAsLHrcV/atzvKJGgg9IVXHglY1/LFoH+MIjhgL+o0Yc7hcaxukQhgf1B PE7F/MtnUgkdyM7ubPk3HfrSgUoKIetOWSgUPYpmMtUhZSQLCzoTTnwTM2RPSYI1tBH7 axig== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e6si23450781pgb.435.2019.04.06.23.12.21; Sat, 06 Apr 2019 23:13:07 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726044AbfDGGJJ (ORCPT + 99 others); Sun, 7 Apr 2019 02:09:09 -0400 Received: from Galois.linutronix.de ([146.0.238.70]:50657 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725929AbfDGGJJ (ORCPT ); Sun, 7 Apr 2019 02:09:09 -0400 Received: from p5492ee6e.dip0.t-ipconnect.de ([84.146.238.110] helo=nanos) by Galois.linutronix.de with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1hD0zF-0002YB-G9; Sun, 07 Apr 2019 08:09:01 +0200 Date: Sun, 7 Apr 2019 08:08:56 +0200 (CEST) From: Thomas Gleixner To: Andy Lutomirski cc: LKML , X86 ML , Josh Poimboeuf , Sean Christopherson Subject: Re: [patch V2 28/29] x86/irq/64: Remap the IRQ stack with guard pages In-Reply-To: Message-ID: References: <20190405150658.237064784@linutronix.de> <20190405150930.967389183@linutronix.de> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, 6 Apr 2019, Andy Lutomirski wrote: > On Fri, Apr 5, 2019 at 8:11 AM Thomas Gleixner wrote: > > > > From: Andy Lutomirski > > > > The IRQ stack lives in percpu space, so an IRQ handler that overflows it > > will overwrite other data structures. > > > > Use vmap() to remap the IRQ stack so that it will have the usual guard > > pages that vmap/vmalloc allocations have. With this the kernel will panic > > immediately on an IRQ stack overflow. > > The 0day bot noticed that this dies with DEBUG_PAGEALLOC on. This is > because the store_stackinfo() function is utter garbage and this patch > correctly detects just how broken it is. The attached patch "fixes" > it. (It also contains a reliability improvement that should probably > get folded in, but is otherwise unrelated.) > > A real fix would remove the generic kstack_end() function entirely > along with __HAVE_ARCH_KSTACK_END and would optionally replace > store_stackinfo() with something useful. Josh, do we have a generic > API to do a little stack walk like this? Otherwise, I don't think it > would be the end of the world to just remove the offending code. Yes, I found the same yesterday before heading out. It's already broken with the percpu stack because there is no guarantee that the per cpu stack is thread size aligned. It's guaranteed to be page aligned not more. I'm all for removing that nonsense, but the real question is whether there is more code which assumes THREAD_SIZE aligned stacks aside of the thread stack itself. Thanks, tglx