Ingo Molnar
a4234bfcf4
perf_events: Optimize the swcounter hotpath
The structure init creates a bit memcpy, which shows
up big time in perf annotate output:
: ffffffff810a859d <__perf_sw_event>:
1.68 : ffffffff810a859d: 55 push %rbp
1.69 : ffffffff810a859e: 41 89 fa mov %edi,%r10d
0.01 : ffffffff810a85a1: 49 89 c9 mov %rcx,%r9
0.00 : ffffffff810a85a4: 31 c0 xor %eax,%eax
1.71 : ffffffff810a85a6: b9 16 00 00 00 mov $0x16,%ecx
0.00 : ffffffff810a85ab: 48 89 e5 mov %rsp,%rbp
0.00 : ffffffff810a85ae: 48 83 ec 60 sub $0x60,%rsp
1.52 : ffffffff810a85b2: 48 8d 7d a0 lea -0x60(%rbp),%rdi
85.20 : ffffffff810a85b6: f3 ab rep stos %eax,%es:(%rdi)
None of the callees depends on the structure being pre-initialized,
so only initialize ->addr. This gets rid of the memcpy overhead.
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-11-23 11:48:27 +01:00
..
2009-09-21 14:29:21 +02:00
2009-11-07 21:44:45 +01:00
2009-11-03 11:03:09 +01:00
2009-10-11 11:20:58 -07:00
2009-11-22 09:03:42 +01:00
2009-08-24 11:33:40 +10:00
2009-06-08 12:31:53 -07:00
2009-06-24 00:02:38 -04:00
2009-09-24 03:50:25 -04:00
2009-09-24 03:50:26 -04:00
2009-06-24 00:02:38 -04:00
2009-06-24 00:00:52 -04:00
2009-09-24 03:50:26 -04:00
2009-09-24 07:20:58 -07:00
2009-10-29 07:39:25 -07:00
2009-04-30 19:24:24 +02:00
2009-09-15 09:19:38 -07:00
2009-09-24 07:20:58 -07:00
2009-09-23 11:02:26 -07:00
2009-09-18 09:48:52 -07:00
2009-03-31 23:00:27 -04:00
2009-11-21 14:07:23 +01:00
2009-04-05 11:04:19 -07:00
2009-11-03 07:52:39 -08:00
2009-07-18 14:19:53 +02:00
2009-08-10 15:41:12 +02:00
2009-10-28 20:34:34 +01:00
2009-06-16 19:47:48 -07:00
2009-10-05 12:04:16 -07:00
2009-09-24 07:21:04 -07:00
2009-11-22 09:03:43 +01:00
2009-08-29 14:10:07 +02:00
2009-11-10 11:23:29 +01:00
2009-07-29 19:10:34 -07:00
2009-09-19 13:13:17 -07:00
2009-05-15 07:56:24 -05:00
2009-09-23 18:12:10 -07:00
2009-10-17 09:58:25 +02:00
2009-11-03 07:25:00 +01:00
2009-07-24 10:53:29 +02:00
2009-09-23 07:39:29 -07:00
2009-11-13 10:48:27 +01:00
2009-11-23 10:19:20 +01:00
2009-10-01 16:11:11 -07:00
2009-10-11 11:20:58 -07:00
2009-06-11 17:55:42 +02:00
2009-08-30 03:08:26 +02:00
2009-09-24 07:20:58 -07:00
2009-06-18 13:03:56 -07:00
2009-10-08 12:16:35 -07:00
2009-10-29 08:56:20 +10:30
2009-11-23 11:48:27 +01:00
2009-09-24 07:21:04 -07:00
2009-09-22 07:17:38 -07:00
2009-08-29 14:10:07 +02:00
2009-08-21 21:43:46 +02:00
2009-09-23 07:39:28 -07:00
2009-09-20 20:15:40 +02:00
2009-09-24 07:20:59 -07:00
2009-10-07 08:11:20 +02:00
2009-09-23 19:46:30 +02:00
2009-10-15 20:33:01 +02:00
2009-10-07 08:11:20 +02:00
2009-11-02 16:06:21 +01:00
2009-11-02 16:06:21 +01:00
2009-09-27 11:39:25 -07:00
2009-10-01 16:11:13 -07:00
2009-09-23 07:39:41 -07:00
2009-04-06 11:14:02 +02:00
2009-08-06 05:50:21 +02:00
2009-09-30 22:56:10 +02:00
2009-08-02 14:26:09 +02:00
2009-09-17 10:17:25 +02:00
2009-10-23 23:48:28 +02:00
2009-09-17 10:17:25 +02:00
2009-09-21 09:53:55 +02:00
2009-09-21 09:53:55 +02:00
2009-11-08 13:15:48 +01:00
2009-09-24 07:21:01 -07:00
2009-09-24 07:21:04 -07:00
2009-09-24 09:34:47 +09:30
2009-09-17 15:53:44 -04:00
2009-09-24 07:21:04 -07:00
2009-08-31 18:08:50 +02:00
2009-09-24 15:13:11 -07:00
2009-10-29 08:20:00 -07:00
2009-10-29 07:39:30 -07:00
2009-09-24 07:53:22 -07:00
2009-07-12 14:03:27 -07:00
2009-09-15 10:17:30 +02:00
2009-09-23 09:46:15 -07:00
2009-09-21 15:14:55 +02:00
2009-09-23 18:13:10 -07:00
2009-11-02 16:02:39 +01:00
2009-09-24 07:21:04 -07:00
2009-06-18 13:03:55 -07:00
2009-08-10 14:43:09 +02:00
2009-10-29 08:20:00 -07:00