Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3235812imm; Fri, 20 Jul 2018 12:33:32 -0700 (PDT) X-Google-Smtp-Source: AAOMgpcjUfGI67OgZ8mRtzJZGHgjCEb9+xw9kq6InKx42TUIMZZfasFy3JJXJ3b3z9nkawjqrzir X-Received: by 2002:a65:5c4b:: with SMTP id v11-v6mr3265658pgr.445.1532115212075; Fri, 20 Jul 2018 12:33:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532115212; cv=none; d=google.com; s=arc-20160816; b=MwNBh8nuDhzTNjgjxqhxM3YvInJkK1qj1N++ospHXDYBm84dZZ5EdObqf6Y54w9GOG fOWqyUfakpItCXNsmPVDFHQkj/Q4x+9Ke7991zoApyJ0n3sit0htkLINPP2ZLA6LE2+w ZI7/AYBEQtF2GYw86T3CsxQVup08ktossu0Q1ZZzDj6BvHiY/fif1FiaZof1Zf/W6Jjn k2c4D75jjg4InmKKc0ZSMUqHNMTrUtZE19zR4F/Dk/fBAL/fdPRm0A0nxb415Sx+zBQJ FLwOQU73OC/WDw0ceU02wCsySzMhMz8Oaw7Uz/q9mN/1gpOR3L2k9ClQce/2mzGe1ax+ gxEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=x2un2GAVx/+D1LhZBJtiEHwZETILtpHzX/C3zB1/p5E=; b=osomvrWnY7qxpqfU26aanMYeQ+M3F3cUFeCOw7zDojTLC9AQ0ESWlZm6m44Hyai+KL B5DXz+Vl7PoiLg4kDirsGcHazR9wTD0prCs/CLetUTpH/fbzpYW9LPcZfJFCiEx/CCh1 xz/J2yifFaNvrtQ8PnscBz4zWAeOwfkwoWaFujGirpb3tl9DC/gvbg//eIFv6inWSDbC qBhUcZKGhOxxl2Cv0/Crg5tcEuRATM6A1oa0KR+iTh115Adi1PfWfdyMGdPRGCsGDltM QozLnIoTz6mSA4b7NZebFH5YofFCtF3VlC2/fck/DLKerqnEYqW6aOzJHGOgp4v6DDKU tW+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=rdSi0A5n; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u186-v6si2616096pfu.263.2018.07.20.12.33.16; Fri, 20 Jul 2018 12:33:32 -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; dkim=pass header.i=@kernel.org header.s=default header.b=rdSi0A5n; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388473AbeGTUWO (ORCPT + 99 others); Fri, 20 Jul 2018 16:22:14 -0400 Received: from mail.kernel.org ([198.145.29.99]:40516 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388212AbeGTUWN (ORCPT ); Fri, 20 Jul 2018 16:22:13 -0400 Received: from mail-wm0-f46.google.com (mail-wm0-f46.google.com [74.125.82.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 3D42E2086B for ; Fri, 20 Jul 2018 19:32:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1532115152; bh=mV3peTbm5lguK5Ltik4c39xqYNt1dFvzd9xRyl8STFM=; h=In-Reply-To:References:From:Date:Subject:To:Cc:From; b=rdSi0A5nhuzVRU8f2J2LEoXk9IGwVRPmZIeF8pDRNuJuU163PZpJ8XlUQiS39ue4V 3SHx6gXOmwwMkP5rqGf/lZRUUZ+OM0loKTmbRZ2aK1VLG02+sl+VepM60b0Kxsx63k fJnKFNPTBhf75RwwU74V0xnOFC/6pJpO+wEVOe+8= Received: by mail-wm0-f46.google.com with SMTP id a19-v6so10778691wmb.2 for ; Fri, 20 Jul 2018 12:32:32 -0700 (PDT) X-Gm-Message-State: AOUpUlFx7SM63lhC/U0Ru2cMIN+Vf2c5cW2SHRkWkjiQNqWPsh3tvvxX hC0uZLYqncxiw0ruPCwI8jnh4RKh14Jm8qlwwgkfYQ== X-Received: by 2002:a1c:8b0d:: with SMTP id n13-v6mr2118907wmd.46.1532115150614; Fri, 20 Jul 2018 12:32:30 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a1c:d548:0:0:0:0:0 with HTTP; Fri, 20 Jul 2018 12:32:10 -0700 (PDT) In-Reply-To: <20180720174846.GF18541@8bytes.org> References: <1532103744-31902-1-git-send-email-joro@8bytes.org> <1532103744-31902-2-git-send-email-joro@8bytes.org> <20180720174846.GF18541@8bytes.org> From: Andy Lutomirski Date: Fri, 20 Jul 2018 12:32:10 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 1/3] perf/core: Make sure the ring-buffer is mapped in all page-tables To: Joerg Roedel Cc: Andy Lutomirski , Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , X86 ML , LKML , Linux-MM , Linus Torvalds , Dave Hansen , Josh Poimboeuf , Juergen Gross , Peter Zijlstra , Borislav Petkov , Jiri Kosina , Boris Ostrovsky , Brian Gerst , David Laight , Denys Vlasenko , Eduardo Valentin , Greg KH , Will Deacon , "Liguori, Anthony" , Daniel Gruss , Hugh Dickins , Kees Cook , Andrea Arcangeli , Waiman Long , Pavel Machek , "David H . Gutteridge" , Joerg Roedel , Arnaldo Carvalho de Melo , Alexander Shishkin , Jiri Olsa , Namhyung Kim Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 20, 2018 at 10:48 AM, Joerg Roedel wrote: > On Fri, Jul 20, 2018 at 10:06:54AM -0700, Andy Lutomirski wrote: >> > On Jul 20, 2018, at 6:22 AM, Joerg Roedel wrote: >> > >> > From: Joerg Roedel >> > >> > The ring-buffer is accessed in the NMI handler, so we better >> > avoid faulting on it. Sync the vmalloc range with all >> > page-tables in system to make sure everyone has it mapped. >> > >> > This fixes a WARN_ON_ONCE() that can be triggered with PTI >> > enabled on x86-32: >> > >> > WARNING: CPU: 4 PID: 0 at arch/x86/mm/fault.c:320 vmalloc_fault+0x220/0x230 >> > >> > This triggers because with PTI enabled on an PAE kernel the >> > PMDs are no longer shared between the page-tables, so the >> > vmalloc changes do not propagate automatically. >> >> It seems like it would be much more robust to fix the vmalloc_fault() >> code instead. > > The question is whether the NMI path is nesting-safe, then we can remove > the WARN_ON_ONCE(in_nmi()) in the vmalloc_fault path. It should be > nesting-safe on x86-32 because of the way the stack-switch happens > there. If its also nesting-safe on x86-64 the warning there can be > removed. > > Or did you think of something else to fix there? I'm just reading your changelog, and you said the PMDs are no longer shared between the page tables. So this presumably means that vmalloc_fault() no longer actually works correctly on PTI systems. I didn't read the code to figure out *why* it doesn't work, but throwing random vmalloc_sync_all() calls around is wrong. Or maybe the bug really just is the warning. The warning can probably go. > > > Thanks, > > Joerg >