Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2116397iof; Tue, 7 Jun 2022 20:16:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxNmv/e30wraXTgtMt926rWUPo1hpSEZqqeTL13MOzzabipuZ99gwDvnQRmXhWciR8tmb+F X-Received: by 2002:a17:90b:1d04:b0:1e8:64e2:38c6 with SMTP id on4-20020a17090b1d0400b001e864e238c6mr19882861pjb.238.1654658213006; Tue, 07 Jun 2022 20:16:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654658213; cv=none; d=google.com; s=arc-20160816; b=z4XQD3EAiTxgZi74h4ky/g0rawmpRSv1fzcq9anWnPHIbFcE7B7cWdl+bHq01rCmvz Wss1Iugxh+/GV1P+Flkap7AkCO7wPY2SY/4TfLRzHy52S7NS9ocQ+ukmmHFZx3NBd6S2 47FW38DEW5GtwRd4Bvg0dLbNV3cWH6GCcN/5Q9Ldj+kS036b86nX5VzybO055Tld0IHz PtXbNS26uUrTt8fIWFPcbzV/urTTF0b8OZw9ih2iJLz0OdB7T4Qth06UTtehL+0WiITR u2j8flexFs2Zl9k/Jm8jU5vdjwnYmbVry/XOQHYr4QA7akjII1gulF7G6FPyZTEFEbR1 Ov4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=v/8BxNY4L5ADHPpmQGSXRzB7SPC6+EEzqbFCLi4mdFM=; b=OfG2k6nhE6ytsGtWpUh3IwsAPD/VkyQX+8ORewbTPjlE4qXkTtFTuOCqB6fK/fbq1p lG/7Yh26o56Lxe5mDg3v01VFKXmmm/XnbiWeMz9tNfusmHTyh9nxBXtXI+Kvu+l2WPdu DK7NpBCCfeEImWpsl3hyAHuDvyPPrH6pN+F1CC5icEBSI4qT3y1k1uxCCqRMnqDuVMgV IQfgsgkM0GRhu8GwwNZbNCFWK/nVoqD1KI26uWgTa2DeILSD8MZ7+/G+XbSJJCHWuusf 7F8J28m1BzWZOc+7/3jlHY1HQ6cYmVSmbN0uLMhXHpr5cBLYrwyhdi5wSvdKe/qEBaNI 7new== ARC-Authentication-Results: i=1; mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id p3-20020a170902f08300b0015f1388045csi22669234pla.156.2022.06.07.20.16.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jun 2022 20:16:52 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: from out1.vger.email (out1.vger.email [IPv6:2620:137:e000::1:20]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id CDF4A3D8B96; Tue, 7 Jun 2022 19:23:37 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243483AbiFGMIV (ORCPT + 99 others); Tue, 7 Jun 2022 08:08:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51482 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243460AbiFGMIC (ORCPT ); Tue, 7 Jun 2022 08:08:02 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 7C1BC8B0AD for ; Tue, 7 Jun 2022 05:08:00 -0700 (PDT) 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 291411480; Tue, 7 Jun 2022 05:08:00 -0700 (PDT) Received: from [10.1.196.218] (eglon.cambridge.arm.com [10.1.196.218]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 8B48F3F73B; Tue, 7 Jun 2022 05:07:54 -0700 (PDT) Subject: Re: [PATCH v4 15/21] x86/resctrl: Abstract __rmid_read() To: Reinette Chatre , x86@kernel.org, linux-kernel@vger.kernel.org Cc: Fenghua Yu , Thomas Gleixner , Ingo Molnar , Borislav Petkov , H Peter Anvin , Babu Moger , shameerali.kolothum.thodi@huawei.com, D Scott Phillips OS , lcherian@marvell.com, bobo.shaobowang@huawei.com, tan.shaopeng@fujitsu.com, Jamie Iles , Cristian Marussi , Xin Hao , xingxin.hx@openanolis.org, baolin.wang@linux.alibaba.com References: <20220412124419.30689-1-james.morse@arm.com> <20220412124419.30689-16-james.morse@arm.com> <39264d40-265e-b41f-913f-c21325678735@intel.com> From: James Morse Message-ID: <63845ed3-f09e-43b2-5ded-394bbbd874c4@arm.com> Date: Tue, 7 Jun 2022 13:07:40 +0100 User-Agent: Mozilla/5.0 (X11; Linux aarch64; rv:78.0) Gecko/20100101 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <39264d40-265e-b41f-913f-c21325678735@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3.1 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 Hi Reinette, On 17/05/2022 22:23, Reinette Chatre wrote: > On 4/12/2022 5:44 AM, James Morse wrote: > >> @@ -180,14 +180,24 @@ static u64 __rmid_read(u32 rmid, enum resctrl_event_id eventid) >> * are error bits. >> */ >> wrmsr(MSR_IA32_QM_EVTSEL, eventid, rmid); >> - rdmsrl(MSR_IA32_QM_CTR, val); >> + rdmsrl(MSR_IA32_QM_CTR, msr_val); >> >> - return val; >> + if (msr_val & RMID_VAL_ERROR) >> + return -EIO; >> + if (msr_val & RMID_VAL_UNAVAIL) >> + return -EINVAL; >> + >> + *val = msr_val; >> + >> + return 0; >> } >> > > In above EIO is used to represent RMID_VAL_ERROR ... > >> @@ -343,7 +355,7 @@ static u64 __mon_event_count(u32 rmid, struct rmid_read *rr) >> * Code would never reach here because an invalid >> * event id would fail the __rmid_read. (I'll fix this comment) >> */ >> - return RMID_VAL_ERROR; >> + return -EINVAL; >> } >> >> if (rr->first) { > > I understand it can be seen as a symbolic change but could > RMID_VAL_ERROR consistently be associated with the same error? This one isn't really RMID_VAL_ERROR - it was never read from the hardware, this was an invalid argument supplied by the caller. You can only hit this if resctrl_arch_rmid_read() doesn't read RMID_VAL_ERROR from the hardware, because the hardware supports the event, but its an invalid argument as far as this code is concerned. I'd prefer to avoid EIO as the error was not reported from hardware - its only reachable if the hardware does support the event! Thanks, James