Received: by 2002:ab2:620c:0:b0:1ef:ffd0:ce49 with SMTP id o12csp837111lqt; Tue, 19 Mar 2024 05:39:38 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCV5AeD0sPz3gFvCGWHCpufrLz4Eag+TARaYavQdRMa8l87W1aoaXg88+XKxICpBhfnDOhQ8Fh2Gglxn7XpPbLAYjf8QMdbmYBiEYdvjgQ== X-Google-Smtp-Source: AGHT+IGvxhfzDhX7kXK9h93JBRZ+gPGjofHEV+wcqQVr5cpJQb2nQapi7t21WsX9EdhMHj5cKq8H X-Received: by 2002:a17:90a:bc94:b0:29c:75b0:de87 with SMTP id x20-20020a17090abc9400b0029c75b0de87mr11902732pjr.4.1710851978689; Tue, 19 Mar 2024 05:39:38 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1710851978; cv=pass; d=google.com; s=arc-20160816; b=0BaxYMyhJXOpxhro7Tv5N8nMgkzKXCm6LdvpE0RGSxn9tgob7hFJePzKcGGCJITZyW RpJFj51mG8ONxDCxniY8usQ0lwcduCOMTkw9Ak5oeljq8l1ytU/lJ6plqNfj5PGVHPrj PmjobPPzIzeACPKxdLCftAHJ+dlyaql6st2uGv15q/5tkpR9n0nIhhONzqyE3ay3nOJr IQL08NAZF43Juzt8pPtCdSS5UUcfC8F8wEK7Wy8f2o8DPsHnP2kSLlQcIbuvOyNb0e3x piIqmdrGjlwgEI6SC/iRoguNG0Lif8Yw5eRQ38JnfK4dlAwqQI/JCXfFmGaBordvdb6n tZzA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=JB+hqT6GbC7x8e7B3kg2ZXAusMKqsBrFmJKSr64voZA=; fh=8jfwzgo7+38zOuDN+XpDeYdwu+SbHXY0eb1D14WzZWw=; b=GEw19z74mmVKbPJ+jU6SZuzkaIys66Ge8KoJ05WK2qCEXFh1QKNR4cKXCBMMEga/S9 nJGNUJfcAh8Mr4uApSl6qgRGoAWWKOW10QyGd4w4zYpVadH8xEReKM20I8dKZw/vhDt4 bAxUm0ic3U78ZESWzgY0U64e+s4GtzprP3cAjncWCNhUnVVGxkHsmoeP+/gFtV9MCa66 ftC+3Bx3ndM022m/N6F8yi8e3P85qUioCTBbuH/2Hm32vvb3pk8opKsuLsABp14DQ51h /7dQoLZSw54gEVucRgQOlkDywzo3nFfcAdWKRUh7xCHXtBogbPo/06UwcUH6+Glicw9E sPoA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=BAmbwwFH; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-107525-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-107525-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id cq22-20020a17090af99600b0029bbf5795e0si10184774pjb.31.2024.03.19.05.39.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Mar 2024 05:39:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-107525-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=BAmbwwFH; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-107525-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-107525-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 2450BB22A56 for ; Tue, 19 Mar 2024 12:39:36 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E156C5812E; Tue, 19 Mar 2024 12:39:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="BAmbwwFH" Received: from mail-oi1-f175.google.com (mail-oi1-f175.google.com [209.85.167.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A166818EAB for ; Tue, 19 Mar 2024 12:39:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710851967; cv=none; b=jdQ9o4/guxQyKikhFJNhs0NUbmz4SFg2pVkgT4ik7/VibRppJLFcv6v2H1FxpZ02oVZhIqRD2Ij7gbnlWNBOeflahRmXwxJYEBTNjuMrJu7vRbFAaTkG02zCZkfuvIUxmI0kDaxZywqtoVs7lAxTbXdgoN6XbqKzXxb1aZeHC7A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1710851967; c=relaxed/simple; bh=/IDzR9mNvqn3bvSm9E5ciFJnUziQVpyML6SIy7XyyP8=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=OEUgJTiBuWRIajQFl2fb7VIb5+oz/BjA7OXpQObxUOQSVFMn//i/ZYo4fNtDpufDHOOwtxry5T+9EIRvKhRKs+cAgboo4PcmLPYjlHCfJAL1Q+LmK5UdRyXITxxlZicpn99v265KU7IayETKI6A4HTht3YmNlaMGzqIc6gkY/lU= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=BAmbwwFH; arc=none smtp.client-ip=209.85.167.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Received: by mail-oi1-f175.google.com with SMTP id 5614622812f47-3bbc649c275so2737961b6e.0 for ; Tue, 19 Mar 2024 05:39:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1710851964; x=1711456764; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=JB+hqT6GbC7x8e7B3kg2ZXAusMKqsBrFmJKSr64voZA=; b=BAmbwwFHDpgpbsgZlWSdSPLsMDh70XSxupgGmfoZxJ4dAwhNXrV6isf3/c9Khjh56j GVerkPSgoCsdTCi9WiBCpj5114x2Qne/s29NiEnwMut+72Hc1YSLNVf+qwW6n+wbFHUy JlqClKbk7U5EnzPS/y/qAOrgvEPpBfVa0Yms8o3z3oShTB1W8WIlCizAadd6PpHHupX9 qUCj9kicZYUB6lyhCk2Cum1d0hAC7ahnJcfiIllrqFMcXOSTeac6iPNUfibIqjEOAOaQ 9jikrgEvKqblktKqkoWFxuiM6mcn7jxvDgHidE64K9Ixav3NmnyGXt/qJITO5IxMgPSi 3JcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710851964; x=1711456764; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JB+hqT6GbC7x8e7B3kg2ZXAusMKqsBrFmJKSr64voZA=; b=sxMjFoFhzX85OodS0Cbxru5oBJJQ0Mtz+zTZXtvzCzrHmYNWkFcvFpqdHIyLZvdQg4 41kOfxbBD3s778HtTk/k5wZ/XyIW/ERec7YcitsxVHXRJ/SLKjk7DbqbDzF2Kbj/7/K3 lvp2kPhcQRhe4V+bF6ArXWsBXMSMd1X8zk3ZJpbdBhGW9DWrnXRWnO9bE/jW6XkZb8uc pZKutKRMhvOPUffj4LowPMwrUf3EFCKpJDooEehtW4MlMUC43gonVEcjqmcC86PaCwO6 cMB6SifbsaJLcFhufZFENBwd8H/9oc4nW0qSwQLm+DjtGxQRYhy/xW5D/5G9Oz+45l+D C8cg== X-Forwarded-Encrypted: i=1; AJvYcCVobLlJvOR3hKxEkcV/KlHxVvofG5FXNW4kPXtS60cGLQE8XBgdnBIhilljTRlefyO7ykwkXTNbwgDoM06ygBstQhXRER1lf9+1yLKG X-Gm-Message-State: AOJu0Yw5y4eLvJd4dryTlu6LI0JAYm4y6oZRmSpUcl8xU7PhHCK+BA+E yYgIvwvk48nnM/1wsGOoAx9ohXRLpwtrcGr1lc/8e/6dsVIPzqL5VLdlm8aBHRdoUoYCm6dRWUi 1MIKtGIX7DflEGwhM3fCAWSNeR7MadTwSlLbO X-Received: by 2002:a05:6808:1284:b0:3c2:aaa4:a6f7 with SMTP id a4-20020a056808128400b003c2aaa4a6f7mr19008575oiw.24.1710851964392; Tue, 19 Mar 2024 05:39:24 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <3b7dbd88-0861-4638-b2d2-911c97a4cadf@I-love.SAKURA.ne.jp> <06c11112-db64-40ed-bb96-fa02b590a432@I-love.SAKURA.ne.jp> <9692c93d-1482-4750-a8fc-0ff060028675@I-love.SAKURA.ne.jp> In-Reply-To: From: Alexander Potapenko Date: Tue, 19 Mar 2024 13:38:45 +0100 Message-ID: Subject: Re: [PATCH v2] x86: disable non-instrumented version of copy_mc when KMSAN is enabled To: Linus Torvalds Cc: Tetsuo Handa , Marco Elver , Dmitry Vyukov , kasan-dev , LKML , "the arch/x86 maintainers" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Mar 7, 2024 at 1:09=E2=80=AFAM Linus Torvalds wrote: > > On Wed, 6 Mar 2024 at 14:08, Tetsuo Handa > wrote: > > > > Something like below one? > > I'd rather leave the regular fallbacks (to memcpy and copy_to_user()) > alone, and I'd just put the > > kmsan_memmove(dst, src, len - ret); > > etc in the places that currently just call the MC copy functions. (sorry for being late to the party) We should probably use here, as other tools (KASAN and KCSAN) do not instrument copy_mc_to_kernel() either, and might benefit from the same checks. Something along the lines of: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D static __always_inline void instrument_memcpy_before(const void *to, const void *from, unsigned long n) { kasan_check_write(to, n); kasan_check_read(from, n); kcsan_check_write(to, n); kcsan_check_read(from, n); } static __always_inline void instrument_memcpy_after(const void *to, const void *from, unsigned long n, unsigned long left) { kmsan_memcpy(to, n - left); } =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D (with kmsan_memcpy() working as Tetsuo described). We can also update copy_mc_fragile_handle_tail() and copy_mc_to_user() to call the instrumentation hooks. Let me send the patches.