mbox series

[0/5] drm/amd/display: FPU cleanup in clk_mgr files for powerpc

Message ID 20220720193208.1131493-1-mwen@igalia.com (mailing list archive)
Headers show
Series drm/amd/display: FPU cleanup in clk_mgr files for powerpc | expand

Message

Melissa Wen July 20, 2022, 7:32 p.m. UTC
An initial report from Guenter[1] shows some soft-fp vs hard-fp error
from DCN31 clk mgr for powerpc. I was not able to reproduce it
cross-compiling with gcc-powerpc-linux-gnu and gcc-11.3, but thanks to
Maíra tips, I can reproduce the issue using make.cross, as follows:

- wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
- chmod +x ~/bin/make.cross
- mkdir build_dir
- COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 ~/make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash

with a config file generate by allmodconfig

So, the first patch fix the issue reported by Guenter. The second is
just a cleanup in dcn31_resource file to remove useless DC_FP_ wrapper.
Finally, the last three patches I'm removing the -mno-gnu-attribute
option, that was just hiding FPU-associated code in clk mgr files of
dcn21/30/301, and moving them to DML folder. This series doesn't cover
recent drivers dcn32/314.

Thanks Guenter, Maíra, Siqueira and Alex for all inputs on this
debugging process. Let me know your thoughts on this approach.

Melissa

[1] https://lore.kernel.org/amd-gfx/20220618232737.2036722-1-linux@roeck-us.net/

Melissa Wen (5):
  drm/amd/display: fix soft-fp vs hard-fp on DCN 3.1 family for powerpc
  drm/amd/display: remove useless FPU protection wrapper from
    dcn31_resource file
  drm/amd/display: move FPU code on dcn21 clk_mgr
  drm/amd/display: move FPU code from dcn30 clk mgr to DML folder
  drm/amd/display: move FPU code from dcn301 clk mgr to DML folder

 .../gpu/drm/amd/display/dc/clk_mgr/Makefile   |  18 --
 .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 234 +----------------
 .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.h |   7 +
 .../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c  |  63 +----
 .../display/dc/clk_mgr/dcn301/vg_clk_mgr.c    |  86 +------
 .../display/dc/clk_mgr/dcn301/vg_clk_mgr.h    |   3 +
 .../drm/amd/display/dc/dcn31/dcn31_resource.c |  11 +-
 .../amd/display/dc/dcn315/dcn315_resource.c   |   5 +-
 .../amd/display/dc/dcn316/dcn316_resource.c   |   5 +-
 .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c  | 235 ++++++++++++++++++
 .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.h  |   2 +
 .../drm/amd/display/dc/dml/dcn30/dcn30_fpu.c  |  63 ++++-
 .../drm/amd/display/dc/dml/dcn30/dcn30_fpu.h  |   1 +
 .../amd/display/dc/dml/dcn301/dcn301_fpu.c    |  74 ++++++
 .../drm/amd/display/dc/dml/dcn31/dcn31_fpu.c  |  11 +
 .../drm/amd/display/dc/dml/dcn31/dcn31_fpu.h  |   3 +
 16 files changed, 423 insertions(+), 398 deletions(-)

Comments

Rodrigo Siqueira Jordao July 21, 2022, 7:07 p.m. UTC | #1
On 2022-07-20 15:32, Melissa Wen wrote:
> An initial report from Guenter[1] shows some soft-fp vs hard-fp error
> from DCN31 clk mgr for powerpc. I was not able to reproduce it
> cross-compiling with gcc-powerpc-linux-gnu and gcc-11.3, but thanks to
> Maíra tips, I can reproduce the issue using make.cross, as follows:
> 
> - wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> - chmod +x ~/bin/make.cross
> - mkdir build_dir
> - COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 ~/make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash

Hi Melissa,

I didn't know about these steps, I was trying to reproduce this issue by 
using the standard cross compile package provided by my distro (Debian 
testing and ArchLinux), and as a result, I was never able to see the 
problem. Anyway, I can now reproduce this issue, thanks a lot.

> with a config file generate by allmodconfig
> 
> So, the first patch fix the issue reported by Guenter. The second is
> just a cleanup in dcn31_resource file to remove useless DC_FP_ wrapper.
> Finally, the last three patches I'm removing the -mno-gnu-attribute
> option, that was just hiding FPU-associated code in clk mgr files of
> dcn21/30/301, and moving them to DML folder. This series doesn't cover
> recent drivers dcn32/314.

I validated this series in our internal CI by running multiple IGT tests 
in numerous ASICs. Tomorrow we will also send some extra patches 
associated with this FPU effort; hopefully, after that, we will finally 
have all the FPU code under DML. Again, thanks a lot for your effort!

Thanks
Siqueira

> Thanks Guenter, Maíra, Siqueira and Alex for all inputs on this
> debugging process. Let me know your thoughts on this approach.
> 
> Melissa
> 
> [1] https://lore.kernel.org/amd-gfx/20220618232737.2036722-1-linux@roeck-us.net/>> 
> Melissa Wen (5):
>    drm/amd/display: fix soft-fp vs hard-fp on DCN 3.1 family for powerpc
>    drm/amd/display: remove useless FPU protection wrapper from
>      dcn31_resource file
>    drm/amd/display: move FPU code on dcn21 clk_mgr
>    drm/amd/display: move FPU code from dcn30 clk mgr to DML folder
>    drm/amd/display: move FPU code from dcn301 clk mgr to DML folder
> 
>   .../gpu/drm/amd/display/dc/clk_mgr/Makefile   |  18 --
>   .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.c | 234 +----------------
>   .../amd/display/dc/clk_mgr/dcn21/rn_clk_mgr.h |   7 +
>   .../display/dc/clk_mgr/dcn30/dcn30_clk_mgr.c  |  63 +----
>   .../display/dc/clk_mgr/dcn301/vg_clk_mgr.c    |  86 +------
>   .../display/dc/clk_mgr/dcn301/vg_clk_mgr.h    |   3 +
>   .../drm/amd/display/dc/dcn31/dcn31_resource.c |  11 +-
>   .../amd/display/dc/dcn315/dcn315_resource.c   |   5 +-
>   .../amd/display/dc/dcn316/dcn316_resource.c   |   5 +-
>   .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.c  | 235 ++++++++++++++++++
>   .../drm/amd/display/dc/dml/dcn20/dcn20_fpu.h  |   2 +
>   .../drm/amd/display/dc/dml/dcn30/dcn30_fpu.c  |  63 ++++-
>   .../drm/amd/display/dc/dml/dcn30/dcn30_fpu.h  |   1 +
>   .../amd/display/dc/dml/dcn301/dcn301_fpu.c    |  74 ++++++
>   .../drm/amd/display/dc/dml/dcn31/dcn31_fpu.c  |  11 +
>   .../drm/amd/display/dc/dml/dcn31/dcn31_fpu.h  |   3 +
>   16 files changed, 423 insertions(+), 398 deletions(-)
>