ARM-software / bsa-acs

Arm SystemReady : BSA Architecture Compliance Suite
Apache License 2.0
16 stars 42 forks source link

Test case 830 hangs in an endless loop with any GCC optimization enabled #47

Closed robbiek-xsl closed 2 years ago

robbiek-xsl commented 2 years ago

The BSA (and SBSA equivalent) both hang in an endless loop unless compiler optimization is completely disabled. These tests use a very questionable programming technique of taking the address of a C label and having the exception handler return to that address. With optimization enabled GCC is free to do whatever it wants with the code flow including possibly duplicating code paths, etc.

The general GCC issue is discussed in this thread for instance:

https://stackoverflow.com/questions/6127563/label-moving-after-optimization-is-turned-on-in-gcc

At a minimum I would suggest specifically disabling optimization in bsa-acs/uefi_app/BsaAcs.inf.


       Received exception of type: 0
       Calculated config address is 69400004 pal_mmio_read Address = 69400004  Data = 100004 
 pal_mmio_write Address = 69400004  Data = 100004 

       Calculated config address is 69400034 pal_mmio_read Address = 69400034  Data = 48 

       Calculated config address is 69400048 pal_mmio_read Address = 69400048  Data = 424010 

       Calculated config address is 69400050 pal_mmio_read Address = 69400050  Data = 2000 
 pal_mmio_write Address = 69400050  Data = 2000 

       Calculated config address is 69400034 pal_mmio_read Address = 69400034  Data = 48 

       Calculated config address is 69400048 pal_mmio_read Address = 69400048  Data = 424010 

       Calculated config address is 69400050 pal_mmio_read Address = 69400050  Data = 2000 
 pal_mmio_write Address = 69400050  Data = 82000 

       Calculated config address is 69400004 pal_mmio_read Address = 69400004  Data = 100004 
 pal_mmio_write Address = 69400004  Data = 100004 

       Received exception of type: 0
       Calculated config address is 69400004 pal_mmio_read Address = 69400004  Data = 100004 
 pal_mmio_write Address = 69400004  Data = 100004 

       Calculated config address is 69400034 pal_mmio_read Address = 69400034  Data = 48 

       Calculated config address is 69400048 pal_mmio_read Address = 69400048  Data = 424010 

       Calculated config address is 69400050 pal_mmio_read Address = 69400050  Data = 2000 
 pal_mmio_write Address = 69400050  Data = 2000 

       Calculated config address is 69400034 pal_mmio_read Address = 69400034  Data = 48 

       Calculated config address is 69400048 pal_mmio_read Address = 69400048  Data = 424010 

       Calculated config address is 69400050 pal_mmio_read Address = 69400050  Data = 2000 
 pal_mmio_write Address = 69400050  Data = 82000 

       Calculated config address is 69400004 pal_mmio_read Address = 69400004  Data = 100004 
 pal_mmio_write Address = 69400004  Data = 100004 ```
chetan-rathore commented 2 years ago

Thanks @robbiek-xsl for your input.

We are checking the issue on our side.

Thanks, ACS team

chetan-rathore commented 2 years ago

Hi @robbiek-xsl,

Can you let us know if the RELEASE build was compiled at your end? At our end by default, DEBUG build gets complied in which the compiler optimization is disabled.

We will explicitly make changes to disable the optimization.

Thanks, ACS Team

robbiek-xsl commented 2 years ago

Hi,

Good point, so far we've been running with DEBUG only. Thanks for your help!

From: chetan singh rathore @.> Sent: Tuesday, August 30, 2022 8:57 AM To: ARM-software/bsa-acs @.> Cc: Robbie King @.>; Mention @.> Subject: Re: [ARM-software/bsa-acs] Test case 830 hangs in an endless loop with any GCC optimization enabled (Issue #47)

Hi @robbiek-xslhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Frobbiek-xsl&data=05%7C01%7Crobbiek%40xsightlabs.com%7Cdc29a0964aaa40852fb108da8a872458%7C646a3e3483ea42739177ab01923abaa9%7C0%7C0%7C637974610302886004%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5Q44HtP3NxlwjRRfwvWCCRwa%2FLnhHvUyq0A6RBIz2FE%3D&reserved=0,

Can you let us know if the RELEASE build was compiled at your end? At our end by default, DEBUG build gets complied in which the compiler optimization is disabled.

We will explicitly make changes to disable the optimization.

Thanks, ACS Team

- Reply to this email directly, view it on GitHubhttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FARM-software%2Fbsa-acs%2Fissues%2F47%23issuecomment-1231630147&data=05%7C01%7Crobbiek%40xsightlabs.com%7Cdc29a0964aaa40852fb108da8a872458%7C646a3e3483ea42739177ab01923abaa9%7C0%7C0%7C637974610302886004%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=umul2fB0%2BN0J3DGADgTpgenkG8g2TQUXYIsARtrA8qM%3D&reserved=0, or unsubscribehttps://eur02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FA2UUKHQKL24K65QB4SUIDPLV3YAKBANCNFSM57L4D7TA&data=05%7C01%7Crobbiek%40xsightlabs.com%7Cdc29a0964aaa40852fb108da8a872458%7C646a3e3483ea42739177ab01923abaa9%7C0%7C0%7C637974610302886004%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=1hLZpcuDhu8%2FgQePMGrSsv5mXzbsbn7GDsUlup6w7KA%3D&reserved=0. You are receiving this because you were mentioned.Message ID: @.**@.>>

chetan-rathore commented 2 years ago

Hi, @robbiek-xsl,

We have enforced disabling compiler optimization in the BSA and SBSA inf.

Thanks, ACS team