Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp594262pxf; Wed, 31 Mar 2021 10:54:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwKdD6+++RI4W3+3pZ/RCDQ2fzZqKVMaHWs5V6rFdKk1A8GPOLu64Kn0I5EMKLcUyPwRHsY X-Received: by 2002:a17:906:14d4:: with SMTP id y20mr4875974ejc.190.1617213253714; Wed, 31 Mar 2021 10:54:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617213253; cv=none; d=google.com; s=arc-20160816; b=TbPzG0ZsSI1UkHaHZQt6LGGEglb3s0DCrH+sukWsWM5WGlfE1r2Z4HjUpEVKDfsiQb Oo6pk+GOiohJBcQgKW3ODf+IWHhG8tjY0hX7xYLYr1iI3DBFqLw73bRoyFKWDpW/HkVl J6ke+8CER4qTLzEmsGEJRf0BstxHD44KpAjN+qMHnZnd0h2l+aqpZNzEoYc9/AV8LwAA YWdAnr9AykXp0bKG2XYXNxIPmyFscZ2m37hF/K9AOw4pmNu9FPGFvUHwtJuSgVSDO6ms yOqHeKpk3CcTSp2jTCHqnhBFB/gM5xhJ/se6QsKFk7mnz0pnj4WdNYSZfjSWkwWXpo0U SLwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=sRKn97Ztia+gnMzFElCXABEgMekr6OAYYKdcHeGfk0A=; b=E5116Cb74E0uha6/schg8sa/LPXCtJbvbZJviIJiqkHfACAGUqa69T+NX4kW0FczTZ /SMGs4+z9e/f46h4XXdFDnzyqryAmF2RyaMhzURQ2Z2YWZhM2/KRs+1ecm8SJUyhRRn7 uc6UVjDh9w+NBoU1NLEzPI4s2MXJ0xZPN/vcuGIHZdGYlLK4h2AAQ7RCTnOvoHKMoj3j 851KljmtML8QUakDB7kFwad/G9du1J95f0Dg+4sCievpMtLmJWhDYAoUd9TuUL2x6MpT 1NB8pgZgPvjlivnpKAjn0twRTBGLARQHaKYo5px+xLelL4MoCyaGqyijK+fIKcxxC+xW 1qiw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=QWoP0EkZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id v22si2266377eja.212.2021.03.31.10.53.51; Wed, 31 Mar 2021 10:54:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=QWoP0EkZ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234679AbhCaRwz (ORCPT + 99 others); Wed, 31 Mar 2021 13:52:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:42768 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234488AbhCaRwa (ORCPT ); Wed, 31 Mar 2021 13:52:30 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 68C5860FE7 for ; Wed, 31 Mar 2021 17:52:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1617213149; bh=ayKG6mUBriU17I0iDGqWv7Oi2o4ULqZPjn2xMzzGFnk=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=QWoP0EkZJhTDfTGypiUAL2nr0WT9ng2wy1XNzmBkSCsSJkQbJnDv2Iya1nS9uTrtF e2gLNYzdFFM2m29z5SoeLa7YiriQ86zYWVQqSETHz2UqOIODaqx4MNpqJG02yaTDYM Twjp3NTxrqCgS9KYM325lu81sCGwaKeqyM/jYPxOi4iLNOwpoJmRmMjb8vXC+SPKnp YNT3KwMRflg9mEE2iqeDbPBHi3kLlsWy164Qu3TxPKtzch1ad5QMUlC2fnINfdMuO1 8ud2JQp39yhNvZCRl9GEc0GuU3oMwuWzvDVfrsc9BwexN5zR015j5/fOhBYKuIT9IB TenCmRz5U46eg== Received: by mail-ej1-f41.google.com with SMTP id kt15so31316926ejb.12 for ; Wed, 31 Mar 2021 10:52:29 -0700 (PDT) X-Gm-Message-State: AOAM531LJbo1xJMWJE107MDx1BI3Dj33ZoRY1lENJHneFiqXsWSmvGyR OPw8oiQ32ahNm51nPse79ASC0OBJT5us2DJZwg== X-Received: by 2002:a17:906:7806:: with SMTP id u6mr4568705ejm.130.1617213147968; Wed, 31 Mar 2021 10:52:27 -0700 (PDT) MIME-Version: 1.0 References: <20210311000837.3630499-1-robh@kernel.org> <20210311000837.3630499-3-robh@kernel.org> <20210330153125.GC6567@willie-the-truck> <20210331153845.GB7815@willie-the-truck> In-Reply-To: <20210331153845.GB7815@willie-the-truck> From: Rob Herring Date: Wed, 31 Mar 2021 12:52:11 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v6 02/10] arm64: perf: Enable PMU counter direct access for perf event To: Will Deacon Cc: Catalin Marinas , Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Jiri Olsa , Mark Rutland , Ian Rogers , Alexander Shishkin , Honnappa Nagarahalli , Zachary.Leaf@arm.com, Raphael Gault , Jonathan Cameron , Namhyung Kim , Itaru Kitayama , linux-arm-kernel , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 31, 2021 at 10:38 AM Will Deacon wrote: > > On Tue, Mar 30, 2021 at 04:08:11PM -0500, Rob Herring wrote: > > On Tue, Mar 30, 2021 at 12:09 PM Rob Herring wrote: > > > On Tue, Mar 30, 2021 at 10:31 AM Will Deacon wrote: > > > > The logic here feels like it > > > > could with a bit of untangling. > > > > > > Yes, I don't love it, but couldn't come up with anything better. It is > > > complicated by the fact that flags have to be set before we assign the > > > counter and can't set/change them when we assign the counter. It would > > > take a lot of refactoring with armpmu code to fix that. > > > > How's this instead?: > > > > if (armv8pmu_event_want_user_access(event) || !armv8pmu_event_is_64bit(event)) > > event->hw.flags |= ARMPMU_EL0_RD_CNTR; > > > > /* > > * At this point, the counter is not assigned. If a 64-bit counter is > > * requested, we must make sure the h/w has 64-bit counters if we set > > * the event size to 64-bit because chaining is not supported with > > * userspace access. This may still fail later on if the CPU cycle > > * counter is in use. > > */ > > if (armv8pmu_event_is_64bit(event) && > > (!armv8pmu_event_want_user_access(event) || > > armv8pmu_has_long_event(cpu_pmu) || (hw_event_id == > > ARMV8_PMUV3_PERFCTR_CPU_CYCLES))) > > event->hw.flags |= ARMPMU_EVT_64BIT; > > I thought there were some cases where we could assign cycles event to an > event counter; does that not happen anymore? Yes, but if we hit that scenario when the user has asked for 64-bit user access, then we return an error later when assigning the counter. I think we can assume if users have gone to the trouble of requesting 64-bit counters, then they can deal with ensuring they don't have multiple users. Otherwise, the only way I see to simplify this is we only support 64-bit counters in userspace when we have v8.5 PMU. Rob