HomeFreeBSD

hwpmc: simplify calling convention for hwpmc interrupt handling

Description

hwpmc: simplify calling convention for hwpmc interrupt handling

pmc_process_interrupt takes 5 arguments when only 3 are needed.
cpu is always available in curcpu and inuserspace can always be
derived from the passed trapframe.

While facially a reasonable cleanup this change was motivated
by the need to workaround a compiler bug.

core2_intr(cpu, tf) ->

pmc_process_interrupt(cpu, ring, pmc, tf, inuserspace) ->
  pmc_add_sample(cpu, ring, pm, tf, inuserspace)

In the process of optimizing the tail call the tf pointer was getting
clobbered:

(kgdb) up

at /storage/mmacy/devel/freebsd/sys/dev/hwpmc/hwpmc_mod.c:4709

4709 pmc_save_kernel_callchain(ps->ps_pc,
(kgdb) up
1205 error = pmc_process_interrupt(cpu, PMC_HR, pm, tf,

resulting in a crash in pmc_save_kernel_callchain.

Details

Provenance
mmacyAuthored on
Parents
rS334826: amd64: remove now unused bzero, bcmp and bcopy. move pagecopy higher up.
Branches
Unknown
Tags
Unknown