Skip to content

Large bump in T13701 metrics on x86_64-deb9-dwarf

While looking into various perf test failures and whether they were due to some variance/noise or an actual change of behaviour in GHC, I stumbled upon a failure due to T13701, at https://gitlab.haskell.org/ghc/ghc/-/jobs/187105.

x86_64-linux-deb9-dwarf	T13701	normal	compile_time/bytes allocated	2506087488 [MetricChange.Increase from (x86_64-linux-deb9-dwarf, T13701, normal, compile_time/bytes allocated, 2440327316.0) @ HEAD~4]

I naturally looked at the evolution of this metric, over the past 200 commits, for this particular environment. Graph here

We can see a clear bump in allocated bytes, located around the commit that triggered the job, fd66fffd. (You can check by hovering your mouse on the first dot that appears at the top of the "hill", you should see the commit message associated to fd66fffd in a tiny rectangle at the top left corner of the page.)

If we look at the actual numbers and associated commits, we definitely confirm the bump and that it happened somewhere in those 4 commits that list at the end of this snippet:

$ python3 testsuite/driver/perf_notes.py --ci --test-name "T13701" --test-env x86_64-linux-deb9-dwarf  master~20..master
                                                                  T13701
                                            compile_time/bytes allocated
                                                                  normal
                                    Commit       x86_64-linux-deb9-dwarf
--------------------------------------------------------------------------
  214d81220d89ba76350a0eefa837c90797298595                 2444131192.00
  70b62c97622f6527cf606af052fb1f0f14783b28                              
  c6759080a91804266feb0e4e3a2c614f330649f5                 2444287704.00
  35c99e720ddbb3ce1355d63c9fb68ef156b9f586                 2444214664.00
  d2471964ef06219811c03c2ed0710f9ff98e97ef                 2444140872.00
  1e2e82aaaebec837368708b82f62b3c41932e88e                 2444179760.00
  51067194e03849eb0c04e1dbaf829972ea64be53                              
  c751082ca0946f8686453fa2a775809fd027c9c7                              
  dab12c8780fe1e6e3c2adb1c9565e2a43aa207db                 2509607048.00
  c9236384e5aaa50e188f2b8549d61c0a20d1af86                 2510050656.00
  a4ce26e0dbbd736b4106c3d30979ae0058922a06                 2509599096.00
  cabafe34156acb80cd9a918363b2a342fb0c8e66                 2509986704.00
  4a6d3d68f2ce97c1f231eede3819299a0fd2b9c8                 2511973568.00
  01006bc79582616c9bbc842b397e85437a57ac18                              
  9980fb58f613ee3363c7e4cb86453e542c6c69aa                 2511859140.00
  182b119943d34e82f67525c4b2390557f060c5f9                              
  3c9161621c6e467f53c5d4649a3c54b3cb40fbf9                 2511626034.67
  3b65655c4cef5407829ed41707c48be2f8b3b340                 2511535144.00
  5d4f16eed151caddf4624ff0a1fc23d5a4475957                 2511486544.00
  120f2e5343d5ccd3ad117d530018b75302c6482b                 2512168400.00

$ git log --oneline  d2471964ef06219811c03c2ed0710f9ff98e97ef..dab12c8780fe1e6e3c2adb1c9565e2a43aa207db
dab12c8780 Describe optimisation of demand analysis of noinline
c751082ca0 testsuite: Make ExplicitForAllRules1 more robust
51067194e0 base: Ensure that failIO isn't SOURCE imported
1e2e82aaae Fix a bad error in tcMatchTy

I will try to figure out which commit is to blame (quite likely 51067194, since the two commits that come after don't seem to touch something that can affect the compiler) and why.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information