powerpc/pseries: Re-enable dispatch trace log userspace interface
authorPaul Mackerras <paulus@samba.org>
Tue, 31 Aug 2010 01:59:53 +0000 (01:59 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 2 Sep 2010 04:07:32 +0000 (14:07 +1000)
commit872e439a45ed4a4bd499bc55cb0dffa74027f749
tree2f07a64553b25fb0a457832722b46ee9549b74cb
parentcf9efce0ce3136fa076f53e53154e98455229514
powerpc/pseries: Re-enable dispatch trace log userspace interface

Since the cpu accounting code uses the hypervisor dispatch trace log
now when CONFIG_VIRT_CPU_ACCOUNTING = y, the previous commit disabled
access to it via files in the /sys/kernel/debug/powerpc/dtl/ directory
in that case.  This restores those files.

To do this, we now have a hook that the cpu accounting code will call
as it processes each entry from the hypervisor dispatch trace log.
The code in dtl.c now uses that to fill up its ring buffer, rather
than having the hypervisor fill the ring buffer directly.

This also fixes dtl_file_read() to handle overflow conditions a bit
better and adds a spinlock to ensure that race conditions (multiple
processes opening or reading the file concurrently) are handled
correctly.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/lppaca.h
arch/powerpc/kernel/time.c
arch/powerpc/platforms/pseries/dtl.c