/[base]
ViewVC logotype

Revision 300902


Jump to revision: Previous Next
Author: andrew
Date: Sat May 28 13:05:39 2016 UTC (8 years, 1 month ago)
Changed paths: 1
Log Message:
Don't panic in hwpmc when stopping sampling.

When hwpmc stops sampling it will set the pm_state to something other
than PMC_STATE_RUNNING. This means the following sequence can happen:

CPU 0: Enter the interrupt handler
CPU 0: Set the thread TDP_CALLCHAIN pflag
CPU 1: Stop sampling
CPU 0: Call pmc_process_samples, sampling is stopped so clears ps_nsamples
CPU 0: Finishes interrupt processing with the TDP_CALLCHAIN flag set
CPU 0: Call pmc_capture_user_callchain to capture the user call chain
CPU 0: Find all the pmc sample are free so no call chains need to be captured
CPU 0: KASSERT because of this

This fixes the issue by checking if any of the samples have been stopped
and including this in te KASSERT.

PR:		204273
Reviewed by:	bz, gnn
Obtained from:	ABT Systems Ltd
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D6581


Changed paths

Path Details
Directoryhead/sys/dev/hwpmc/hwpmc_mod.c modified , text changed

  ViewVC Help
Powered by ViewVC 1.1.27