Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp3951093ybz; Mon, 20 Apr 2020 12:30:51 -0700 (PDT) X-Google-Smtp-Source: APiQypJTfHtj8ZVoeJFlZClcjajPUjktAqjuppiSFCgZxfS5Xq3lWxkbi2rDHLfbpCdl2JiEqiNn X-Received: by 2002:a17:906:1393:: with SMTP id f19mr15996862ejc.26.1587411051214; Mon, 20 Apr 2020 12:30:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587411051; cv=none; d=google.com; s=arc-20160816; b=LirSgHUwD3IAofJbxsTPbqgqyImpSFEFTBJ9YCxks5ra28bsCV1bc2iHIje64b9mLL 4bEaL43BojksY4oj4yfnYiger11rKIfxzppIAUhPo+hbCvvybGBx5cTFi/sNpWZ2iphu sW6rAFSdAroVeweQmrT/+lAynW/xq+axrO5c8K41PYOrxoLODM5OzPWQk0cKL+xZdJcG UvF1MyoIThESisEXJPc6mk3Bgqb/AHGUNe5RQZ93zQtmJeZ+jEadzxpCX31McG/gdVRa no9StOdcjdh5sn48h3a8gJI2WuHudAKJtGeaVisF0mSj95OpXdq3F/azRws0OEC78vLL eW6w== 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 :in-reply-to:references:mime-version:dkim-signature; bh=Ce20/CIQIX522RaPVTyPTfJEPqiyAriKhvUnxTulqdM=; b=OsNf2amRtj+h/l2NA1vwkauPD7qWYQmfUr0NlUy1eyKIXx+nk0YQwe/RNGX2uHRxg3 1Epgmj0hTVCaGkck+QsV3B7QVqkZeWavQq6hY5st3O2E44vh6HJzr73dvKTT/SkddwNJ Rf23uUvmQpWeBPgSVe2esa1gA1dsHa5CiBdSfJAUBUJB06flCByTSoleRqRLIBjYNiuU OxNJm7d4zVwLnVXDAdv2HbtqJcpEQz7nFim79nubmvQbZb6JHXsRmarytS/64h+yD+yb LIue4DVim4fHMzW4530jbHLCCoqsQ1AXYq9QncnB5+EMv/ZDP0Lk8mvN8pTaJ1ulAdp2 78qQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b="Ew/qZu4s"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d2si239970edq.421.2020.04.20.12.30.27; Mon, 20 Apr 2020 12:30:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@intel-com.20150623.gappssmtp.com header.s=20150623 header.b="Ew/qZu4s"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726688AbgDTT30 (ORCPT + 99 others); Mon, 20 Apr 2020 15:29:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40776 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726189AbgDTT3Z (ORCPT ); Mon, 20 Apr 2020 15:29:25 -0400 Received: from mail-ej1-x641.google.com (mail-ej1-x641.google.com [IPv6:2a00:1450:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63CE1C061A0F for ; Mon, 20 Apr 2020 12:29:25 -0700 (PDT) Received: by mail-ej1-x641.google.com with SMTP id n4so8904924ejs.11 for ; Mon, 20 Apr 2020 12:29:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Ce20/CIQIX522RaPVTyPTfJEPqiyAriKhvUnxTulqdM=; b=Ew/qZu4sDhUqxZ/TYFqRH0ERtCxbKG4Z8viu2sPjWVDAgBWlvcnLRlRx5rwXTM/Oah mIYHqq0r+8iblP15rxoSx33CEyZunyDuuLZACk8dgur1ueNplknlYmcAylmjCtPf23DA W9fH6ydZ1sJNeXLG+uo/C5iF+Bx7zwA18kCdy3xNxw5iz8+YxTIHSDrMrmLspd9T1TpP ntKFG8X9R+1/qJUVjBuCLfLmn2FSJJekaPBY9XT3Vh9StB1/hFnewJwuLeKxA0WHVKuW mtpVxRXs6eZYVS5FIIcDdh1u3GSNKMaWuB1GMxDd8IXaXWIKV6KMRQ2rSrylkdDm8eYG MzqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Ce20/CIQIX522RaPVTyPTfJEPqiyAriKhvUnxTulqdM=; b=njpUjEK7VR7oCVJ8dTjJKvOQdDLn9uZWf3fDVMcvo5vHAMQAC3b65wsEaRxFL33Wmn I3vyXHzZ6scMlB5tDIXTieN37KaCKCr75ajuDaHW00Eg7IzIfrKri7HkCE5K6onXsNRd u1+NA6v4zvHT52M5kFGg/sUgNE0vUMnk75Rr+PiORcc7ohU/KPBI9PX1ciLl1OqWlxbd ZAG2B2EWD395vVGqBma1ln0v88msG0CbAUCHIO8cotZ4zAr80S0VJJzMSoscO/xb51CO SmwWem4mZC82XuWh/HdXOV9Bpq8+ZxUy68Y9irqj6lLiW7vePTs9qf8ABOOdzXi7zC2w ia5Q== X-Gm-Message-State: AGi0PuYwyf6m/z2lDnevkwoisPaCryyTz690ReqEvVN0idOYH84NqUwI asUh54oRu1Q9XyJxBliQMNVuuhRRrA8goqEn0/y9/g== X-Received: by 2002:a17:906:6d8e:: with SMTP id h14mr17131940ejt.123.1587410964104; Mon, 20 Apr 2020 12:29:24 -0700 (PDT) MIME-Version: 1.0 References: <67FF611B-D10E-4BAF-92EE-684C83C9107E@amacapital.net> In-Reply-To: From: Dan Williams Date: Mon, 20 Apr 2020 12:29:12 -0700 Message-ID: Subject: Re: [PATCH] x86/memcpy: Introduce memcpy_mcsafe_fast To: Linus Torvalds Cc: Andy Lutomirski , Thomas Gleixner , Ingo Molnar , X86 ML , stable , Borislav Petkov , "H. Peter Anvin" , Peter Zijlstra , Tony Luck , Erwin Tsaur , Linux Kernel Mailing List , linux-nvdimm 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 Mon, Apr 20, 2020 at 12:13 PM Linus Torvalds wrote: > On Mon, Apr 20, 2020 at 11:20 AM Dan Williams wrote: [..] > I really really detest the whole mcsafe garbage. And I absolutely > *ABHOR* how nobody inside of Intel has apparently ever questioned the > brokenness at a really fundamental level. > > That "I throw my hands in the air and just give up" thing is a > disease. It's absolutely not "what else could we do". So I grew up in the early part of my career validating ARM CPUs where a data-abort was either precise or imprecise and the precise error could be handled like a page fault as you know which instruction faulted and how to restart the thread. So I didn't take x86 CPU designers' word for it, I honestly thought that "hmm the x86 machine check thingy looks like it's trying to implement precise vs imprecise data-aborts, and precise / synchronous is maybe a good thing because it's akin to a page fault". I didn't consider asynchronous to be better because that means there is a gap between when the data corruption is detected and when it might escape the system that some external agent could trust the result and start acting on before the asynchronous signal is delivered.