| #ifndef _ASM_POWERPC_DTL_H |
| #define _ASM_POWERPC_DTL_H |
| |
| #include <asm/lppaca.h> |
| #include <linux/spinlock_types.h> |
| |
| |
| |
| |
| struct dtl_entry { |
| <------>u8 dispatch_reason; |
| <------>u8 preempt_reason; |
| <------>__be16 processor_id; |
| <------>__be32 enqueue_to_dispatch_time; |
| <------>__be32 ready_to_enqueue_time; |
| <------>__be32 waiting_to_ready_time; |
| <------>__be64 timebase; |
| <------>__be64 fault_addr; |
| <------>__be64 srr0; |
| <------>__be64 srr1; |
| }; |
| |
| #define DISPATCH_LOG_BYTES 4096 |
| #define N_DISPATCH_LOG (DISPATCH_LOG_BYTES / sizeof(struct dtl_entry)) |
| |
| |
| |
| |
| |
| |
| |
| #define DTL_LOG_CEDE 0x1 |
| #define DTL_LOG_PREEMPT 0x2 |
| #define DTL_LOG_FAULT 0x4 |
| #define DTL_LOG_ALL (DTL_LOG_CEDE | DTL_LOG_PREEMPT | DTL_LOG_FAULT) |
| |
| extern struct kmem_cache *dtl_cache; |
| extern rwlock_t dtl_access_lock; |
| |
| |
| |
| |
| |
| |
| |
| extern void (*dtl_consumer)(struct dtl_entry *entry, u64 index); |
| |
| extern void register_dtl_buffer(int cpu); |
| extern void alloc_dtl_buffers(unsigned long *time_limit); |
| extern long hcall_vphn(unsigned long cpu, u64 flags, __be32 *associativity); |
| |
| #endif |
| |