drm/amdgpu/display: make various arrays static, makes object smaller

Submitted by Colin Ian King on Oct. 7, 2019, 9:58 p.m.

Details

Message ID 20191007215857.14720-1-colin.king@canonical.com
State New
Headers show
Series "drm/amdgpu/display: make various arrays static, makes object smaller" ( rev: 1 ) in DRI devel

Not browsing as part of any series.

Commit Message

Colin Ian King Oct. 7, 2019, 9:58 p.m.
From: Colin Ian King <colin.king@canonical.com>

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@canonical.com>
---
 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(-)

Patch hide | download patch | download mbox

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] = {
 		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,

Comments

On 2019-10-07 5:58 p.m., Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>

> 

> 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@canonical.com>

> ---

>  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,

>
On Tue, 2019-10-08 at 13:56 +0000, Harry Wentland wrote:
[]
> > diff --git 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?

As the array is read-only, how could that happen?
On 2019-10-08 10:00 a.m., Joe Perches wrote:
> On Tue, 2019-10-08 at 13:56 +0000, Harry Wentland wrote:

> []

>>> diff --git 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?

> 

> As the array is read-only, how could that happen?

> 


You're right.

Patch is
Reviewed-by: Harry Wentland <harry.wentland@amd.com>


Harry

>