Author | Tokens | Token Proportion | Commits | Commit Proportion |
---|---|---|---|---|
Daniel Bristot de Oliveira | 867 | 99.31% | 2 | 40.00% |
Steven Rostedt | 3 | 0.34% | 2 | 40.00% |
Divya Indi | 3 | 0.34% | 1 | 20.00% |
Total | 873 | 5 |
#include <asm/trace/irq_vectors.h> #include <linux/trace.h> #if defined(CONFIG_OSNOISE_TRACER) && defined(CONFIG_X86_LOCAL_APIC) /* * trace_intel_irq_entry - record intel specific IRQ entry */ static void trace_intel_irq_entry(void *data, int vector) { osnoise_trace_irq_entry(vector); } /* * trace_intel_irq_exit - record intel specific IRQ exit */ static void trace_intel_irq_exit(void *data, int vector) { char *vector_desc = (char *) data; osnoise_trace_irq_exit(vector, vector_desc); } /* * register_intel_irq_tp - Register intel specific IRQ entry tracepoints */ int osnoise_arch_register(void) { int ret; ret = register_trace_local_timer_entry(trace_intel_irq_entry, NULL); if (ret) goto out_err; ret = register_trace_local_timer_exit(trace_intel_irq_exit, "local_timer"); if (ret) goto out_timer_entry; #ifdef CONFIG_X86_THERMAL_VECTOR ret = register_trace_thermal_apic_entry(trace_intel_irq_entry, NULL); if (ret) goto out_timer_exit; ret = register_trace_thermal_apic_exit(trace_intel_irq_exit, "thermal_apic"); if (ret) goto out_thermal_entry; #endif /* CONFIG_X86_THERMAL_VECTOR */ #ifdef CONFIG_X86_MCE_AMD ret = register_trace_deferred_error_apic_entry(trace_intel_irq_entry, NULL); if (ret) goto out_thermal_exit; ret = register_trace_deferred_error_apic_exit(trace_intel_irq_exit, "deferred_error"); if (ret) goto out_deferred_entry; #endif #ifdef CONFIG_X86_MCE_THRESHOLD ret = register_trace_threshold_apic_entry(trace_intel_irq_entry, NULL); if (ret) goto out_deferred_exit; ret = register_trace_threshold_apic_exit(trace_intel_irq_exit, "threshold_apic"); if (ret) goto out_threshold_entry; #endif /* CONFIG_X86_MCE_THRESHOLD */ #ifdef CONFIG_SMP ret = register_trace_call_function_single_entry(trace_intel_irq_entry, NULL); if (ret) goto out_threshold_exit; ret = register_trace_call_function_single_exit(trace_intel_irq_exit, "call_function_single"); if (ret) goto out_call_function_single_entry; ret = register_trace_call_function_entry(trace_intel_irq_entry, NULL); if (ret) goto out_call_function_single_exit; ret = register_trace_call_function_exit(trace_intel_irq_exit, "call_function"); if (ret) goto out_call_function_entry; ret = register_trace_reschedule_entry(trace_intel_irq_entry, NULL); if (ret) goto out_call_function_exit; ret = register_trace_reschedule_exit(trace_intel_irq_exit, "reschedule"); if (ret) goto out_reschedule_entry; #endif /* CONFIG_SMP */ #ifdef CONFIG_IRQ_WORK ret = register_trace_irq_work_entry(trace_intel_irq_entry, NULL); if (ret) goto out_reschedule_exit; ret = register_trace_irq_work_exit(trace_intel_irq_exit, "irq_work"); if (ret) goto out_irq_work_entry; #endif ret = register_trace_x86_platform_ipi_entry(trace_intel_irq_entry, NULL); if (ret) goto out_irq_work_exit; ret = register_trace_x86_platform_ipi_exit(trace_intel_irq_exit, "x86_platform_ipi"); if (ret) goto out_x86_ipi_entry; ret = register_trace_error_apic_entry(trace_intel_irq_entry, NULL); if (ret) goto out_x86_ipi_exit; ret = register_trace_error_apic_exit(trace_intel_irq_exit, "error_apic"); if (ret) goto out_error_apic_entry; ret = register_trace_spurious_apic_entry(trace_intel_irq_entry, NULL); if (ret) goto out_error_apic_exit; ret = register_trace_spurious_apic_exit(trace_intel_irq_exit, "spurious_apic"); if (ret) goto out_spurious_apic_entry; return 0; out_spurious_apic_entry: unregister_trace_spurious_apic_entry(trace_intel_irq_entry, NULL); out_error_apic_exit: unregister_trace_error_apic_exit(trace_intel_irq_exit, "error_apic"); out_error_apic_entry: unregister_trace_error_apic_entry(trace_intel_irq_entry, NULL); out_x86_ipi_exit: unregister_trace_x86_platform_ipi_exit(trace_intel_irq_exit, "x86_platform_ipi"); out_x86_ipi_entry: unregister_trace_x86_platform_ipi_entry(trace_intel_irq_entry, NULL); out_irq_work_exit: #ifdef CONFIG_IRQ_WORK unregister_trace_irq_work_exit(trace_intel_irq_exit, "irq_work"); out_irq_work_entry: unregister_trace_irq_work_entry(trace_intel_irq_entry, NULL); out_reschedule_exit: #endif #ifdef CONFIG_SMP unregister_trace_reschedule_exit(trace_intel_irq_exit, "reschedule"); out_reschedule_entry: unregister_trace_reschedule_entry(trace_intel_irq_entry, NULL); out_call_function_exit: unregister_trace_call_function_exit(trace_intel_irq_exit, "call_function"); out_call_function_entry: unregister_trace_call_function_entry(trace_intel_irq_entry, NULL); out_call_function_single_exit: unregister_trace_call_function_single_exit(trace_intel_irq_exit, "call_function_single"); out_call_function_single_entry: unregister_trace_call_function_single_entry(trace_intel_irq_entry, NULL); out_threshold_exit: #endif #ifdef CONFIG_X86_MCE_THRESHOLD unregister_trace_threshold_apic_exit(trace_intel_irq_exit, "threshold_apic"); out_threshold_entry: unregister_trace_threshold_apic_entry(trace_intel_irq_entry, NULL); out_deferred_exit: #endif #ifdef CONFIG_X86_MCE_AMD unregister_trace_deferred_error_apic_exit(trace_intel_irq_exit, "deferred_error"); out_deferred_entry: unregister_trace_deferred_error_apic_entry(trace_intel_irq_entry, NULL); out_thermal_exit: #endif /* CONFIG_X86_MCE_AMD */ #ifdef CONFIG_X86_THERMAL_VECTOR unregister_trace_thermal_apic_exit(trace_intel_irq_exit, "thermal_apic"); out_thermal_entry: unregister_trace_thermal_apic_entry(trace_intel_irq_entry, NULL); out_timer_exit: #endif /* CONFIG_X86_THERMAL_VECTOR */ unregister_trace_local_timer_exit(trace_intel_irq_exit, "local_timer"); out_timer_entry: unregister_trace_local_timer_entry(trace_intel_irq_entry, NULL); out_err: return -EINVAL; } void osnoise_arch_unregister(void) { unregister_trace_spurious_apic_exit(trace_intel_irq_exit, "spurious_apic"); unregister_trace_spurious_apic_entry(trace_intel_irq_entry, NULL); unregister_trace_error_apic_exit(trace_intel_irq_exit, "error_apic"); unregister_trace_error_apic_entry(trace_intel_irq_entry, NULL); unregister_trace_x86_platform_ipi_exit(trace_intel_irq_exit, "x86_platform_ipi"); unregister_trace_x86_platform_ipi_entry(trace_intel_irq_entry, NULL); #ifdef CONFIG_IRQ_WORK unregister_trace_irq_work_exit(trace_intel_irq_exit, "irq_work"); unregister_trace_irq_work_entry(trace_intel_irq_entry, NULL); #endif #ifdef CONFIG_SMP unregister_trace_reschedule_exit(trace_intel_irq_exit, "reschedule"); unregister_trace_reschedule_entry(trace_intel_irq_entry, NULL); unregister_trace_call_function_exit(trace_intel_irq_exit, "call_function"); unregister_trace_call_function_entry(trace_intel_irq_entry, NULL); unregister_trace_call_function_single_exit(trace_intel_irq_exit, "call_function_single"); unregister_trace_call_function_single_entry(trace_intel_irq_entry, NULL); #endif #ifdef CONFIG_X86_MCE_THRESHOLD unregister_trace_threshold_apic_exit(trace_intel_irq_exit, "threshold_apic"); unregister_trace_threshold_apic_entry(trace_intel_irq_entry, NULL); #endif #ifdef CONFIG_X86_MCE_AMD unregister_trace_deferred_error_apic_exit(trace_intel_irq_exit, "deferred_error"); unregister_trace_deferred_error_apic_entry(trace_intel_irq_entry, NULL); #endif #ifdef CONFIG_X86_THERMAL_VECTOR unregister_trace_thermal_apic_exit(trace_intel_irq_exit, "thermal_apic"); unregister_trace_thermal_apic_entry(trace_intel_irq_entry, NULL); #endif /* CONFIG_X86_THERMAL_VECTOR */ unregister_trace_local_timer_exit(trace_intel_irq_exit, "local_timer"); unregister_trace_local_timer_entry(trace_intel_irq_entry, NULL); } #endif /* CONFIG_OSNOISE_TRACER && CONFIG_X86_LOCAL_APIC */
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with Cregit http://github.com/cregit/cregit
Version 2.0-RC1