Received: by 2002:ab2:1149:0:b0:1f3:1f8c:d0c6 with SMTP id z9csp1925966lqz; Tue, 2 Apr 2024 01:44:04 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCV8xQQ+DvbQAWdoVEQmxVHP9Q4kaNeerp5aswHP5dx4DGbnztJBtnAyrPUFOCpTtUH0acRotPdnTMyx1wPTMCfxttPB4oWeJqS3mAnS0w== X-Google-Smtp-Source: AGHT+IGL/0wiWJYrhWU44C8mZpwqbXf/ZVz6vkbggMWG9D30vUkzUmYKF0fPg/lX09SUQaaYSUYR X-Received: by 2002:a05:6358:418f:b0:183:b720:5cc2 with SMTP id w15-20020a056358418f00b00183b7205cc2mr4445348rwc.20.1712047444611; Tue, 02 Apr 2024 01:44:04 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1712047444; cv=pass; d=google.com; s=arc-20160816; b=jWko6AvYQago/ZHesIC8z9/cmBzGLvy3igUGYv+ZJ1UE+8yrFXMcbNBMNIC+mOogGd Le+tyAZCwoFQA09arWd+6/BIxIqbHrFA/J9pw3PgLZk7Pk74Y3WZVIr4mvKCk1keLF8c dOafZ0Sk6KkddwyLX0CX8K7b80oAPcZw186HTCj5GqzgJHD2mIunJjPUIDNWdHt4ayiI vvaTqoX+toH4fpgsVdkyzuXowgJEeM+UkzLygM/fHY3f29AhZuS9qUrnWi4Um/PMgZvA njEJMiyOhWvkMbb0nfyqUAmTqEGRo/TdwAKIw4gf1UXlIfyzBplFrbZkmPVRqILoNNjU K8pA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:date:message-id:dkim-signature; bh=1ao1EWfYPtfm1HGEz8PRLBvpnUq6uoeFW7iGA9WZBEg=; fh=HOJTCCTlp5KRKkpDuiKQVA9KY6KF5uO0iQ6mAMLX9F0=; b=ZPTV7zrfNuLoazEe9dR8iyMBc6jutX/pcZqrrWGnfsgEDwyUTBi4wihmykVOb9z5f2 JF/M7v65dG91UC5oB95VHsOZgYS8fCUx6aqfvmiySwoVqRC9fEej9kBpGmh8pQU4KWdH Qiz/Z9lNtrEky2YS60QnIw50HT9kE8Ixj+MnHabuKsDj62Gg7+PuHtICrJ686/BMjkcQ 045/uuJ6O0NuL9gMFtaE3+ZCxGTF+fXliNYXudIZcpMC4svr4Y9s4pGOMKy9hdFdRV3I /fBaNxs9mrCkKByko6B3TIWzlM61zALgJvyummbLwbb8G00qSeypJnaAu1mWPVVx0svu E1FA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=YyTDyppR; arc=pass (i=1 spf=pass spfdomain=rivosinc.com dkim=pass dkdomain=rivosinc-com.20230601.gappssmtp.com); spf=pass (google.com: domain of linux-kernel+bounces-127573-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-127573-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id y24-20020a637d18000000b005dc788f3767si11425258pgc.620.2024.04.02.01.44.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Apr 2024 01:44:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-127573-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@rivosinc-com.20230601.gappssmtp.com header.s=20230601 header.b=YyTDyppR; arc=pass (i=1 spf=pass spfdomain=rivosinc.com dkim=pass dkdomain=rivosinc-com.20230601.gappssmtp.com); spf=pass (google.com: domain of linux-kernel+bounces-127573-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-127573-linux.lists.archive=gmail.com@vger.kernel.org" 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 sy.mirrors.kernel.org (Postfix) with ESMTPS id 0A538B20F26 for ; Tue, 2 Apr 2024 08:44:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 5AD4F4E1D6; Tue, 2 Apr 2024 08:43:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="YyTDyppR" Received: from mail-oo1-f51.google.com (mail-oo1-f51.google.com [209.85.161.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D1F8E3FB14 for ; Tue, 2 Apr 2024 08:43:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.161.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712047429; cv=none; b=BXdlUzk+k+/aLkFP7x+jiT2re6aHKZ2Z9l6aHXJVkxa/Sf4ICQavnxn7FOjjTKPZMwWYCl1MIvRiRMsC7rRL4VDL6qLE4SD1hnrjMhM0/0KHF05h39X4YIRdmz6q/2pbUaYgFbAP/ISrap35tSMzqUoGxESdQ2ezx4CkRlTi0pQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712047429; c=relaxed/simple; bh=lRW7ZLuKa0j9IDi6x5isHllL3lXa/vVHzH/iCRWfhwo=; h=Message-ID:Date:MIME-Version:From:Subject:To:Cc:References: In-Reply-To:Content-Type; b=Q8uRnubfgmwnLMvlomc+fBdKFbDygAQTgolmKNEubn0fNO72YD4WONO2uYl3tvQd9vL3DGNPXxV/Dch+l/t8mtATtATD76shgnF9tO2p8MRNvx7ty2f8jSGdRmyx+XHcd4UL5NYYhabSXCaBNMQneGqhh8KYedvFntFwPbi1ZbI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=YyTDyppR; arc=none smtp.client-ip=209.85.161.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-oo1-f51.google.com with SMTP id 006d021491bc7-5a4a14c52fcso2759927eaf.1 for ; Tue, 02 Apr 2024 01:43:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1712047427; x=1712652227; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=1ao1EWfYPtfm1HGEz8PRLBvpnUq6uoeFW7iGA9WZBEg=; b=YyTDyppR4qwNmp/vq3UfwdAUVnSHc26a0CViq8kV+ZMkNovCtkYoF45SMF90pL5Rif 2WwyjCJrtH5NqXsDVwwtHv824+kFYfoGjtFN2a2T31UrDrfMt7nQcZPMsRDC8qae80sf GVXhCOqF2jZnA0pMr5lW5ncKOuGd8IjRVsBvWm/gfASIQkwLGRtmhF2AXmff59EYIX8V gp76Evar07s9n38RdltdgPuk9mNv0+5gQWUNpKcCWq+yZ5UfGC9PQg5gMxuqKBEUZxpE zP8mkEPkzl/b1xHuOU/UkDw0i7G/IkvpnIZujZW3aeiWPpv8y4CnOzCKmNSOWf7m6rTq f2Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712047427; x=1712652227; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:subject:from:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1ao1EWfYPtfm1HGEz8PRLBvpnUq6uoeFW7iGA9WZBEg=; b=fcH3I8mlqjj+P8MS0/vI0mCqKVDq7ftTIM0P+CurcXC6SlAl5UobRXbp1jmtNf/Aro M17bt5sXJJhCbzP3uaYIfO87gjFoR3fGWAYxMBXrUzbcTU/3gy1KHjAJG/cHi50DXPaQ /63Fu4MV1OQT6zWMGYt6zaRvRiHBuPuJwXireeT1hRckDjU0ZZDSZAZ5+2otQDMzIQfA G+aA/g7fNenRpXe1b4qUoo0czwM9ay6pp0xI0QmyxA3FETd2eYjrH7HaI2beIoY+hmPJ hAdvHLcqEBgArmeT2uunrgu1G85BaIuTfhekWylhxqv0zl0+fTolyYAG2CUsRswSyTJJ RVfg== X-Gm-Message-State: AOJu0YwbMqEsWXjXMF0/siiZSWSND2hemoh1Jbo1myDpPvY0GmuVJBxf FT7CtXsd8woACr7zQXVVLDPOIo8xPfCFUff7CW1da3wugF2XOW+gnIehFGi++JU= X-Received: by 2002:a05:6358:e484:b0:183:bd0c:d2c6 with SMTP id by4-20020a056358e48400b00183bd0cd2c6mr4187597rwb.11.1712047426879; Tue, 02 Apr 2024 01:43:46 -0700 (PDT) Received: from [172.16.0.34] (c-67-188-2-18.hsd1.ca.comcast.net. [67.188.2.18]) by smtp.gmail.com with ESMTPSA id e19-20020a63f553000000b005e485fbd455sm9184675pgk.45.2024.04.02.01.43.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 02 Apr 2024 01:43:46 -0700 (PDT) Message-ID: Date: Tue, 2 Apr 2024 01:43:45 -0700 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Atish Patra Subject: Re: [PATCH v4 12/15] KVM: riscv: selftests: Add SBI PMU extension definitions To: Andrew Jones Cc: linux-kernel@vger.kernel.org, Albert Ou , Alexandre Ghiti , Anup Patel , Atish Patra , Conor Dooley , Guo Ren , Icenowy Zheng , kvm-riscv@lists.infradead.org, kvm@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-riscv@lists.infradead.org, Mark Rutland , Palmer Dabbelt , Paolo Bonzini , Paul Walmsley , Shuah Khan , Will Deacon References: <20240229010130.1380926-1-atishp@rivosinc.com> <20240229010130.1380926-13-atishp@rivosinc.com> <20240302-698f4322ab7ba74fc3dba416@orel> X-Mozilla-News-Host: news://nntp.lore.kernel.org Content-Language: en-US In-Reply-To: <20240302-698f4322ab7ba74fc3dba416@orel> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 3/2/24 03:00, Andrew Jones wrote: > On Wed, Feb 28, 2024 at 05:01:27PM -0800, Atish Patra wrote: >> The SBI PMU extension definition is required for upcoming SBI PMU >> selftests. >> >> Signed-off-by: Atish Patra >> --- >> .../selftests/kvm/include/riscv/processor.h | 67 +++++++++++++++++++ >> 1 file changed, 67 insertions(+) >> >> diff --git a/tools/testing/selftests/kvm/include/riscv/processor.h b/tools/testing/selftests/kvm/include/riscv/processor.h >> index f75c381fa35a..a49a39c8e8d4 100644 >> --- a/tools/testing/selftests/kvm/include/riscv/processor.h >> +++ b/tools/testing/selftests/kvm/include/riscv/processor.h > > We should probably create a new header (include/riscv/sbi.h) since > otherwise processor.h is very quickly going to look like an SBI > header with a few non-sbi things in it. Can we add a patch prior to > this one that moves the SBI stuff we currently have in processor.h > out to an sbi.h? Or, we could start synchronizing a copy of > arch/riscv/include/asm/sbi.h in tools/arch/riscv/include/asm like > we've done for csr.h > A separate sbi.h makes sense. I have moved the definitions to sbi.h as of now. There is still lot more changes in sbi.h which is not required for selftests even after this patch. But I am okay with syncing with sbi.h But I am not sure what should be the synchronization policy for sbi.h. As needed or regular sync with after every release? The csr.h is already out of date even though it was created last MW (one change is part of this series). Let me know if you have any thoughts about that. I can send another version with that. >> @@ -169,17 +169,84 @@ void vm_install_exception_handler(struct kvm_vm *vm, int vector, exception_handl >> enum sbi_ext_id { >> SBI_EXT_BASE = 0x10, >> SBI_EXT_STA = 0x535441, >> + SBI_EXT_PMU = 0x504D55, >> }; >> >> enum sbi_ext_base_fid { >> SBI_EXT_BASE_PROBE_EXT = 3, >> }; >> >> +enum sbi_ext_pmu_fid { >> + SBI_EXT_PMU_NUM_COUNTERS = 0, >> + SBI_EXT_PMU_COUNTER_GET_INFO, >> + SBI_EXT_PMU_COUNTER_CFG_MATCH, >> + SBI_EXT_PMU_COUNTER_START, >> + SBI_EXT_PMU_COUNTER_STOP, >> + SBI_EXT_PMU_COUNTER_FW_READ, >> + SBI_EXT_PMU_COUNTER_FW_READ_HI, >> + SBI_EXT_PMU_SNAPSHOT_SET_SHMEM, >> +}; >> + >> +union sbi_pmu_ctr_info { >> + unsigned long value; >> + struct { >> + unsigned long csr:12; >> + unsigned long width:6; >> +#if __riscv_xlen == 32 >> + unsigned long reserved:13; >> +#else >> + unsigned long reserved:45; >> +#endif >> + unsigned long type:1; >> + }; >> +}; >> + >> struct sbiret { >> long error; >> long value; >> }; >> >> +/** General pmu event codes specified in SBI PMU extension */ >> +enum sbi_pmu_hw_generic_events_t { >> + SBI_PMU_HW_NO_EVENT = 0, >> + SBI_PMU_HW_CPU_CYCLES = 1, >> + SBI_PMU_HW_INSTRUCTIONS = 2, >> + SBI_PMU_HW_CACHE_REFERENCES = 3, >> + SBI_PMU_HW_CACHE_MISSES = 4, >> + SBI_PMU_HW_BRANCH_INSTRUCTIONS = 5, >> + SBI_PMU_HW_BRANCH_MISSES = 6, >> + SBI_PMU_HW_BUS_CYCLES = 7, >> + SBI_PMU_HW_STALLED_CYCLES_FRONTEND = 8, >> + SBI_PMU_HW_STALLED_CYCLES_BACKEND = 9, >> + SBI_PMU_HW_REF_CPU_CYCLES = 10, >> + >> + SBI_PMU_HW_GENERAL_MAX, >> +}; >> + >> +/* SBI PMU counter types */ >> +enum sbi_pmu_ctr_type { >> + SBI_PMU_CTR_TYPE_HW = 0x0, >> + SBI_PMU_CTR_TYPE_FW, >> +}; >> + >> +/* Flags defined for config matching function */ >> +#define SBI_PMU_CFG_FLAG_SKIP_MATCH (1 << 0) >> +#define SBI_PMU_CFG_FLAG_CLEAR_VALUE (1 << 1) >> +#define SBI_PMU_CFG_FLAG_AUTO_START (1 << 2) >> +#define SBI_PMU_CFG_FLAG_SET_VUINH (1 << 3) >> +#define SBI_PMU_CFG_FLAG_SET_VSINH (1 << 4) >> +#define SBI_PMU_CFG_FLAG_SET_UINH (1 << 5) >> +#define SBI_PMU_CFG_FLAG_SET_SINH (1 << 6) >> +#define SBI_PMU_CFG_FLAG_SET_MINH (1 << 7) >> + >> +/* Flags defined for counter start function */ >> +#define SBI_PMU_START_FLAG_SET_INIT_VALUE (1 << 0) >> +#define SBI_PMU_START_FLAG_INIT_FROM_SNAPSHOT BIT(1) >> + >> +/* Flags defined for counter stop function */ >> +#define SBI_PMU_STOP_FLAG_RESET (1 << 0) >> +#define SBI_PMU_STOP_FLAG_TAKE_SNAPSHOT BIT(1) > > When changing shifts to BIT()'s, don't forget these (easy not to forget > if we go with the synch sbi.h to tools approach) > >> + >> struct sbiret sbi_ecall(int ext, int fid, unsigned long arg0, >> unsigned long arg1, unsigned long arg2, >> unsigned long arg3, unsigned long arg4, >> -- >> 2.34.1 >> > > Thanks, > drew