From patchwork Thu Dec 15 21:17:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alison Schofield X-Patchwork-Id: 3010 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp607134wrn; Thu, 15 Dec 2022 13:18:35 -0800 (PST) X-Google-Smtp-Source: AA0mqf5kaqMAoAhNjLcr4peDsdDC36RsLBVvjMf68AzjbEQvxbfNoHdznHJE7inJLlMGYfaJbLNx X-Received: by 2002:a17:902:aa87:b0:187:480d:f37a with SMTP id d7-20020a170902aa8700b00187480df37amr29755612plr.24.1671139114986; Thu, 15 Dec 2022 13:18:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671139114; cv=none; d=google.com; s=arc-20160816; b=q5UpUU5yPNRHjCFSXZ91b8QyqUEwG+vRBd7itMtdowmKuhSZZIEfUA72uaFrUNuQuy 4Afhmhq1+ber3MEgGHYPv+6/nZ0CfUopFKZWEYE1uvdG4QebvIbzFN//MFWAHTCFIYcN ebj986pxSQ+OfWtuP4/06vkUhOvRZM7jZsIzVTIXUNCEwHci9BHjTMc9qm33BOC+bb6h y5yMNeXHQILtyF1D02RR0fsEl0O9ApyO1uoMLu8ZHAz8LvJ8csAOaCD3hLPtOfiFk9Jm cVthaDpzsX3jgbl4ppbNLNDgPyLPvoqipREV95n7O6+l0syYX6Xbyhl33ZYNOAncGnz8 iBkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=jlU5BGfwjpe1naUcuEXNJSBQnoDUQ00Jd92p8S+7LFk=; b=bfEtJfIGetRdwqfC02A3/feM3zLa6+ykH9ONqzCi6DGe0wfyIOF6Zdu+wn/pawXqSA +QqURZ6TDKWxu0pVT75UoOI1bh4qHXbM2B7uA06JJsvOq14lnWUPJXaeqUM71nQq0s+D DKfHXBS+DOtGy3iR6DoxK2mwcE7HyS10Lonb/CBL6Hv4xGFE7vIyzH8DBwTcS5YSU0Wu wcysE7kE7nD2uoLDcDts2SLo2GliZ49BI1mjpv+LZT219MXh7wRfG1tyDCFPrZc5ZPCa UB734is7ndM3FlgsRQWTanBS1WBrICew9hyejn1fYYzfPQbaurAxx5AxPbtXxWOteEau Mo9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="HFui2O/U"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y9-20020a634949000000b0046f72960505si477157pgk.393.2022.12.15.13.18.21; Thu, 15 Dec 2022 13:18:34 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="HFui2O/U"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230009AbiLOVSF (ORCPT + 99 others); Thu, 15 Dec 2022 16:18:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55764 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229695AbiLOVSB (ORCPT ); Thu, 15 Dec 2022 16:18:01 -0500 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 31C4630F4A; Thu, 15 Dec 2022 13:17:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1671139079; x=1702675079; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=N6nCgppkHdC2791QKsGpKt/qkhp9jDpIuTReWa9daUI=; b=HFui2O/UGG/joWUXd63I+DF/XMW1ql2dW8rbsQW4RDLurHFVnry8+z6B 6OJW/AG9bA18riuhRjlov7pAOdSicBq0UZJsIja4L1myOlKgWDaKfLN7M w+wKy0xemec+Nhrh8P5fyxbItEwNri7YiSpl3P8FveZ0Qx9h8h3uPalxL 15rj+9LQVZmokjeFhNIowZMGklyMlkWA1xkAn/gx0VWB/tFbg+d3jAMjy l4BYdIK74m38h53A2HXRlPAggESRICxuGXcyS1ZixqOkNwz54aXlTXzV9 R2Z4ntTiBjI5yAXsHOQMmVBF4lO3Y6wTCdMoF564x7ZnHl2bPjfqLyOAs Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10562"; a="302230289" X-IronPort-AV: E=Sophos;i="5.96,248,1665471600"; d="scan'208";a="302230289" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2022 13:17:49 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10562"; a="649570074" X-IronPort-AV: E=Sophos;i="5.96,248,1665471600"; d="scan'208";a="649570074" Received: from aschofie-mobl2.amr.corp.intel.com (HELO localhost) ([10.209.55.178]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Dec 2022 13:17:49 -0800 From: alison.schofield@intel.com To: Dan Williams , Ira Weiny , Vishal Verma , Dave Jiang , Ben Widawsky , Steven Rostedt Cc: Alison Schofield , linux-cxl@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 0/5] CXL Poison List Retrieval & Tracing Date: Thu, 15 Dec 2022 13:17:42 -0800 Message-Id: X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752316368304498781?= X-GMAIL-MSGID: =?utf-8?q?1752316368304498781?= From: Alison Schofield Changes in v4: - Rebase on cxl/preview - Squash 2 mock patches into 1 mock patch - Apply Jonathan Reviewed-by tags on Patches 1,2,4,5 - Don't return an error on failure to read volatile range poison (Jonathan) - Use strong types in trace event arguments supplying dev_names (Dan) - Pass the media-error record structure to trace event. (Steve, Ira) - Re-order Patches 1 & 2 to make the change above work - Use a poison state struct to hold buffer, lock (and max_mer) (Dan) - Allocate the poison list payload buffer once (Dan) - Request poison length in multiples of 64 bytes per CXL Spec - Test for enabled when storing Identify commands max_mer - Use get_unaligned_le24() on poison max_mer (Jonathan) - Use decimal values for size (rsvd[20]) (Dan) - cxl_test: mock with a valid DPA address - s/includes/'consists of' (Jonathan) Link to v3: https://lore.kernel.org/linux-cxl/cover.1668115235.git.alison.schofield@intel.com/ Add support for retrieving device poison lists and store the returned error records as kernel trace events. The handling of the poison list is guided by the CXL 3.0 Specification Section 8.2.9.8.4.1. [1] Example, triggered by memdev: $ echo 1 > /sys/bus/cxl/devices/mem3/trigger_poison_list cxl_poison: memdev=mem3 pcidev=cxl_mem.3 region= region_uuid=00000000-0000-0000-0000-000000000000 dpa=0x0 length=0x40 source=Internal flags= overflow_time=0 Example, triggered by region: $ echo 1 > /sys/bus/cxl/devices/region5/trigger_poison_list cxl_poison: memdev=mem0 pcidev=cxl_mem.0 region=region5 region_uuid=bfcb7a29-890e-4a41-8236-fe22221fc75c dpa=0x0 length=0x40 source=Internal flags= overflow_time=0 cxl_poison: memdev=mem1 pcidev=cxl_mem.1 region=region5 region_uuid=bfcb7a29-890e-4a41-8236-fe22221fc75c dpa=0x0 length=0x40 source=Internal flags= overflow_time=0 [1]: https://www.computeexpresslink.org/download-the-specification Alison Schofield (5): cxl/mbox: Add GET_POISON_LIST mailbox command cxl/trace: Add TRACE support for CXL media-error records cxl/memdev: Add trigger_poison_list sysfs attribute cxl/region: Add trigger_poison_list sysfs attribute tools/testing/cxl: Mock support for Get Poison List Documentation/ABI/testing/sysfs-bus-cxl | 28 +++++++++ drivers/cxl/core/mbox.c | 79 +++++++++++++++++++++++ drivers/cxl/core/memdev.c | 45 ++++++++++++++ drivers/cxl/core/region.c | 33 ++++++++++ drivers/cxl/core/trace.h | 83 +++++++++++++++++++++++++ drivers/cxl/cxlmem.h | 69 +++++++++++++++++++- drivers/cxl/pci.c | 4 ++ tools/testing/cxl/test/mem.c | 42 +++++++++++++ 8 files changed, 382 insertions(+), 1 deletion(-) base-commit: a6591693d912a1cb88cc5a6d91a7b583481d3a84