All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Matt Turner" <mattst88@gmail.com>
Cc: linux-perf-users@vger.kernel.org
Subject: Re: [PATCH v5 05/11] alpha/perf: implement ProfileMe sampling
Date: Tue, 03 Nov 2026 21:00:41 +0000	[thread overview]
Message-ID: <sashiko-outbox-196022@kernel.org> (raw)
In-Reply-To: <20261103-alpha-profileme-v5-5-bbe3937fbf3a@gmail.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] alpha/perf: pending PCTR1 IRQ misrouted in alpha_perf_event_irq_handler()
--

commit f0c418fe426066f6a450b4931c312c3fa2526930
Author: Matt Turner <mattst88@gmail.com>

alpha/perf: implement ProfileMe sampling

This commit implements ProfileMe sampling mode on EV67 and later Alpha
processors, selectable via the profileme config bit or precise_ip. It
attributes samples to the instruction address latched in PMPC and handles
counter parking and rearming across mode switches.

> diff --git a/arch/alpha/kernel/perf_event.c b/arch/alpha/kernel/perf_event.c
> index ecec78c355cd3..546e30d46c61a 100644
> --- a/arch/alpha/kernel/perf_event.c
> +++ b/arch/alpha/kernel/perf_event.c

[ ... ]

> @@ -869,6 +1118,10 @@ static void alpha_perf_event_irq_handler(unsigned long la_ptr,
>  
>  	idx = la_ptr;
>  
> +	/* A ProfileMe event owns both counters but lives at index 0. */
> +	if (cpuc->config & EV67_PCTR_MODE_PROFILEME)
> +		idx = 0;

[Severity: Medium]
What happens here in alpha_perf_event_irq_handler() when an Aggregate mode
event on PCTR1 (such as cycles, bcache-misses, or mbox-replay, which
ev67_mapping[] assigns to idx 1) overflows just as perf multiplexes it out
and schedules a ProfileMe event in?

When PALcode delivers that pending PCTR1 interrupt, la_ptr is 1 while
cpuc->config has EV67_PCTR_MODE_PROFILEME set. By unconditionally
overwriting idx = 0, alpha_perf_event_irq_handler() matches the active
ProfileMe event at cpuc->current_idx[0] == 0 and calls
alpha_perf_event_profileme():

    alpha_perf_event_irq_handler()
      alpha_perf_event_profileme()
        alpha_perf_event_update(event, hwc, 0, alpha_pmu->pmc_max_period[0]+1);

Since PCTR0 has not actually wrapped, doesn't this add a bogus period of
pmc_max_period[0] + 1 (1,048,576) to event->count, subtract 1,048,576 from
hwc->period_left, and emit a false sample using a stale PMPC value?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261103-alpha-profileme-v5-0-bbe3937fbf3a@gmail.com?part=5

  reply	other threads:[~2026-11-03 21:00 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-03 20:37 [PATCH v5 00/11] alpha/perf: add ProfileMe sampling Matt Turner
2026-11-03 20:37 ` [PATCH v5 01/11] alpha/perf: pass PERFMON_CMD_LOGGING_ALL to the logging options call Matt Turner
2026-11-03 20:40   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 02/11] alpha/perf: add sysfs format and event attributes Matt Turner
2026-11-03 20:40   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 03/11] alpha/perf: clear PERF_HES_UPTODATE when an event starts counting Matt Turner
2026-11-03 20:43   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 04/11] alpha/perf: do not report user registers from the entry code Matt Turner
2026-11-03 20:46   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 05/11] alpha/perf: implement ProfileMe sampling Matt Turner
2026-11-03 21:00   ` sashiko-bot [this message]
2026-11-03 20:37 ` [PATCH v5 06/11] alpha/perf: attach ProfileMe status as PERF_SAMPLE_RAW data Matt Turner
2026-11-03 20:43   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 07/11] alpha/perf: optionally randomize the ProfileMe sampling interval Matt Turner
2026-11-03 20:45   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 08/11] alpha/perf: report the ProfileMe window count as the sample weight Matt Turner
2026-11-03 20:41   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 09/11] alpha/perf: report the data source of ProfileMe DTB misses Matt Turner
2026-11-03 20:48   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 10/11] alpha/perf: add ProfileMe sample filters Matt Turner
2026-11-03 20:43   ` sashiko-bot
2026-11-03 20:37 ` [PATCH v5 11/11] alpha/perf: sample only retired instructions for precise events Matt Turner
2026-11-03 20:48   ` sashiko-bot
2026-11-03 23:42 ` [PATCH v5 00/11] alpha/perf: add ProfileMe sampling Ian Rogers
2026-11-04  9:01   ` Magnus Lindholm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-196022@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mattst88@gmail.com \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.