From patchwork Mon Mar 20 04:31:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alison Schofield X-Patchwork-Id: 6873 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:604a:0:0:0:0:0 with SMTP id j10csp1012392wrt; Sun, 19 Mar 2023 21:32:42 -0700 (PDT) X-Google-Smtp-Source: AK7set/fNw4sjbaqmEhFU60i3vtoixguIRvmtkmc7ra5jiSZHk5t7iq2WDGA0ygH8oDQrQ1RDReT X-Received: by 2002:a05:6a20:a021:b0:cc:d44a:beb6 with SMTP id p33-20020a056a20a02100b000ccd44abeb6mr17416121pzj.5.1679286762455; Sun, 19 Mar 2023 21:32:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1679286762; cv=none; d=google.com; s=arc-20160816; b=LiAFdqAqIGVFZwl/SvCPTq6holtI6/9T8+glC9W73AngtUtiLLqKKCq8SzQqqHA1eH 02wbLzELOa77XZxNIou8SkC63Nqi3j4oy/Nw1zl0cciXyziRpl74Ap1i3R+2PW6m/Ceq Uvx/La2CVRQaqiZtHfntYP/XNMdcUkBDfiOQH69R0gwTJQzwTRsDqH9ip24KAu0S75z4 bxr/KpYy6oCN30zymxujZlIqkTEXhVh4zBGEBEk53S3AlNjTaqp8ZS1X4oBEZKvbbcYc lY5N9/LVeyeen+f5SIAjJiACCMdIAeR//9zOFtBvY1VODTmVTBVRFkHLu4szftSz/Ddp 02oQ== 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=s8dUpE1Becprht2dDoRCUwFqSkyIaM/KvqD530uS6G0=; b=CBH5Hd6Ma5qQF/AmIW44UvS8s5YB2wAjHIj9Fy9KBa9xdqK9zcgMPV5vCWEU5RCYfw ISonKqPFjq6syIZljNOqQq55LxcfxGqfduxNU/uieHsKJKvqYGeuoaR0Y3o4DU2kdh9j 5r+2MX9QP9fdQ2cw8RIBRLGCQnBJfYAyUtViInjU+NO5y2ZYH9nn/5mipqgxSIWZtV4L QJp0Q4IbYos82Xu/i9ZOVhLbvozJvfFRcxsyh4h3pnT2E+7/n+1m/2YOz+b9VQ0GUNbr B/SQIM7aG352YtqBCoVh9dUAgfLpR1Vg02ZXVKvFpBk6SZChnh/ZyuNrEXq0ZwlfCYQx plFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b="m/LpPXtc"; 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 fa6-20020a056a002d0600b005a908acf445si7770746pfb.101.2023.03.19.21.32.26; Sun, 19 Mar 2023 21:32:42 -0700 (PDT) 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="m/LpPXtc"; 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 S229771AbjCTEb6 (ORCPT + 99 others); Mon, 20 Mar 2023 00:31:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59494 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229460AbjCTEb4 (ORCPT ); Mon, 20 Mar 2023 00:31:56 -0400 Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 899241689C; Sun, 19 Mar 2023 21:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1679286715; x=1710822715; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=uXmcZSJVUqvEO9HcOc8C5r/Be3mOVMDA+Tjn5ckkFtI=; b=m/LpPXtcCiLcZeEBiCPgrCunmS3N3UtPrZq2OYrYTt/Sf+5ftQOdtvi3 M4f886AXH4go8K/qruzXnymRw2B2E59RFuSb/mf6AT5tQnbVjLeItz/4l pG7ZDGf2YoYMP1VvvhYxsLBNRomhguXP7pY/41rHEYWB5buJBO7eEFaGM nlpnWkAkLtJ7/Py+MAfqRTh4pBgoaF+bcnXyHWjfO+MXabq8AAnOqEhzm zWddYdPzIVGX3lBHMBB7s2KE3i/bBxSGb6ZQiAnTwyO0nAwYRQPD46R7F QPjM92GYxq50YRijYtsr0bnp7m3r5hNzHQrS90yqu7MTZam0TdpuA5Wqs Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10654"; a="337287503" X-IronPort-AV: E=Sophos;i="5.98,274,1673942400"; d="scan'208";a="337287503" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Mar 2023 21:31:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10654"; a="926823978" X-IronPort-AV: E=Sophos;i="5.98,274,1673942400"; d="scan'208";a="926823978" Received: from aschofie-mobl2.amr.corp.intel.com (HELO localhost) ([10.209.14.183]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Mar 2023 21:31:54 -0700 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 v9 0/6] CXL Poison List Retrieval & Tracing Date: Sun, 19 Mar 2023 21:31:45 -0700 Message-Id: X-Mailer: git-send-email 2.37.3 MIME-Version: 1.0 X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, 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?1760859796057650154?= X-GMAIL-MSGID: =?utf-8?q?1760859796057650154?= From: Alison Schofield Changes in v9: Patch 3: cxl/memdev: Add trigger_poison_list sysfs attribute - Make trigger_poison_list a driver attribute to protect against unbinds while poison is being read. (Dan) Patch 4: cxl/region: Provide region info to the cxl_poison trace event - Remove already held cxl_dpa_rwsem in cxl_get_poison_by_endpoint() (Ira) - Add hold of cxl_region_rwsem in cxl_get_poison_by_endpoint() - Move the 'remains' handling to memdev driver (Ira) Previously, after the region driver read poison for the last committed endpoint decoder, it also read poison for remaining unmapped resources. Add a context struct to pass the poison read state between memdev and region drivers, so that memdev driver can complete the poison read of unmapped resources. Patches 1,2,5,6: no changes. Link to v8: https://lore.kernel.org/linux-cxl/cover.1678468593.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: $ echo 1 > /sys/bus/cxl/devices/mem0/trigger_poison_list cxl_poison: memdev=mem0 host=cxl_mem.0 serial=0 region=region4 region_uuid=117b2cf4-b160-4090-9361-ba31b9649317 hpa=0xf0d0000000 dpa=0x40000000 length=0x40 source=Internal flags= overflow_time=0 [1]: https://www.computeexpresslink.org/download-the-specification Alison Schofield (6): 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: Provide region info to the cxl_poison trace event cxl/trace: Add an HPA to cxl_poison trace events tools/testing/cxl: Mock support for Get Poison List Documentation/ABI/testing/sysfs-bus-cxl | 14 +++ drivers/cxl/core/core.h | 11 +++ drivers/cxl/core/mbox.c | 74 ++++++++++++++++ drivers/cxl/core/memdev.c | 108 ++++++++++++++++++++++++ drivers/cxl/core/region.c | 63 ++++++++++++++ drivers/cxl/core/trace.c | 94 +++++++++++++++++++++ drivers/cxl/core/trace.h | 91 ++++++++++++++++++++ drivers/cxl/cxlmem.h | 72 +++++++++++++++- drivers/cxl/mem.c | 36 ++++++++ drivers/cxl/pci.c | 4 + tools/testing/cxl/test/mem.c | 42 +++++++++ 11 files changed, 608 insertions(+), 1 deletion(-) base-commit: e686c32590f40bffc45f105c04c836ffad3e531a