Received: by 2002:a05:6500:1b45:b0:1f5:f2ab:c469 with SMTP id cz5csp674349lqb; Wed, 17 Apr 2024 07:47:50 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCU/+/dZR3W44l1lO2kB5rdGUetP486S6dp2vORVdhIXq9yaWBmW1MIJZfhU3NJL14Jy/luP0SZ2bThzKId54ppMW1vM2P9k4eMOXKY9Gg== X-Google-Smtp-Source: AGHT+IEcDvk9WoBQyrIZ05LpEdD5BBgt62yntMMVcBeyLE3ILOotVLNbcnw47fXNIVO88RgW1c60 X-Received: by 2002:a05:6a00:179a:b0:6ec:fdfe:9bde with SMTP id s26-20020a056a00179a00b006ecfdfe9bdemr17652204pfg.25.1713365270359; Wed, 17 Apr 2024 07:47:50 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1713365270; cv=pass; d=google.com; s=arc-20160816; b=gC+bK3v9QThUYkBXPCorL3/YvZEwhdwuMvA5e06gU1Ac0LvlFJU7YcuX5/sFhMj56a 15KEHIftXrJzAoh9S2Jzb8Qk9DiD+ucrz7IrfMWlUWKp69yXqxPQjz4+jXMvxM04MWor g/ylvLydrWRksHzLEkknjjqp7AS654lhpd+lCZ6E1rWkGoafW3JOleIMpnuf4o6WFAuN SnLueNWKVfWz+Vv8GQ6Mi0yw01klj61HZBUMYgd/f4OkkDwnuLkcm5rtiPQKe4qBTXtx Nsn5R52oyoS0fEW7zddE9+k51+eG3OoYquU3zYW9AC5BPiznmHV3dogl8XtEJqT/IhQx /q+w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=in-reply-to:content-disposition:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:message-id:subject:cc :to:from:date; bh=acK/TCqRhqwaLuTQx1Jz132Hmrl3kTuGu2WN1RMsHZc=; fh=QpfXcl1MWRNwK/PrSFDaf8vyLNOqSjtq+qtJ/l97qlo=; b=FV0kiJN/2dtpRMpBDfg4oFP+DDaWlkdXHmWbNKaaQYuz2O85/vt6uQC7r3GWdgTpXt PUnqpndvpTabfEldlugrSVSvu0VlLFPvAEFRyfVS2SiM8MQA3S9cfHDoBsyp27dXqZLS L8xo7Q1ads1/ON4Gmg3t3pCOY7zUegCrUmyzWPOJsr+qykfkM0/hRHmPHgvTavZs/LlH KXXUXukuRwHwixujx6lVBBJtfvfJ6Q8To82ECGXmVcc4dUbSHTPisYvnn+le8BnMIFe4 jl8dT7AkBKmpOmBD1HsyRC2nPvE0sb5tppCHJzcAfiwN8DuePkVoLgN2JQVGHRgTVTsE Ex3Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=arm.com dmarc=pass fromdomain=arm.com); spf=pass (google.com: domain of linux-kernel+bounces-148708-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-148708-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id 138-20020a630090000000b005e838b889absi11703180pga.804.2024.04.17.07.47.49 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Apr 2024 07:47:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-148708-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=arm.com dmarc=pass fromdomain=arm.com); spf=pass (google.com: domain of linux-kernel+bounces-148708-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-148708-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.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 sv.mirrors.kernel.org (Postfix) with ESMTPS id 9A7F0284268 for ; Wed, 17 Apr 2024 14:47:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id BC45E148849; Wed, 17 Apr 2024 14:42:22 +0000 (UTC) Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B7359148FF0 for ; Wed, 17 Apr 2024 14:42:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713364942; cv=none; b=JeOHXh1kkY7hyyBpS1DBUVpr84SRlZwW4p4HWKoqgRCnMhqYnIpn9uF9CsBRkoMEyYeSRoBHWD6VvlHrOEpsrgrQ+uo34nOdxiEWbXRvamxsZtmM64zDG3ew+m1DkJr5PXfjCcWJVhQfn6B5j3YAM1iA/4kFR97yA9n9XZZtTIk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713364942; c=relaxed/simple; bh=Hv4IiBP0Sd0WmmvD5cH6NzbFEwSZ23iqzEYlWhEwTic=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=AtvVSOK5BbsnFfRdUv/+M01v/oN9/9VLcZrDEc+dnGV9YiMVmFyf7ihvt0a4xP9dq+U2+JaGUou7xalnMMN3PJeHNCp9sPqOgQ6GzfOr/kdbP4A0LxlyeHZax3cY1TkWxhs/yDCTNW3Vfpc3IWwGaxj0rTUpm0sr5X1c8Wty7xM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8A0142F; Wed, 17 Apr 2024 07:42:47 -0700 (PDT) Received: from e133380.arm.com (e133380.arm.com [10.1.197.52]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6AD7F3F738; Wed, 17 Apr 2024 07:42:16 -0700 (PDT) Date: Wed, 17 Apr 2024 15:42:13 +0100 From: Dave Martin To: Reinette Chatre Cc: James Morse , x86@kernel.org, linux-kernel@vger.kernel.org, Fenghua Yu , Thomas Gleixner , Ingo Molnar , Borislav Petkov , H Peter Anvin , Babu Moger , shameerali.kolothum.thodi@huawei.com, D Scott Phillips OS , carl@os.amperecomputing.com, lcherian@marvell.com, bobo.shaobowang@huawei.com, tan.shaopeng@fujitsu.com, baolin.wang@linux.alibaba.com, Jamie Iles , Xin Hao , peternewman@google.com, dfustini@baylibre.com, amitsinght@marvell.com, David Hildenbrand , Rex Nie Subject: Re: [PATCH v1 18/31] x86/resctrl: Allow resctrl_arch_mon_event_config_write() to return an error Message-ID: References: <20240321165106.31602-1-james.morse@arm.com> <20240321165106.31602-19-james.morse@arm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Hi Rainette, On Thu, Apr 11, 2024 at 10:39:37AM -0700, Reinette Chatre wrote: > Hi Dave, > > On 4/11/2024 7:17 AM, Dave Martin wrote: > > On Mon, Apr 08, 2024 at 08:23:36PM -0700, Reinette Chatre wrote: > >> Hi James, > >> > >> On 3/21/2024 9:50 AM, James Morse wrote: > >>> resctrl_arch_mon_event_config_write() writes a bitmap of events provided > >>> by user-space into the configuration register for the monitors. > >>> > >>> This assumes that all architectures support all the features each bit > >>> corresponds to. > >>> > >>> MPAM can filter monitors based on read, write, or both, but there are > >>> many more options in the existing bitmap. To allow this interface to > >>> work for machines with MPAM, allow the architecture helper to return > >>> an error if an incompatible bitmap is set. > >>> > >>> When valid values are provided, there is no change in behaviour. If > >>> an invalid value is provided, currently it is silently ignored, but > >>> last_cmd_status is updated. After this change, the parser will stop > >>> at the first invalid value and return an error to user-space. This > >>> matches the way changes to the schemata file are made. > >>> > >> > >> Is this needed? With move of mbm_cfg_mask to rdt_resource I expect > >> MPAM would use it to set what the valid values are. With that done, > >> when user space provides a value, mon_config_write() compares user > >> provided value against mbm_cfg_mask and will already return early > >> (before attempting to write to hardware) with error > >> if value is not supported. This seems to accomplish the goal of this > >> patch? > > > > This sounds plausible. > > > > In a recent snapshot of James' MPAM code, it looks like we could be > > initialising rdt_resource::mbm_cfg_mask when setting up the rdt_resource > > struct for resctrl, though in fact this information is captured > > differently right now. I'm sure why (though James may have a > > reason). [1] > > > > I don't see an obvious reason though why we couldn't set mbm_cfg_mask > > and detect bad config values globally in mon_config_write(), the same as > > for the existing AMD BMEC case. > > > > Nothing in the MPAM architecture stops hardware vendors from randomly > > implementing different capabilities in different components of the > > system, but provided that we only expose the globally supported subset > > of event filtering capabilities to resctrl this approach looks workable. > > This consistent with the James' MPAM code deals with other feature > > mismatches across the system today. > > > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/morse/linux.git/tree/drivers/platform/mpam/mpam_resctrl.c?h=mpam/snapshot/v6.7-rc2#n730 > > My response was based on what I understood from the goal of this change > as described by the changelog. The patch does not appear to match with > the goals stated in changelog. > > As I understand the patch it aims to detect when there is an invalid > event id. It is not possible for this scenario to occur because this code > is always called with a valid event id. > > Reinette I guess this will need discussion with James. FWIW, my impression was that the real goal of this patch was to allow a bad event config to be detected at cross-call time and reported asynchronously. Changes elsewhere look to be there just to make error reporting consistent for other existing paths too. Either way, I agree that we really ought be be able to detect and report "bad event config" errors synchronously, unless I'm missing something. I'll discuss with James whether we should be dropping this patch. (For MPAM, I suppose some componets grouped as a single resctrl resource could support event configuration and some not, but I'd hope that we can just not expose event configurability to resctrl at all in that case. A sane system design should not be affected.) Cheers ---Dave > > > > >