From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Jones Date: Thu, 4 Apr 2024 14:16:01 +0200 Subject: [PATCH v4 07/15] RISC-V: KVM: No need to exit to the user space if perf event failed In-Reply-To: References: <20240229010130.1380926-1-atishp@rivosinc.com> <20240229010130.1380926-8-atishp@rivosinc.com> <20240302-1a3c0df25f2422e1e6abecf3@orel> Message-ID: <20240404-ea40bc0237635d671e64fef6@orel> List-Id: To: kvm-riscv@lists.infradead.org MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On Mon, Apr 01, 2024 at 03:37:01PM -0700, Atish Patra wrote: > On Sat, Mar 2, 2024 at 12:16?AM Andrew Jones wrote: > > > > On Wed, Feb 28, 2024 at 05:01:22PM -0800, Atish Patra wrote: > > > Currently, we return a linux error code if creating a perf event failed > > > in kvm. That shouldn't be necessary as guest can continue to operate > > > without perf profiling or profiling with firmware counters. > > > > > > Return appropriate SBI error code to indicate that PMU configuration > > > failed. An error message in kvm already describes the reason for failure. > > > > I don't know enough about the perf subsystem to know if there may be > > a concern that resources are temporarily unavailable. If so, then this > > Do you mean the hardware resources unavailable because the host is using it ? Yes (I think). The issue I'm thinking of is if kvm_pmu_create_perf_event (perf_event_create_kernel_counter) returns something like EBUSY and then we translate that to SBI_ERR_NOT_SUPPORTED. I'm not sure guests would interpret not-supported as an error which means they can retry. Or if they retry and get something other than not-supported if they'd be confused. Thanks, drew > > > patch would make it possible for a guest to do the exact same thing, > > but sometimes succeed and sometimes get SBI_ERR_NOT_SUPPORTED. > > sbi_pmu_counter_config_matching doesn't currently have any error types > > specified that say "unsupported at the moment, maybe try again", which > > would be more appropriate in that case. I do see > > perf_event_create_kernel_counter() can return ENOMEM when memory isn't > > available, but if the kernel isn't able to allocate a small amount of > > memory, then we're in bigger trouble anyway, so the concern would be > > if there are perf resource pools which may temporarily be exhausted at > > the time the guest makes this request. > > > > For other cases, this patch ensures that guests continue to run without failure > which allows the user in the guest to try again if this fails due to a temporary > resource availability. > > > One comment below. > > > > > > > > Fixes: 0cb74b65d2e5 ("RISC-V: KVM: Implement perf support without sampling") > > > Reviewed-by: Anup Patel > > > Signed-off-by: Atish Patra > > > --- > > > arch/riscv/kvm/vcpu_pmu.c | 14 +++++++++----- > > > arch/riscv/kvm/vcpu_sbi_pmu.c | 6 +++--- > > > 2 files changed, 12 insertions(+), 8 deletions(-) > > > > > > diff --git a/arch/riscv/kvm/vcpu_pmu.c b/arch/riscv/kvm/vcpu_pmu.c > > > index b1574c043f77..29bf4ca798cb 100644 > > > --- a/arch/riscv/kvm/vcpu_pmu.c > > > +++ b/arch/riscv/kvm/vcpu_pmu.c > > > @@ -229,8 +229,9 @@ static int kvm_pmu_validate_counter_mask(struct kvm_pmu *kvpmu, unsigned long ct > > > return 0; > > > } > > > > > > -static int kvm_pmu_create_perf_event(struct kvm_pmc *pmc, struct perf_event_attr *attr, > > > - unsigned long flags, unsigned long eidx, unsigned long evtdata) > > > +static long kvm_pmu_create_perf_event(struct kvm_pmc *pmc, struct perf_event_attr *attr, > > > + unsigned long flags, unsigned long eidx, > > > + unsigned long evtdata) > > > { > > > struct perf_event *event; > > > > > > @@ -454,7 +455,8 @@ int kvm_riscv_vcpu_pmu_ctr_cfg_match(struct kvm_vcpu *vcpu, unsigned long ctr_ba > > > unsigned long eidx, u64 evtdata, > > > struct kvm_vcpu_sbi_return *retdata) > > > { > > > - int ctr_idx, ret, sbiret = 0; > > > + int ctr_idx, sbiret = 0; > > > + long ret; > > > bool is_fevent; > > > unsigned long event_code; > > > u32 etype = kvm_pmu_get_perf_event_type(eidx); > > > @@ -513,8 +515,10 @@ int kvm_riscv_vcpu_pmu_ctr_cfg_match(struct kvm_vcpu *vcpu, unsigned long ctr_ba > > > kvpmu->fw_event[event_code].started = true; > > > } else { > > > ret = kvm_pmu_create_perf_event(pmc, &attr, flags, eidx, evtdata); > > > - if (ret) > > > - return ret; > > > + if (ret) { > > > + sbiret = SBI_ERR_NOT_SUPPORTED; > > > + goto out; > > > + } > > > } > > > > > > set_bit(ctr_idx, kvpmu->pmc_in_use); > > > diff --git a/arch/riscv/kvm/vcpu_sbi_pmu.c b/arch/riscv/kvm/vcpu_sbi_pmu.c > > > index 7eca72df2cbd..b70179e9e875 100644 > > > --- a/arch/riscv/kvm/vcpu_sbi_pmu.c > > > +++ b/arch/riscv/kvm/vcpu_sbi_pmu.c > > > @@ -42,9 +42,9 @@ static int kvm_sbi_ext_pmu_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, > > > #endif > > > /* > > > * This can fail if perf core framework fails to create an event. > > > - * Forward the error to userspace because it's an error which > > > - * happened within the host kernel. The other option would be > > > - * to convert to an SBI error and forward to the guest. > > > + * No need to forward the error to userspace and exit the guest > > > > Period after guest > > > > > > > + * operation can continue without profiling. Forward the > > > > The operation > > > > Fixed the above two. > > > > > + * appropriate SBI error to the guest. > > > */ > > > ret = kvm_riscv_vcpu_pmu_ctr_cfg_match(vcpu, cp->a0, cp->a1, > > > cp->a2, cp->a3, temp, retdata); > > > -- > > > 2.34.1 > > > > > > > Thanks, > > drew > > > > -- > Regards, > Atish From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) (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 5F85312880D for ; Thu, 4 Apr 2024 12:16:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712232968; cv=none; b=h7hQG/1slkNRMKbIi1zgh4DOBtCUoXmSFXIm6+lFORO2GFMHLHAwgkuxFrvaguNH+z7PS+wT/6SqmUr9aV58Q9ezn0wQMRQLDgxLs1LxJucjh61RC6O0YzifACmH6k/G/LcAogUlNkBDMruZkIav130VTn7TOJgleNySQkq7VQk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1712232968; c=relaxed/simple; bh=DwqQItygo6fFyn6PFhYMmTLsFq02mcoKOLnfPOt+Jp8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=nHhxZ7JMRxtTcYZxS1bKeygdJmEqoMansy7SjJDj/jDPw5dtVpIy+WV+5uUQo31jeAWmHaTtwTOmt+u5zmCZ0tyCmavNZPTtpL6V/za+sBXOetclJ0+dFBuc5HhFrsoib4lo6l+ieq/QHfSMqsjqZjurmE3xqv1pGzv7QBdwA1s= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com; spf=pass smtp.mailfrom=ventanamicro.com; dkim=pass (2048-bit key) header.d=ventanamicro.com header.i=@ventanamicro.com header.b=gr+5vDa+; arc=none smtp.client-ip=209.85.208.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=ventanamicro.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ventanamicro.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ventanamicro.com header.i=@ventanamicro.com header.b="gr+5vDa+" Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-2d83dddcd65so11576131fa.1 for ; Thu, 04 Apr 2024 05:16:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1712232963; x=1712837763; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=M7CUkDVzN7ZtwbkfqhOOiERTsuLZVsBjpzU4ddI5VKM=; b=gr+5vDa+R3fqRiHDKuViRiKyRJSsYWwJbEX5CUsYodribTYf5WqJnZyMr9KBmIU0+7 qHM+y9Xh16+wwkMAgYHwrqy9Gs9wTF24KLjDs66eSXpiIs2Y8aeeZcPvEEH4yub4PIM2 IxcKDAS+aRG2ninq1LlzV/CR7Yj4DZ16bYSRv5+7qGqLo8Dkbw7lHmOPm81GlKctJF3k a/yKEIRR8vAHzKG041dbWembwJxEMdj9GYmnSXTLBVHiPCO6hkiq3vd4HEi3EsNvyNho 0LgU9//B7EGNo72NhRiDF/N88l6YNalQWcPN4bPWG2JCmK5l/kdEgUYuSyfSWMw52xZU Vb1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712232963; x=1712837763; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=M7CUkDVzN7ZtwbkfqhOOiERTsuLZVsBjpzU4ddI5VKM=; b=ARAVG0Jb97zYxKMtx8TgHzSn6YMHMAYRPFjYbx4jYowfqFWroD/uLXevcF/ovmwasN Nk6gbSQxvkQSEGROCuHcrFJsZhC2zNt91GFx1KPuf2DHACSAMX7f/1RTS/kkZoBf1IaR egNllHSiIuqOzPiACiwmTnab4Sd4TiW+mUHRZOwoAwrwlzMSVMXLwdvIikfEOpkkeXIZ YfeFfI4iNTGiozUTDOsGRzREFj7iBo26iwyYVtYtF6MpRyO/h9i2U8v9hCAxcCkS83TG 8QNZ0ANMwlPJqYpnPtqFOhDHJzFwHE1aluWqWWpHhrE+SxwLieYgxhvcaiq8JxYhubQi K5nw== X-Forwarded-Encrypted: i=1; AJvYcCXkB9yoYopI3xMbsDri9LyEnLKIJmYC+s/SRgsuGst1DAXpiTYIevVbUt4iFEUTIQwVo2FS3DbQpYZMr6E95o1iDmulHfdOePEtVdaiRQBU X-Gm-Message-State: AOJu0Yzg9pJzS72Hn6bLyKB6LSxPQIgmbedw85xDro6UkzcQY5LuZdtM 605IykuN4XVscopJBypNxwArnqy2fwJ9vJXVI6wtPWFGbLnYmacWeoqw0zqTXps= X-Google-Smtp-Source: AGHT+IHYFdWmSj7wn8SFyRFXMduCoplAQPqaPLjEPnPkn3UWdbmb8OMIHJOSpfY0ndz+qQW8DO3Ptg== X-Received: by 2002:a2e:8e6d:0:b0:2d8:2799:c3b1 with SMTP id t13-20020a2e8e6d000000b002d82799c3b1mr1596767ljk.10.1712232963336; Thu, 04 Apr 2024 05:16:03 -0700 (PDT) Received: from localhost (cst2-173-16.cust.vodafone.cz. [31.30.173.16]) by smtp.gmail.com with ESMTPSA id ck5-20020a5d5e85000000b0034349225fbcsm12841155wrb.114.2024.04.04.05.16.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Apr 2024 05:16:02 -0700 (PDT) Date: Thu, 4 Apr 2024 14:16:01 +0200 From: Andrew Jones To: Atish Patra Cc: Atish Patra , linux-kernel@vger.kernel.org, Anup Patel , Albert Ou , Alexandre Ghiti , 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 Subject: Re: [PATCH v4 07/15] RISC-V: KVM: No need to exit to the user space if perf event failed Message-ID: <20240404-ea40bc0237635d671e64fef6@orel> References: <20240229010130.1380926-1-atishp@rivosinc.com> <20240229010130.1380926-8-atishp@rivosinc.com> <20240302-1a3c0df25f2422e1e6abecf3@orel> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: On Mon, Apr 01, 2024 at 03:37:01PM -0700, Atish Patra wrote: > On Sat, Mar 2, 2024 at 12:16 AM Andrew Jones wrote: > > > > On Wed, Feb 28, 2024 at 05:01:22PM -0800, Atish Patra wrote: > > > Currently, we return a linux error code if creating a perf event failed > > > in kvm. That shouldn't be necessary as guest can continue to operate > > > without perf profiling or profiling with firmware counters. > > > > > > Return appropriate SBI error code to indicate that PMU configuration > > > failed. An error message in kvm already describes the reason for failure. > > > > I don't know enough about the perf subsystem to know if there may be > > a concern that resources are temporarily unavailable. If so, then this > > Do you mean the hardware resources unavailable because the host is using it ? Yes (I think). The issue I'm thinking of is if kvm_pmu_create_perf_event (perf_event_create_kernel_counter) returns something like EBUSY and then we translate that to SBI_ERR_NOT_SUPPORTED. I'm not sure guests would interpret not-supported as an error which means they can retry. Or if they retry and get something other than not-supported if they'd be confused. Thanks, drew > > > patch would make it possible for a guest to do the exact same thing, > > but sometimes succeed and sometimes get SBI_ERR_NOT_SUPPORTED. > > sbi_pmu_counter_config_matching doesn't currently have any error types > > specified that say "unsupported at the moment, maybe try again", which > > would be more appropriate in that case. I do see > > perf_event_create_kernel_counter() can return ENOMEM when memory isn't > > available, but if the kernel isn't able to allocate a small amount of > > memory, then we're in bigger trouble anyway, so the concern would be > > if there are perf resource pools which may temporarily be exhausted at > > the time the guest makes this request. > > > > For other cases, this patch ensures that guests continue to run without failure > which allows the user in the guest to try again if this fails due to a temporary > resource availability. > > > One comment below. > > > > > > > > Fixes: 0cb74b65d2e5 ("RISC-V: KVM: Implement perf support without sampling") > > > Reviewed-by: Anup Patel > > > Signed-off-by: Atish Patra > > > --- > > > arch/riscv/kvm/vcpu_pmu.c | 14 +++++++++----- > > > arch/riscv/kvm/vcpu_sbi_pmu.c | 6 +++--- > > > 2 files changed, 12 insertions(+), 8 deletions(-) > > > > > > diff --git a/arch/riscv/kvm/vcpu_pmu.c b/arch/riscv/kvm/vcpu_pmu.c > > > index b1574c043f77..29bf4ca798cb 100644 > > > --- a/arch/riscv/kvm/vcpu_pmu.c > > > +++ b/arch/riscv/kvm/vcpu_pmu.c > > > @@ -229,8 +229,9 @@ static int kvm_pmu_validate_counter_mask(struct kvm_pmu *kvpmu, unsigned long ct > > > return 0; > > > } > > > > > > -static int kvm_pmu_create_perf_event(struct kvm_pmc *pmc, struct perf_event_attr *attr, > > > - unsigned long flags, unsigned long eidx, unsigned long evtdata) > > > +static long kvm_pmu_create_perf_event(struct kvm_pmc *pmc, struct perf_event_attr *attr, > > > + unsigned long flags, unsigned long eidx, > > > + unsigned long evtdata) > > > { > > > struct perf_event *event; > > > > > > @@ -454,7 +455,8 @@ int kvm_riscv_vcpu_pmu_ctr_cfg_match(struct kvm_vcpu *vcpu, unsigned long ctr_ba > > > unsigned long eidx, u64 evtdata, > > > struct kvm_vcpu_sbi_return *retdata) > > > { > > > - int ctr_idx, ret, sbiret = 0; > > > + int ctr_idx, sbiret = 0; > > > + long ret; > > > bool is_fevent; > > > unsigned long event_code; > > > u32 etype = kvm_pmu_get_perf_event_type(eidx); > > > @@ -513,8 +515,10 @@ int kvm_riscv_vcpu_pmu_ctr_cfg_match(struct kvm_vcpu *vcpu, unsigned long ctr_ba > > > kvpmu->fw_event[event_code].started = true; > > > } else { > > > ret = kvm_pmu_create_perf_event(pmc, &attr, flags, eidx, evtdata); > > > - if (ret) > > > - return ret; > > > + if (ret) { > > > + sbiret = SBI_ERR_NOT_SUPPORTED; > > > + goto out; > > > + } > > > } > > > > > > set_bit(ctr_idx, kvpmu->pmc_in_use); > > > diff --git a/arch/riscv/kvm/vcpu_sbi_pmu.c b/arch/riscv/kvm/vcpu_sbi_pmu.c > > > index 7eca72df2cbd..b70179e9e875 100644 > > > --- a/arch/riscv/kvm/vcpu_sbi_pmu.c > > > +++ b/arch/riscv/kvm/vcpu_sbi_pmu.c > > > @@ -42,9 +42,9 @@ static int kvm_sbi_ext_pmu_handler(struct kvm_vcpu *vcpu, struct kvm_run *run, > > > #endif > > > /* > > > * This can fail if perf core framework fails to create an event. > > > - * Forward the error to userspace because it's an error which > > > - * happened within the host kernel. The other option would be > > > - * to convert to an SBI error and forward to the guest. > > > + * No need to forward the error to userspace and exit the guest > > > > Period after guest > > > > > > > + * operation can continue without profiling. Forward the > > > > The operation > > > > Fixed the above two. > > > > > + * appropriate SBI error to the guest. > > > */ > > > ret = kvm_riscv_vcpu_pmu_ctr_cfg_match(vcpu, cp->a0, cp->a1, > > > cp->a2, cp->a3, temp, retdata); > > > -- > > > 2.34.1 > > > > > > > Thanks, > > drew > > > > -- > Regards, > Atish From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3B125CD1284 for ; Thu, 4 Apr 2024 12:16:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=w/ZCw/1OPR/knF9rnPQuDGL9/haBv87NUpQYtkLnhlU=; b=xgYrkYmYj31tdy zyjE2dXIHUEvzdHWoeqQhG8kPQD8WP5fQ20AtKUcevqo/P6BeN1bWdsNb8Gbalp7bcML9DfykAZ7W BTQmjgkAPOD2keXhB/yaQt3wq2H6UI6XcC+qITdqsPrfVFxW7XWPWyul3J3fikfUmu0ABiFDC46ig Splr6KJMcBgpanyRP33tPNoVsedFk5JqupCGMo6fupeLbTAQ1PSts2l53/lK5BYUgBZuFABxkrt8y cOU2kSJFD5ZRWJdFNSZSM0Ko6Hvf9DxQYnzGRjONqJafYJRDrwtWewJHP6PUnlILXMY2sWoehJ1wa G2FfuF5lD0Aeqw6Wz+Dw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rsM0o-00000002Xak-38xx; Thu, 04 Apr 2024 12:16:10 +0000 Received: from mail-lj1-x22c.google.com ([2a00:1450:4864:20::22c]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rsM0k-00000002XX7-1aGm for linux-riscv@lists.infradead.org; Thu, 04 Apr 2024 12:16:08 +0000 Received: by mail-lj1-x22c.google.com with SMTP id 38308e7fff4ca-2d715638540so11887561fa.3 for ; Thu, 04 Apr 2024 05:16:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ventanamicro.com; s=google; t=1712232963; x=1712837763; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=M7CUkDVzN7ZtwbkfqhOOiERTsuLZVsBjpzU4ddI5VKM=; b=XHfRcjK2LJgBbspGRY0pH0uQx0oP/IFIFCYldwVeMCT/XeUYKdZ1xy3KALxwJ0rQFF mJFp0riXsifVyZ/M7/m+dR6KcBxSr6X8edOUyDUfyJFuAyX7r5TesjvrSXV2ZnYZtsmZ TJTUDN+q+c6Dh3m63EmDiNU9dRia+3M+glDPi94RxncbfYsM5fzb3BHY28HN32NDqDoE j9jn5H67stz+toSU/QLo5+wX+fOnoqmoEFHx17EP8Flz8zp15XIfsi2q/ww7KmTQUj3g lgPm7lDXqYyXJGH2zsvWMB0eyiq+5TV5GAY/wYpCNvl0Iui7AcQkv42LmeH03JW3zgDn WBRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712232963; x=1712837763; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=M7CUkDVzN7ZtwbkfqhOOiERTsuLZVsBjpzU4ddI5VKM=; b=Vf4I6Hdw4MFpln6SBs4McBztsgA1xr6qSD0gh8Y0gMYcXJCHdSM7Bi9cqAbfcbkMuK 5omX8zoY8yfnqJv+LHn5xbCsUz7G4Q1uk6LAmbYxUXbESReYIP0l875FPlCt2OqJSqJo VM9Vfji2xzc595OZvbcgMgK6dxXd+0ISGlRi2e3s2zTLOV02FeqVy2FN7KNH1ui5zFP0 z19/oxLpP6lj+EjcxSL6B9/EvJVJ3FlEvyUEHgnUn9T1oFk0cs4JcTx69mgdCFistui7 BgIiyvvrdBAXS1UJEuHEg1uWNoh1PkzQyk2SicB2Xlwq0k22TtZmV9D0Gq6SZPdowg5k 5Fgg== X-Forwarded-Encrypted: i=1; AJvYcCX9/+w9KkBHWzjdH/jGc7Zso0slPxOcbnzHx984jmp9Uibzf06vEVl+RMGkoBlrnTB+dTUPZPlSS1w++N2WDS4Pg2yy/2FlahuHR8n8SwPA X-Gm-Message-State: AOJu0Yy9mautb7Bm0GHA9Tku7sXWeKWDFLYFXAvJHjUv3O0z6jJhCoQJ JPo2itKAk/q02kvIzM4UHBHhm4k1WYgOrxg8HprzQeD8/E+coLAFkiwPveXkyxY= X-Google-Smtp-Source: AGHT+IHYFdWmSj7wn8SFyRFXMduCoplAQPqaPLjEPnPkn3UWdbmb8OMIHJOSpfY0ndz+qQW8DO3Ptg== X-Received: by 2002:a2e:8e6d:0:b0:2d8:2799:c3b1 with SMTP id t13-20020a2e8e6d000000b002d82799c3b1mr1596767ljk.10.1712232963336; Thu, 04 Apr 2024 05:16:03 -0700 (PDT) Received: from localhost (cst2-173-16.cust.vodafone.cz. [31.30.173.16]) by smtp.gmail.com with ESMTPSA id ck5-20020a5d5e85000000b0034349225fbcsm12841155wrb.114.2024.04.04.05.16.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Apr 2024 05:16:02 -0700 (PDT) Date: Thu, 4 Apr 2024 14:16:01 +0200 From: Andrew Jones To: Atish Patra Subject: Re: [PATCH v4 07/15] RISC-V: KVM: No need to exit to the user space if perf event failed Message-ID: <20240404-ea40bc0237635d671e64fef6@orel> References: <20240229010130.1380926-1-atishp@rivosinc.com> <20240229010130.1380926-8-atishp@rivosinc.com> <20240302-1a3c0df25f2422e1e6abecf3@orel> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240404_051606_434478_5452E88F X-CRM114-Status: GOOD ( 44.86 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Mark Rutland , linux-kselftest@vger.kernel.org, Albert Ou , Alexandre Ghiti , kvm@vger.kernel.org, Will Deacon , Anup Patel , Paul Walmsley , Atish Patra , linux-kernel@vger.kernel.org, Conor Dooley , Guo Ren , kvm-riscv@lists.infradead.org, Paolo Bonzini , Palmer Dabbelt , linux-riscv@lists.infradead.org, Shuah Khan Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gTW9uLCBBcHIgMDEsIDIwMjQgYXQgMDM6Mzc6MDFQTSAtMDcwMCwgQXRpc2ggUGF0cmEgd3Jv dGU6Cj4gT24gU2F0LCBNYXIgMiwgMjAyNCBhdCAxMjoxNuKAr0FNIEFuZHJldyBKb25lcyA8YWpv bmVzQHZlbnRhbmFtaWNyby5jb20+IHdyb3RlOgo+ID4KPiA+IE9uIFdlZCwgRmViIDI4LCAyMDI0 IGF0IDA1OjAxOjIyUE0gLTA4MDAsIEF0aXNoIFBhdHJhIHdyb3RlOgo+ID4gPiBDdXJyZW50bHks IHdlIHJldHVybiBhIGxpbnV4IGVycm9yIGNvZGUgaWYgY3JlYXRpbmcgYSBwZXJmIGV2ZW50IGZh aWxlZAo+ID4gPiBpbiBrdm0uIFRoYXQgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeSBhcyBndWVzdCBj YW4gY29udGludWUgdG8gb3BlcmF0ZQo+ID4gPiB3aXRob3V0IHBlcmYgcHJvZmlsaW5nIG9yIHBy b2ZpbGluZyB3aXRoIGZpcm13YXJlIGNvdW50ZXJzLgo+ID4gPgo+ID4gPiBSZXR1cm4gYXBwcm9w cmlhdGUgU0JJIGVycm9yIGNvZGUgdG8gaW5kaWNhdGUgdGhhdCBQTVUgY29uZmlndXJhdGlvbgo+ ID4gPiBmYWlsZWQuIEFuIGVycm9yIG1lc3NhZ2UgaW4ga3ZtIGFscmVhZHkgZGVzY3JpYmVzIHRo ZSByZWFzb24gZm9yIGZhaWx1cmUuCj4gPgo+ID4gSSBkb24ndCBrbm93IGVub3VnaCBhYm91dCB0 aGUgcGVyZiBzdWJzeXN0ZW0gdG8ga25vdyBpZiB0aGVyZSBtYXkgYmUKPiA+IGEgY29uY2VybiB0 aGF0IHJlc291cmNlcyBhcmUgdGVtcG9yYXJpbHkgdW5hdmFpbGFibGUuIElmIHNvLCB0aGVuIHRo aXMKPiAKPiBEbyB5b3UgbWVhbiB0aGUgaGFyZHdhcmUgcmVzb3VyY2VzIHVuYXZhaWxhYmxlIGJl Y2F1c2UgdGhlIGhvc3QgaXMgdXNpbmcgaXQgPwoKWWVzIChJIHRoaW5rKS4gVGhlIGlzc3VlIEkn bSB0aGlua2luZyBvZiBpcyBpZiBrdm1fcG11X2NyZWF0ZV9wZXJmX2V2ZW50CihwZXJmX2V2ZW50 X2NyZWF0ZV9rZXJuZWxfY291bnRlcikgcmV0dXJucyBzb21ldGhpbmcgbGlrZSBFQlVTWSBhbmQg dGhlbgp3ZSB0cmFuc2xhdGUgdGhhdCB0byBTQklfRVJSX05PVF9TVVBQT1JURUQuIEknbSBub3Qg c3VyZSBndWVzdHMgd291bGQKaW50ZXJwcmV0IG5vdC1zdXBwb3J0ZWQgYXMgYW4gZXJyb3Igd2hp Y2ggbWVhbnMgdGhleSBjYW4gcmV0cnkuIE9yIGlmCnRoZXkgcmV0cnkgYW5kIGdldCBzb21ldGhp bmcgb3RoZXIgdGhhbiBub3Qtc3VwcG9ydGVkIGlmIHRoZXknZCBiZQpjb25mdXNlZC4KClRoYW5r cywKZHJldwogIAoKPiAKPiA+IHBhdGNoIHdvdWxkIG1ha2UgaXQgcG9zc2libGUgZm9yIGEgZ3Vl c3QgdG8gZG8gdGhlIGV4YWN0IHNhbWUgdGhpbmcsCj4gPiBidXQgc29tZXRpbWVzIHN1Y2NlZWQg YW5kIHNvbWV0aW1lcyBnZXQgU0JJX0VSUl9OT1RfU1VQUE9SVEVELgo+ID4gc2JpX3BtdV9jb3Vu dGVyX2NvbmZpZ19tYXRjaGluZyBkb2Vzbid0IGN1cnJlbnRseSBoYXZlIGFueSBlcnJvciB0eXBl cwo+ID4gc3BlY2lmaWVkIHRoYXQgc2F5ICJ1bnN1cHBvcnRlZCBhdCB0aGUgbW9tZW50LCBtYXli ZSB0cnkgYWdhaW4iLCB3aGljaAo+ID4gd291bGQgYmUgbW9yZSBhcHByb3ByaWF0ZSBpbiB0aGF0 IGNhc2UuIEkgZG8gc2VlCj4gPiBwZXJmX2V2ZW50X2NyZWF0ZV9rZXJuZWxfY291bnRlcigpIGNh biByZXR1cm4gRU5PTUVNIHdoZW4gbWVtb3J5IGlzbid0Cj4gPiBhdmFpbGFibGUsIGJ1dCBpZiB0 aGUga2VybmVsIGlzbid0IGFibGUgdG8gYWxsb2NhdGUgYSBzbWFsbCBhbW91bnQgb2YKPiA+IG1l bW9yeSwgdGhlbiB3ZSdyZSBpbiBiaWdnZXIgdHJvdWJsZSBhbnl3YXksIHNvIHRoZSBjb25jZXJu IHdvdWxkIGJlCj4gPiBpZiB0aGVyZSBhcmUgcGVyZiByZXNvdXJjZSBwb29scyB3aGljaCBtYXkg dGVtcG9yYXJpbHkgYmUgZXhoYXVzdGVkIGF0Cj4gPiB0aGUgdGltZSB0aGUgZ3Vlc3QgbWFrZXMg dGhpcyByZXF1ZXN0Lgo+ID4KPiAKPiBGb3Igb3RoZXIgY2FzZXMsIHRoaXMgcGF0Y2ggZW5zdXJl cyB0aGF0IGd1ZXN0cyBjb250aW51ZSB0byBydW4gd2l0aG91dCBmYWlsdXJlCj4gd2hpY2ggYWxs b3dzIHRoZSB1c2VyIGluIHRoZSBndWVzdCB0byB0cnkgYWdhaW4gaWYgdGhpcyBmYWlscyBkdWUg dG8gYSB0ZW1wb3JhcnkKPiByZXNvdXJjZSBhdmFpbGFiaWxpdHkuCj4gCj4gPiBPbmUgY29tbWVu dCBiZWxvdy4KPiA+Cj4gPiA+Cj4gPiA+IEZpeGVzOiAwY2I3NGI2NWQyZTUgKCJSSVNDLVY6IEtW TTogSW1wbGVtZW50IHBlcmYgc3VwcG9ydCB3aXRob3V0IHNhbXBsaW5nIikKPiA+ID4gUmV2aWV3 ZWQtYnk6IEFudXAgUGF0ZWwgPGFudXBAYnJhaW5mYXVsdC5vcmc+Cj4gPiA+IFNpZ25lZC1vZmYt Ynk6IEF0aXNoIFBhdHJhIDxhdGlzaHBAcml2b3NpbmMuY29tPgo+ID4gPiAtLS0KPiA+ID4gIGFy Y2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMgICAgIHwgMTQgKysrKysrKysrLS0tLS0KPiA+ID4gIGFy Y2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3BtdS5jIHwgIDYgKysrLS0tCj4gPiA+ICAyIGZpbGVzIGNo YW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCj4gPiA+Cj4gPiA+IGRpZmYg LS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9w bXUuYwo+ID4gPiBpbmRleCBiMTU3NGMwNDNmNzcuLjI5YmY0Y2E3OThjYiAxMDA2NDQKPiA+ID4g LS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYwo+ID4gPiArKysgYi9hcmNoL3Jpc2N2L2t2 bS92Y3B1X3BtdS5jCj4gPiA+IEBAIC0yMjksOCArMjI5LDkgQEAgc3RhdGljIGludCBrdm1fcG11 X3ZhbGlkYXRlX2NvdW50ZXJfbWFzayhzdHJ1Y3Qga3ZtX3BtdSAqa3ZwbXUsIHVuc2lnbmVkIGxv bmcgY3QKPiA+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+Cj4gPiA+IC1zdGF0aWMg aW50IGt2bV9wbXVfY3JlYXRlX3BlcmZfZXZlbnQoc3RydWN0IGt2bV9wbWMgKnBtYywgc3RydWN0 IHBlcmZfZXZlbnRfYXR0ciAqYXR0ciwKPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzLCB1bnNpZ25lZCBsb25nIGVpZHgsIHVuc2lnbmVk IGxvbmcgZXZ0ZGF0YSkKPiA+ID4gK3N0YXRpYyBsb25nIGt2bV9wbXVfY3JlYXRlX3BlcmZfZXZl bnQoc3RydWN0IGt2bV9wbWMgKnBtYywgc3RydWN0IHBlcmZfZXZlbnRfYXR0ciAqYXR0ciwKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFn cywgdW5zaWduZWQgbG9uZyBlaWR4LAo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBsb25nIGV2dGRhdGEpCj4gPiA+ICB7Cj4gPiA+ICAgICAgIHN0cnVj dCBwZXJmX2V2ZW50ICpldmVudDsKPiA+ID4KPiA+ID4gQEAgLTQ1NCw3ICs0NTUsOCBAQCBpbnQg a3ZtX3Jpc2N2X3ZjcHVfcG11X2N0cl9jZmdfbWF0Y2goc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1 bnNpZ25lZCBsb25nIGN0cl9iYQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGxvbmcgZWlkeCwgdTY0IGV2dGRhdGEsCj4gPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGt2bV92Y3B1X3NiaV9yZXR1cm4gKnJldGRhdGEp Cj4gPiA+ICB7Cj4gPiA+IC0gICAgIGludCBjdHJfaWR4LCByZXQsIHNiaXJldCA9IDA7Cj4gPiA+ ICsgICAgIGludCBjdHJfaWR4LCBzYmlyZXQgPSAwOwo+ID4gPiArICAgICBsb25nIHJldDsKPiA+ ID4gICAgICAgYm9vbCBpc19mZXZlbnQ7Cj4gPiA+ICAgICAgIHVuc2lnbmVkIGxvbmcgZXZlbnRf Y29kZTsKPiA+ID4gICAgICAgdTMyIGV0eXBlID0ga3ZtX3BtdV9nZXRfcGVyZl9ldmVudF90eXBl KGVpZHgpOwo+ID4gPiBAQCAtNTEzLDggKzUxNSwxMCBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11 X2N0cl9jZmdfbWF0Y2goc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIGN0cl9i YQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAga3ZwbXUtPmZ3X2V2ZW50W2V2ZW50X2NvZGVd LnN0YXJ0ZWQgPSB0cnVlOwo+ID4gPiAgICAgICB9IGVsc2Ugewo+ID4gPiAgICAgICAgICAgICAg IHJldCA9IGt2bV9wbXVfY3JlYXRlX3BlcmZfZXZlbnQocG1jLCAmYXR0ciwgZmxhZ3MsIGVpZHgs IGV2dGRhdGEpOwo+ID4gPiAtICAgICAgICAgICAgIGlmIChyZXQpCj4gPiA+IC0gICAgICAgICAg ICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gPiArICAgICAgICAgICAgIGlmIChyZXQpIHsKPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgIHNiaXJldCA9IFNCSV9FUlJfTk9UX1NVUFBPUlRFRDsK PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ID4gPiArICAgICAgICAgICAg IH0KPiA+ID4gICAgICAgfQo+ID4gPgo+ID4gPiAgICAgICBzZXRfYml0KGN0cl9pZHgsIGt2cG11 LT5wbWNfaW5fdXNlKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2Jp X3BtdS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfcG11LmMKPiA+ID4gaW5kZXggN2VjYTcy ZGYyY2JkLi5iNzAxNzllOWU4NzUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2FyY2gvcmlzY3Yva3ZtL3Zj cHVfc2JpX3BtdS5jCj4gPiA+ICsrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3BtdS5jCj4g PiA+IEBAIC00Miw5ICs0Miw5IEBAIHN0YXRpYyBpbnQga3ZtX3NiaV9leHRfcG11X2hhbmRsZXIo c3RydWN0IGt2bV92Y3B1ICp2Y3B1LCBzdHJ1Y3Qga3ZtX3J1biAqcnVuLAo+ID4gPiAgI2VuZGlm Cj4gPiA+ICAgICAgICAgICAgICAgLyoKPiA+ID4gICAgICAgICAgICAgICAgKiBUaGlzIGNhbiBm YWlsIGlmIHBlcmYgY29yZSBmcmFtZXdvcmsgZmFpbHMgdG8gY3JlYXRlIGFuIGV2ZW50Lgo+ID4g PiAtICAgICAgICAgICAgICAqIEZvcndhcmQgdGhlIGVycm9yIHRvIHVzZXJzcGFjZSBiZWNhdXNl IGl0J3MgYW4gZXJyb3Igd2hpY2gKPiA+ID4gLSAgICAgICAgICAgICAgKiBoYXBwZW5lZCB3aXRo aW4gdGhlIGhvc3Qga2VybmVsLiBUaGUgb3RoZXIgb3B0aW9uIHdvdWxkIGJlCj4gPiA+IC0gICAg ICAgICAgICAgICogdG8gY29udmVydCB0byBhbiBTQkkgZXJyb3IgYW5kIGZvcndhcmQgdG8gdGhl IGd1ZXN0Lgo+ID4gPiArICAgICAgICAgICAgICAqIE5vIG5lZWQgdG8gZm9yd2FyZCB0aGUgZXJy b3IgdG8gdXNlcnNwYWNlIGFuZCBleGl0IHRoZSBndWVzdAo+ID4KPiA+IFBlcmlvZCBhZnRlciBn dWVzdAo+ID4KPiA+Cj4gPiA+ICsgICAgICAgICAgICAgICogb3BlcmF0aW9uIGNhbiBjb250aW51 ZSB3aXRob3V0IHByb2ZpbGluZy4gRm9yd2FyZCB0aGUKPiA+Cj4gPiBUaGUgb3BlcmF0aW9uCj4g Pgo+IAo+IEZpeGVkIHRoZSBhYm92ZSB0d28uCj4gCj4gCj4gPiA+ICsgICAgICAgICAgICAgICog YXBwcm9wcmlhdGUgU0JJIGVycm9yIHRvIHRoZSBndWVzdC4KPiA+ID4gICAgICAgICAgICAgICAg Ki8KPiA+ID4gICAgICAgICAgICAgICByZXQgPSBrdm1fcmlzY3ZfdmNwdV9wbXVfY3RyX2NmZ19t YXRjaCh2Y3B1LCBjcC0+YTAsIGNwLT5hMSwKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcC0+YTIsIGNwLT5hMywgdGVtcCwgcmV0ZGF0 YSk7Cj4gPiA+IC0tCj4gPiA+IDIuMzQuMQo+ID4gPgo+ID4KPiA+IFRoYW5rcywKPiA+IGRyZXcK PiAKPiAKPiAKPiAtLQo+IFJlZ2FyZHMsCj4gQXRpc2gKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1y aXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxt YW4vbGlzdGluZm8vbGludXgtcmlzY3YK