Re: [PATCH] drm/amdgpu/display: make various arrays static, makes object smaller

From: Harry Wentland
Date: Tue Oct 08 2019 - 09:56:06 EST


On 2019-10-07 5:58 p.m., Colin King wrote:
> From: Colin Ian King <colin.king@xxxxxxxxxxxxx>
>
> Don't populate the arrays on the stack but instead make them
> static. Makes the object code smaller by 158 bytes.
>
> Before:
> text data bss dec hex filename
> 32468 2072 0 34540 86ec display/dc/bios/bios_parser.o
> 22198 1088 0 23286 5af6 display/dc/bios/bios_parser2.o
> 22278 1076 0 23354 5b3a display/dc/dce/dce_mem_input.o
>
> 81180
> After:
> text data bss dec hex filename
> 32341 2136 0 34477 86ad display/dc/bios/bios_parser.o
> 22070 1184 0 23254 5ad6 display/dc/bios/bios_parser2.o
> 22119 1172 0 23291 5afb display/dc/dce/dce_mem_input.o
>
> (gcc version 9.2.1, amd64)
>
> Signed-off-by: Colin Ian King <colin.king@xxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/amd/display/dc/bios/bios_parser.c | 2 +-
> drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c | 2 +-
> drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c b/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
> index 221e0f56389f..65ab225cf542 100644
> --- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
> +++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser.c
> @@ -2745,7 +2745,7 @@ static enum bp_result bios_get_board_layout_info(
> struct bios_parser *bp;
> enum bp_result record_result;
>
> - const unsigned int slot_index_to_vbios_id[MAX_BOARD_SLOTS] = {
> + static const unsigned int slot_index_to_vbios_id[MAX_BOARD_SLOTS] = {

Won't this break the multi-GPU case where you'll have multiple driver
instances with different layout?

Harry

> GENERICOBJECT_BRACKET_LAYOUT_ENUM_ID1,
> GENERICOBJECT_BRACKET_LAYOUT_ENUM_ID2,
> 0, 0
> diff --git a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
> index dff65c0fe82f..809c4a89b899 100644
> --- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
> +++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c
> @@ -1832,7 +1832,7 @@ static enum bp_result bios_get_board_layout_info(
> struct bios_parser *bp;
> enum bp_result record_result;
>
> - const unsigned int slot_index_to_vbios_id[MAX_BOARD_SLOTS] = {
> + static const unsigned int slot_index_to_vbios_id[MAX_BOARD_SLOTS] = {
> GENERICOBJECT_BRACKET_LAYOUT_ENUM_ID1,
> GENERICOBJECT_BRACKET_LAYOUT_ENUM_ID2,
> 0, 0
> diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> index 8aa937f496c4..ed0031d5e021 100644
> --- a/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> +++ b/drivers/gpu/drm/amd/display/dc/dce/dce_mem_input.c
> @@ -395,7 +395,7 @@ static void program_size_and_rotation(
> {
> const struct rect *in_rect = &plane_size->surface_size;
> struct rect hw_rect = plane_size->surface_size;
> - const uint32_t rotation_angles[ROTATION_ANGLE_COUNT] = {
> + static const uint32_t rotation_angles[ROTATION_ANGLE_COUNT] = {
> [ROTATION_ANGLE_0] = 0,
> [ROTATION_ANGLE_90] = 1,
> [ROTATION_ANGLE_180] = 2,
>