Remove unused failed_promotions field. Re-align sync field.
Previously sync was at offset 272, now it's at 192 (aligned to
|No Unit Test Coverage|
|Build 48926: [GHC] Linux/amd64: Continuous Integration|
|Build 48925: [GHC] OSX/amd64: Continuous Integration|
|Build 48924: [GHC] Windows/amd64: Continuous Integration|
|Build 48923: arc lint + arc unit|
The purpose of the padding is to ensure that sync is on a different cache line from some of the other fields, otherwise one thread spinning on the lock will interfere with other threads modifying other fields of the struct.
So the padding is not there for alignment, it's there for cache line separation. I requested changes because I think this diff might be a regression (but this is complicated, different CPUs have different cache line sizes, and it's likely quite hard to measure the difference)