OSDN Git Service

s390/cpum_sf: load program parameter at sampler enablement
authorHendrik Brueckner <brueckner@linux.vnet.ibm.com>
Fri, 27 Oct 2017 13:45:19 +0000 (15:45 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 16 Nov 2017 14:06:16 +0000 (15:06 +0100)
commitd4c7e649d7bf17792629dbeaf25945e26a32894f
treef0f9e08bef9a900ad00e1b6c607d29f87017d42c
parentde9954b75e992d26a67d83990e6219dcb6edc3bf
s390/cpum_sf: load program parameter at sampler enablement

The lpp instruction is used to place the PID of the current
task in the program-parameter (PP) register.  The register
contents is then included in the sampling data entries.

The lpp instruction loads the PP register only when at least
one sampling function is enabled.  Otherwise it is executed
as a no-op.

Linux calls lpp at context switch.  If the context switch
happens before the sampler is enabled, the PP register is
empty.  That means, the PID of the task that is sampled is
not stored in sampling data until the next context switch.

Hence, always call lpp when enabling the sampler.

Signed-off-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/cpu_mf.h
arch/s390/kernel/perf_cpum_sf.c