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-20 16:23:53 +10:00
2015-05-15 15:24:41 +10:00
2015-03-16 16:10:42 +01:00
2015-04-01 08:28:15 +10:00
2015-04-16 08:33:30 +10:00
2015-02-16 15:48:00 -08:00
2015-04-21 14:47:16 +05:30
2015-04-07 17:06:41 +02:00
2015-05-25 15:34:00 +03:00
2015-05-20 16:23:53 +10:00
2015-04-16 08:33:30 +10:00
2015-04-07 17:06:41 +02:00
2015-04-20 13:05:20 +10:00
2015-04-16 08:34:24 +10:00
2015-04-21 14:47:16 +05:30
2015-04-02 19:04:15 +02:00
2015-05-07 13:09:25 +10:00
2015-05-28 14:52:40 -04:00
2015-05-25 15:34:13 +03:00
2015-04-20 09:02:31 +08:00
2015-03-19 13:35:16 +01:00
2015-05-08 20:56:34 +10:00
2015-04-21 14:47:16 +05:30
2015-04-21 14:47:16 +05:30
2015-04-02 09:21:48 +10:00
2015-04-01 08:23:25 +10:00
2015-05-20 09:19:58 +10:00
2015-05-18 16:39:41 +02:00
2015-05-05 09:45:57 +02:00
2015-03-13 17:37:35 +01:00
2015-05-07 11:03:02 +02:00
2015-05-20 09:19:58 +10:00
2015-04-20 09:29:41 -07:00
2015-03-24 11:12:20 +10:00
2015-05-05 09:46:38 +02:00
2015-05-08 13:03:46 +02:00
2015-05-20 09:19:58 +10:00
2015-03-11 22:08:07 +01:00
2015-04-07 18:11:25 +02:00
2015-05-13 11:28:22 +02:00
2015-05-05 09:45:57 +02:00
2015-03-13 17:37:35 +01:00
2015-05-05 09:45:57 +02:00
2015-03-13 17:37:35 +01:00
2015-03-31 09:18:40 +02:00
2015-05-11 06:02:38 +10:00
2015-03-16 06:28:50 +10:00
2015-03-23 16:22:30 +01:00
2015-05-05 09:26:43 +02:00
2015-04-08 11:14:25 +02:00
2015-03-13 17:37:35 +01:00
2015-04-07 18:11:25 +02:00
2015-05-12 11:02:50 +02:00
2015-05-07 13:02:39 +10:00
2015-05-12 19:15:53 +02:00
2015-04-07 12:29:23 -04:00
2015-03-13 17:37:35 +01:00
2015-04-02 09:21:48 +10:00
2015-05-13 11:28:22 +02:00