Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

LoongArch: KVM: Move kvm_iocsr tracepoint out of generic code

The tracepoint kvm_iocsr is only used by the loongarch architecture. As
trace events can take up to 5K of memory, move this tracepoint into the
LoongArch specific tracing file so that it doesn't waste memory for all
other architectures.

Reviewed-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>

authored by

Steven Rostedt and committed by
Huacai Chen
66e2d96b 77336b91

+35 -35
+35
arch/loongarch/kvm/trace.h
··· 161 161 __entry->pc) 162 162 ); 163 163 164 + #define KVM_TRACE_IOCSR_READ_UNSATISFIED 0 165 + #define KVM_TRACE_IOCSR_READ 1 166 + #define KVM_TRACE_IOCSR_WRITE 2 167 + 168 + #define kvm_trace_symbol_iocsr \ 169 + { KVM_TRACE_IOCSR_READ_UNSATISFIED, "unsatisfied-read" }, \ 170 + { KVM_TRACE_IOCSR_READ, "read" }, \ 171 + { KVM_TRACE_IOCSR_WRITE, "write" } 172 + 173 + TRACE_EVENT(kvm_iocsr, 174 + TP_PROTO(int type, int len, u64 gpa, void *val), 175 + TP_ARGS(type, len, gpa, val), 176 + 177 + TP_STRUCT__entry( 178 + __field( u32, type ) 179 + __field( u32, len ) 180 + __field( u64, gpa ) 181 + __field( u64, val ) 182 + ), 183 + 184 + TP_fast_assign( 185 + __entry->type = type; 186 + __entry->len = len; 187 + __entry->gpa = gpa; 188 + __entry->val = 0; 189 + if (val) 190 + memcpy(&__entry->val, val, 191 + min_t(u32, sizeof(__entry->val), len)); 192 + ), 193 + 194 + TP_printk("iocsr %s len %u gpa 0x%llx val 0x%llx", 195 + __print_symbolic(__entry->type, kvm_trace_symbol_iocsr), 196 + __entry->len, __entry->gpa, __entry->val) 197 + ); 198 + 164 199 TRACE_EVENT(kvm_vpid_change, 165 200 TP_PROTO(struct kvm_vcpu *vcpu, unsigned long vpid), 166 201 TP_ARGS(vcpu, vpid),
-35
include/trace/events/kvm.h
··· 156 156 __entry->len, __entry->gpa, __entry->val) 157 157 ); 158 158 159 - #define KVM_TRACE_IOCSR_READ_UNSATISFIED 0 160 - #define KVM_TRACE_IOCSR_READ 1 161 - #define KVM_TRACE_IOCSR_WRITE 2 162 - 163 - #define kvm_trace_symbol_iocsr \ 164 - { KVM_TRACE_IOCSR_READ_UNSATISFIED, "unsatisfied-read" }, \ 165 - { KVM_TRACE_IOCSR_READ, "read" }, \ 166 - { KVM_TRACE_IOCSR_WRITE, "write" } 167 - 168 - TRACE_EVENT(kvm_iocsr, 169 - TP_PROTO(int type, int len, u64 gpa, void *val), 170 - TP_ARGS(type, len, gpa, val), 171 - 172 - TP_STRUCT__entry( 173 - __field( u32, type ) 174 - __field( u32, len ) 175 - __field( u64, gpa ) 176 - __field( u64, val ) 177 - ), 178 - 179 - TP_fast_assign( 180 - __entry->type = type; 181 - __entry->len = len; 182 - __entry->gpa = gpa; 183 - __entry->val = 0; 184 - if (val) 185 - memcpy(&__entry->val, val, 186 - min_t(u32, sizeof(__entry->val), len)); 187 - ), 188 - 189 - TP_printk("iocsr %s len %u gpa 0x%llx val 0x%llx", 190 - __print_symbolic(__entry->type, kvm_trace_symbol_iocsr), 191 - __entry->len, __entry->gpa, __entry->val) 192 - ); 193 - 194 159 #define kvm_fpu_load_symbol \ 195 160 {0, "unload"}, \ 196 161 {1, "load"}