2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-18 02:24:21 +08:00
linux-next/arch
Jungseok Lee 9a5ad7d0e3 arm64: Add __exception_irq_entry definition for function graph
The gic_handle_irq() is defined with __exception_irq_entry attribute.
A single remaining work is to add its definition as ARM did. Below
shows how function graph data is changed with these hunks.

A prologue of an interrupt handler is drawn as follows.

- current status

 0)   0.208 us    |  cpuidle_not_available();
 0)               |  default_idle_call() {
 0)               |    arch_cpu_idle() {
 0)               |      __handle_domain_irq() {
 0)               |        irq_enter() {
 0)   0.313 us    |          rcu_irq_enter();
 0)   0.261 us    |          __local_bh_disable_ip();

- with this change

 0)   0.625 us    |  cpuidle_not_available();
 0)               |  default_idle_call() {
 0)               |    arch_cpu_idle() {
 0)   ==========> |
 0)               |      gic_handle_irq() {
 0)               |        __handle_domain_irq() {
 0)               |          irq_enter() {
 0)   0.885 us    |            rcu_irq_enter();
 0)   0.781 us    |            __local_bh_disable_ip();

An epilogue of an interrupt handler is recorded as follows.

- current status

 0)   0.261 us    |          idle_cpu();
 0)               |          rcu_irq_exit() {
 0)   0.521 us    |            rcu_eqs_enter_common.isra.46();
 0)   2.552 us    |          }
 0) ! 322.448 us  |        }
 0) ! 583.437 us  |      }
 0) # 1656.041 us |    }
 0) # 1658.073 us |  }

- with this change

 0)   0.677 us    |            idle_cpu();
 0)               |            rcu_irq_exit() {
 0)   1.770 us    |              rcu_eqs_enter_common.isra.46();
 0)   7.968 us    |            }
 0) # 1803.541 us |          }
 0) # 2626.667 us |        }
 0) # 2632.969 us |      }
 0)   <========== |
 0) # 14425.00 us |    }
 0) # 14430.98 us |  }

Cc: AKASHI Takahiro <takahiro.akashi@linaro.org>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Rabin Vincent <rabin@rab.in>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Jungseok Lee <jungseoklee85@gmail.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2015-08-12 17:23:45 +01:00
..
alpha atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
arc atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
arm atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
arm64 arm64: Add __exception_irq_entry definition for function graph 2015-08-12 17:23:45 +01:00
avr32 atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
blackfin atomic: Replace atomic_{set,clear}_mask() usage 2015-07-27 14:06:24 +02:00
c6x mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
cris mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
frv atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
h8300 atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
hexagon atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
ia64 atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
m32r atomic: Replace atomic_{set,clear}_mask() usage 2015-07-27 14:06:24 +02:00
m68k atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
metag atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
microblaze mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
mips atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
mn10300 atomic: Replace atomic_{set,clear}_mask() usage 2015-07-27 14:06:24 +02:00
nios2 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
openrisc mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
parisc atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
powerpc atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
s390 atomic: Replace atomic_{set,clear}_mask() usage 2015-07-27 14:06:24 +02:00
score mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
sh atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
sparc atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
tile atomic: Provide atomic_{or,xor,and} 2015-07-27 14:06:24 +02:00
um mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
unicore32 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
x86 atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
xtensa atomic: Collapse all atomic_{set,clear}_mask definitions 2015-07-27 14:06:24 +02:00
.gitignore
Kconfig x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86 2015-07-18 03:42:51 +02:00