Denys Vlasenko
9e5acbc213
radeon: Deinline indirect register accessor functions
This patch deinlines indirect register accessor functions.
These functions perform two mmio accesses, framed by spin lock/unlock.
Spin lock/unlock by itself takes more than 50 cycles in ideal case
(if lock is exclusively cached on current CPU).
With this .config: http://busybox.net/~vda/kernel_config,
after uninlining these functions have sizes and callsite counts
as follows:
r600_uvd_ctx_rreg: 111 bytes, 4 callsites
r600_uvd_ctx_wreg: 113 bytes, 5 callsites
eg_pif_phy0_rreg: 106 bytes, 13 callsites
eg_pif_phy0_wreg: 108 bytes, 13 callsites
eg_pif_phy1_rreg: 107 bytes, 13 callsites
eg_pif_phy1_wreg: 108 bytes, 13 callsites
rv370_pcie_rreg: 111 bytes, 21 callsites
rv370_pcie_wreg: 113 bytes, 24 callsites
r600_rcu_rreg: 111 bytes, 16 callsites
r600_rcu_wreg: 113 bytes, 25 callsites
cik_didt_rreg: 106 bytes, 10 callsites
cik_didt_wreg: 107 bytes, 10 callsites
tn_smc_rreg: 106 bytes, 126 callsites
tn_smc_wreg: 107 bytes, 116 callsites
eg_cg_rreg: 107 bytes, 20 callsites
eg_cg_wreg: 108 bytes, 52 callsites
Functions r100_mm_rreg() and r100_mm_rreg() have a fast path and
a locked (slow) path. This patch deinlines only slow path.
r100_mm_rreg_slow: 78 bytes, 2083 callsites
r100_mm_wreg_slow: 81 bytes, 3570 callsites
Reduction in code size is more than 65,000 bytes:
text data bss dec hex filename
85740176 22294680 20627456 128662312 7ab3b28 vmlinux.before
85674192 22294776 20627456 128598664 7aa4288 vmlinux
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Christian König <christian.koenig@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2015-05-28 14:52:40 -04:00
..
2015-05-15 00:31:23 +02:00
2015-04-02 10:03:55 +01:00
2015-05-11 10:54:20 -07:00
2015-04-26 17:22:07 -07:00
2015-04-17 15:50:54 -04:00
2015-05-08 19:49:35 -07:00
2015-04-30 01:05:30 +02:00
2015-05-07 18:29:18 +02:00
2015-05-05 19:37:22 -05:00
2015-04-22 09:20:15 -07:00
2015-04-24 08:23:45 -07:00
2015-04-15 23:02:24 +02:00
2015-04-29 15:19:21 +02:00
2015-04-26 13:51:05 -07:00
2015-04-29 16:47:57 +05:30
2015-04-21 14:47:16 +05:30
2015-04-27 11:06:05 +09:00
2015-05-14 18:02:15 -07:00
2015-05-06 15:19:38 +02:00
2015-05-28 14:52:40 -04:00
2015-04-14 18:25:15 -07:00
2015-04-05 14:45:27 +02:00
2015-04-03 16:20:12 +02:00
2015-04-17 09:03:55 -04:00
2015-04-21 09:42:58 -07:00
2015-04-26 17:44:09 -07:00
2015-05-11 10:54:20 -07:00
2015-04-14 20:21:54 -07:00
2015-05-13 11:51:14 -07:00
2015-05-12 15:52:37 -04:00
2015-04-26 13:36:02 -07:00
2015-05-11 18:36:20 +02:00
2015-05-13 10:46:07 +02:00
2015-04-15 09:00:47 -07:00
2015-04-18 08:22:10 -04:00
2015-04-22 10:55:06 -07:00
2015-04-07 13:25:14 +10:00
2015-04-03 16:15:30 +02:00
2015-05-11 10:33:31 -07:00
2015-05-05 08:42:06 -07:00
2015-04-22 09:18:17 -07:00
2015-04-17 09:04:09 -04:00
2015-04-26 13:36:02 -07:00
2015-04-21 09:42:58 -07:00
2015-05-08 08:55:47 +02:00
2015-05-18 10:01:54 -07:00
2015-05-12 23:22:03 -04:00
2015-04-07 12:05:12 +02:00
2015-04-24 08:46:18 -07:00
2015-04-26 17:22:07 -07:00
2015-04-24 13:45:54 +02:00
2015-04-16 14:01:03 -05:00
2015-04-22 09:04:39 -07:00
2015-04-13 17:07:21 -07:00
2015-05-08 19:42:59 -07:00
2015-05-05 13:56:46 -07:00
2015-04-14 20:21:54 -07:00
2015-05-01 23:01:48 +02:00
2015-04-15 23:06:16 +02:00
2015-04-23 14:50:52 +02:00
2015-04-14 17:29:55 -07:00
2015-05-14 17:55:51 -07:00
2015-04-23 16:55:50 +02:00
2015-04-15 16:35:23 -07:00
2015-04-27 10:10:19 -07:00
2015-04-27 13:08:14 +09:00
2015-04-14 00:43:28 +02:00
2015-05-11 17:29:49 +01:00
2015-04-03 16:15:30 +02:00
2015-04-17 15:50:54 -04:00
2015-05-16 21:04:56 -07:00
2015-04-24 10:22:09 -07:00
2015-05-09 13:36:57 +08:00
2015-05-16 21:10:05 -07:00
2015-04-03 16:04:21 +02:00
2015-05-14 12:43:36 -07:00
2015-05-01 16:31:41 -06:00
2015-04-24 10:22:09 -07:00
2015-04-20 15:16:25 -07:00
2015-04-15 12:41:14 +09:30
2015-04-22 11:22:55 -07:00
2015-05-06 15:02:58 +01:00
2015-04-03 16:17:04 +02:00