Received: by 2002:ac0:b08d:0:0:0:0:0 with SMTP id l13csp2018596imc; Fri, 22 Feb 2019 16:04:35 -0800 (PST) X-Google-Smtp-Source: AHgI3IYq3kQC5aSCKCYv2ra9JxlopkHF9+mjs/wTCKbS5dgFZhPipIRWYTMGT0Xr8W/8iTBL2Jgu X-Received: by 2002:a63:89c7:: with SMTP id v190mr2599210pgd.370.1550880275751; Fri, 22 Feb 2019 16:04:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550880275; cv=none; d=google.com; s=arc-20160816; b=Ul3GJDSxP1DXs1Oi3dgZBYqJivNwwXP6NViXJqTRYs11ozWbl1Cevh+k/vivo9t182 oGQbi+xFvA5n9CD47ohVgSQtWVT7rzGntnli8mGiCmuoRJ3p+hejM6lnmSjcomBU77YJ MbzHMbxlk6hIGXZ4riqMfKPSxcKV4nSHZIbvwmBdbJJNfm5XKEjBwpf32nwipW4WO8lL rqu3/8eXNffOeVuB3+I1RROQeNadbeeOu4iQSzHRLr/D45zXF3Rcw+4LUDZqcHwqvHcV qKNAKxWfPKMvc2S+rJCe3L0GFgXI9TS5s8YtMzb6/5T5SVtOdE+pEA9kU0DKYr5lGMve mkqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature; bh=PPKvJeHul2CIVflz1zoXBKQwuaRmtZB1Hx+W/mF2zpQ=; b=ohyRrG+YgEQmPmFhyJr4B2vx2JRLKIeqWAl2cv6TCFsdtQKUukyZbTxLCtmbnCwmQH bUG97yEBfDO07TLCWHTFXo2F22TC10Ql3+XMmlp3deC5xQwh9Y0r3HyAPECTuXqAiPUI jzS/OOsPqqqSoAPyJN9SMEkxuwgwrA6w4mj1iyaf66M+A3K+BcAXN+fCmlB2UdWmMXWN laxKsLEB+OM6oMnyGxpHIOl3ch2llpflJQt/1gdoGZJ353D5bgM7fLoPq8v/UHNThHNx Bo1wwQ2VVAX3qpdVPWUBuN6an7XSB2d/PC/3/iiSNJQDD6JqGORgWvzf9wDELml2kntS d3HA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=uK12fADw; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j1si2459210pff.42.2019.02.22.16.04.20; Fri, 22 Feb 2019 16:04:35 -0800 (PST) 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=@gmail.com header.s=20161025 header.b=uK12fADw; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727622AbfBWAEA (ORCPT + 99 others); Fri, 22 Feb 2019 19:04:00 -0500 Received: from mail-pg1-f196.google.com ([209.85.215.196]:36694 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727225AbfBWAEA (ORCPT ); Fri, 22 Feb 2019 19:04:00 -0500 Received: by mail-pg1-f196.google.com with SMTP id r124so1821071pgr.3; Fri, 22 Feb 2019 16:03:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=PPKvJeHul2CIVflz1zoXBKQwuaRmtZB1Hx+W/mF2zpQ=; b=uK12fADweZxkpB8M3noFAl6YpY+9+EsQTHnBpca7xSg48l+xvrzwZoJ1FgE3ytaWRF IGcTuON4FrPil6+x6z9/0Gt4IVvoO3RVu9fbRMC7AEadkVMbkQQJYFMXXdqD/I3SEQGX PmgdTLFq8vjlqpdKOpcCMjF7IxzsuI+A+coZ2KmV5MMJhp4OXd1yV32tGW8kCfMollL3 wYnxwHVJylZQxiIj23u22L3c+wCv3f8M9aCdGo5PecI+WwIp4W5111j4Od9gUIg0DVt7 /d2Kcw8C1GUNg+2tPvf83xkOhWSXSFimSLRutnfBVfJUb7fqXxeJFb7ltLKtGmGEC2jh uKtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=PPKvJeHul2CIVflz1zoXBKQwuaRmtZB1Hx+W/mF2zpQ=; b=BZAsxLEueAAzF2VQvsSRzMJUYRLS0bhsWqPX9TH1tnfcvL5BvUgbuVjAUdcWaF97nI FqwUZvxFXX9N588i4PV37Xqaszsth8vURHFcqLgl642r1UftW2e9qv8wGJuhV5GDlkp7 K0eXWDW742HLKBJFZ4Szj76WRW/ilIDAGAwTIK0rtxfhkihouNTIOi9FnqwI75M1x/sK A5Th8V9BrIMDCVoG549BbvIqjoI8CXJPDutg9wwa4QwSS831RvxSZK6VzZZSceh7o2se 5+KLK8KZSTm9+cn0zaEDqdztLkLzzCU/BrjOq5N7orjzkKXbwxrs0wc7rEjTnq+L5tqr nWNA== X-Gm-Message-State: AHQUAubZ7H+B6rksbNzs7BGtpn+Hl77/S6AkR/oE/TdGErP4zwaInLMS 1bIjntfluY0cxJ+kErReHPM= X-Received: by 2002:a63:cf02:: with SMTP id j2mr6521495pgg.113.1550880238931; Fri, 22 Feb 2019 16:03:58 -0800 (PST) Received: from ast-mbp.dhcp.thefacebook.com ([2620:10d:c090:200::4:1d52]) by smtp.gmail.com with ESMTPSA id n6sm3056089pgv.86.2019.02.22.16.03.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 22 Feb 2019 16:03:58 -0800 (PST) Date: Fri, 22 Feb 2019 16:03:56 -0800 From: Alexei Starovoitov To: Andy Lutomirski Cc: Jann Horn , Nadav Amit , Steven Rostedt , Linus Torvalds , Masami Hiramatsu , Linux List Kernel Mailing , Ingo Molnar , Andrew Morton , Changbin Du , Kees Cook , Daniel Borkmann , Network Development , "bpf@vger.kernel.org" , Rick Edgecombe , Dave Hansen , "Peter Zijlstra (Intel)" , Igor Stoppa Subject: Re: [PATCH 1/2 v2] kprobe: Do not use uaccess functions to access kernel memory that can fault Message-ID: <20190223000355.wpmku2gu6cg3dklh@ast-mbp.dhcp.thefacebook.com> References: <20190222143026.17d6f0f6@gandalf.local.home> <20190222193456.5vqppubzrcx5wsul@ast-mbp.dhcp.thefacebook.com> <9E670A9A-699C-4B65-962F-CE1AEFD72974@amacapital.net> <0ED6836E-3432-4E1C-BABC-BEA6BDD36287@vmware.com> <7701651F-F10E-4212-925E-1CB77C5D3E69@vmware.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20180223 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 22, 2019 at 03:59:30PM -0800, Andy Lutomirski wrote: > > > > A relatively simple approach might be to teach BPF not to run kprobe > > programs and such in contexts where current->mm isn't the active mm? > > Maybe using nmi_uaccess_okay(), or something like that? It looks like > > perf_callchain_user() also already uses that. Except that a lot of > > this code is x86-specific... > > This sounds like exactly the right solution. If you're running from > some unknown context (like NMI or tracing), then you should check > nmi_uaccess_okay(). I think we should just promote that to be a > non-arch-specific function (that returns true by default) and check it > the relevant bpf_probe_xyz() functions. > > Alexei, does that seem reasonable? yep. I think that should work.