Re: [commit: ghc] master: Revert "Per-thread allocation counters and limits" (f0fcc41)

Hello Simon, I'm sorry to disturb you, but I've noticed that your revert patch below contains this change: diff --git a/includes/CodeGen.Platform.hs b/includes/CodeGen.Platform.hs index f3abb3d..3d6dd41 100644 --- a/includes/CodeGen.Platform.hs +++ b/includes/CodeGen.Platform.hs @@ -741,8 +741,10 @@ globalRegMaybe CurrentTSO = Just (RealRegSingle REG_CurrentTSO) # ifdef REG_CurrentNursery globalRegMaybe CurrentNursery = Just (RealRegSingle REG_CurrentNursery) # endif -#endif globalRegMaybe _ = Nothing +#else +globalRegMaybe = panic "globalRegMaybe not defined for this platform" +#endif and I'm not sure if this is intentional or just overlooked addition. The problem with this line is that it causes stage1 panic on unregisterised build on PPC64 platform: http://haskell.inf.elte.hu/builders/linux-ppc64-head/41/10.html and we have not had such panic before the patch: http://haskell.inf.elte.hu/builders/linux-ppc64-head/31/10.html -- well, you see that dll-split segfaults, but at least ghc-stage1 is proved to work well here. Kudos to Gabor Pali who spotted this on PPC64 builder... Thanks! Karel On 05/ 4/14 11:45 PM, git@git.haskell.org wrote:
Repository : ssh://git@git.haskell.org/ghc
On branch : master Link : http://ghc.haskell.org/trac/ghc/changeset/f0fcc41d755876a1b02d1c7c79f5751505...
---------------------------------------------------------------
commit f0fcc41d755876a1b02d1c7c79f57515059f6417 Author: Simon Marlow
Date: Sun May 4 20:27:42 2014 +0100 Revert "Per-thread allocation counters and limits"
Problems were found on 32-bit platforms, I'll commit again when I have a fix.
This reverts the following commits: 54b31f744848da872c7c6366dea840748e01b5cf b0534f78a73f972e279eed4447a5687bd6a8308e
---------------------------------------------------------------
f0fcc41d755876a1b02d1c7c79f57515059f6417 compiler/cmm/CmmLayoutStack.hs | 9 +- compiler/codeGen/StgCmmForeign.hs | 268 ++++++--------------- includes/CodeGen.Platform.hs | 4 +- includes/rts/Constants.h | 6 - includes/rts/Flags.h | 8 - includes/rts/Threads.h | 8 +- includes/rts/storage/TSO.h | 31 +-- libraries/base/Control/Exception.hs | 1 - libraries/base/Control/Exception/Base.hs | 1 - libraries/base/GHC/Conc.lhs | 6 - libraries/base/GHC/Conc/Sync.lhs | 92 +------ libraries/base/GHC/IO/Exception.hs | 21 +- rts/HeapStackCheck.cmm | 4 +- rts/Linker.c | 4 - rts/Prelude.h | 2 - rts/RaiseAsync.c | 54 ----- rts/RaiseAsync.h | 4 - rts/RtsFlags.c | 10 - rts/RtsStartup.c | 1 - rts/Schedule.c | 19 -- rts/Threads.c | 77 +++--- rts/package.conf.in | 2 - rts/sm/Storage.c | 6 - rts/win32/libHSbase.def | 1 - testsuite/tests/concurrent/should_run/all.T | 7 - .../tests/concurrent/should_run/allocLimit1.hs | 9 - .../tests/concurrent/should_run/allocLimit1.stderr | 1 - .../tests/concurrent/should_run/allocLimit2.hs | 17 -- .../tests/concurrent/should_run/allocLimit3.hs | 15 -- .../tests/concurrent/should_run/allocLimit3.stderr | 1 - .../tests/concurrent/should_run/allocLimit3.stdout | 1 - .../tests/concurrent/should_run/allocLimit4.hs | 31 --- utils/deriveConstants/DeriveConstants.hs | 1 - 33 files changed, 144 insertions(+), 578 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc f0fcc41d755876a1b02d1c7c79f57515059f6417 _______________________________________________ ghc-commits mailing list ghc-commits@haskell.org http://www.haskell.org/mailman/listinfo/ghc-commits

Hi Karel,
This issue is ticket #9055, which also contains a patch. Could we please merge it?
Peter
On 13.05.2014, at 08:30, Karel Gardas
Hello Simon,
I'm sorry to disturb you, but I've noticed that your revert patch below contains this change:
diff --git a/includes/CodeGen.Platform.hs b/includes/CodeGen.Platform.hs index f3abb3d..3d6dd41 100644 --- a/includes/CodeGen.Platform.hs +++ b/includes/CodeGen.Platform.hs @@ -741,8 +741,10 @@ globalRegMaybe CurrentTSO = Just (RealRegSingle REG_CurrentTSO) # ifdef REG_CurrentNursery globalRegMaybe CurrentNursery = Just (RealRegSingle REG_CurrentNursery) # endif -#endif globalRegMaybe _ = Nothing +#else +globalRegMaybe = panic "globalRegMaybe not defined for this platform" +#endif
and I'm not sure if this is intentional or just overlooked addition. The problem with this line is that it causes stage1 panic on unregisterised build on PPC64 platform:
http://haskell.inf.elte.hu/builders/linux-ppc64-head/41/10.html
and we have not had such panic before the patch:
http://haskell.inf.elte.hu/builders/linux-ppc64-head/31/10.html -- well, you see that dll-split segfaults, but at least ghc-stage1 is proved to work well here.
Kudos to Gabor Pali who spotted this on PPC64 builder...
Thanks! Karel
On 05/ 4/14 11:45 PM, git@git.haskell.org wrote:
Repository : ssh://git@git.haskell.org/ghc
On branch : master Link : http://ghc.haskell.org/trac/ghc/changeset/f0fcc41d755876a1b02d1c7c79f5751505...
---------------------------------------------------------------
commit f0fcc41d755876a1b02d1c7c79f57515059f6417 Author: Simon Marlow
Date: Sun May 4 20:27:42 2014 +0100 Revert "Per-thread allocation counters and limits"
Problems were found on 32-bit platforms, I'll commit again when I have a fix.
This reverts the following commits: 54b31f744848da872c7c6366dea840748e01b5cf b0534f78a73f972e279eed4447a5687bd6a8308e
---------------------------------------------------------------
f0fcc41d755876a1b02d1c7c79f57515059f6417 compiler/cmm/CmmLayoutStack.hs | 9 +- compiler/codeGen/StgCmmForeign.hs | 268 ++++++--------------- includes/CodeGen.Platform.hs | 4 +- includes/rts/Constants.h | 6 - includes/rts/Flags.h | 8 - includes/rts/Threads.h | 8 +- includes/rts/storage/TSO.h | 31 +-- libraries/base/Control/Exception.hs | 1 - libraries/base/Control/Exception/Base.hs | 1 - libraries/base/GHC/Conc.lhs | 6 - libraries/base/GHC/Conc/Sync.lhs | 92 +------ libraries/base/GHC/IO/Exception.hs | 21 +- rts/HeapStackCheck.cmm | 4 +- rts/Linker.c | 4 - rts/Prelude.h | 2 - rts/RaiseAsync.c | 54 ----- rts/RaiseAsync.h | 4 - rts/RtsFlags.c | 10 - rts/RtsStartup.c | 1 - rts/Schedule.c | 19 -- rts/Threads.c | 77 +++--- rts/package.conf.in | 2 - rts/sm/Storage.c | 6 - rts/win32/libHSbase.def | 1 - testsuite/tests/concurrent/should_run/all.T | 7 - .../tests/concurrent/should_run/allocLimit1.hs | 9 - .../tests/concurrent/should_run/allocLimit1.stderr | 1 - .../tests/concurrent/should_run/allocLimit2.hs | 17 -- .../tests/concurrent/should_run/allocLimit3.hs | 15 -- .../tests/concurrent/should_run/allocLimit3.stderr | 1 - .../tests/concurrent/should_run/allocLimit3.stdout | 1 - .../tests/concurrent/should_run/allocLimit4.hs | 31 --- utils/deriveConstants/DeriveConstants.hs | 1 - 33 files changed, 144 insertions(+), 578 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc f0fcc41d755876a1b02d1c7c79f57515059f6417 _______________________________________________ ghc-commits mailing list ghc-commits@haskell.org http://www.haskell.org/mailman/listinfo/ghc-commits
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

On 05/13/14 10:06 AM, Peter Trommler wrote:
Hi Karel,
This issue is ticket #9055, which also contains a patch. Could we please merge it?
I'm the second petitioner for the merge of your fix! Thanks a lot for pointing this out and providing the patch! Cheers, Karel

It looks like I accidentally slipped that fix in with the allocation counters patch, and when the patch was reverted the fix was reverted too. I'll commit the fix from the patch (which is probably better, that's what I intended to do all along). Sorry for the mixup! Simon On 13/05/14 07:30, Karel Gardas wrote:
Hello Simon,
I'm sorry to disturb you, but I've noticed that your revert patch below contains this change:
diff --git a/includes/CodeGen.Platform.hs b/includes/CodeGen.Platform.hs index f3abb3d..3d6dd41 100644 --- a/includes/CodeGen.Platform.hs +++ b/includes/CodeGen.Platform.hs @@ -741,8 +741,10 @@ globalRegMaybe CurrentTSO = Just (RealRegSingle REG_CurrentTSO) # ifdef REG_CurrentNursery globalRegMaybe CurrentNursery = Just (RealRegSingle REG_CurrentNursery) # endif -#endif globalRegMaybe _ = Nothing +#else +globalRegMaybe = panic "globalRegMaybe not defined for this platform" +#endif
and I'm not sure if this is intentional or just overlooked addition. The problem with this line is that it causes stage1 panic on unregisterised build on PPC64 platform:
http://haskell.inf.elte.hu/builders/linux-ppc64-head/41/10.html
and we have not had such panic before the patch:
http://haskell.inf.elte.hu/builders/linux-ppc64-head/31/10.html -- well, you see that dll-split segfaults, but at least ghc-stage1 is proved to work well here.
Kudos to Gabor Pali who spotted this on PPC64 builder...
Thanks! Karel
On 05/ 4/14 11:45 PM, git@git.haskell.org wrote:
Repository : ssh://git@git.haskell.org/ghc
On branch : master Link : http://ghc.haskell.org/trac/ghc/changeset/f0fcc41d755876a1b02d1c7c79f5751505...
---------------------------------------------------------------
commit f0fcc41d755876a1b02d1c7c79f57515059f6417 Author: Simon Marlow
Date: Sun May 4 20:27:42 2014 +0100 Revert "Per-thread allocation counters and limits"
Problems were found on 32-bit platforms, I'll commit again when I have a fix.
This reverts the following commits: 54b31f744848da872c7c6366dea840748e01b5cf b0534f78a73f972e279eed4447a5687bd6a8308e
---------------------------------------------------------------
f0fcc41d755876a1b02d1c7c79f57515059f6417 compiler/cmm/CmmLayoutStack.hs | 9 +- compiler/codeGen/StgCmmForeign.hs | 268 ++++++--------------- includes/CodeGen.Platform.hs | 4 +- includes/rts/Constants.h | 6 - includes/rts/Flags.h | 8 - includes/rts/Threads.h | 8 +- includes/rts/storage/TSO.h | 31 +-- libraries/base/Control/Exception.hs | 1 - libraries/base/Control/Exception/Base.hs | 1 - libraries/base/GHC/Conc.lhs | 6 - libraries/base/GHC/Conc/Sync.lhs | 92 +------ libraries/base/GHC/IO/Exception.hs | 21 +- rts/HeapStackCheck.cmm | 4 +- rts/Linker.c | 4 - rts/Prelude.h | 2 - rts/RaiseAsync.c | 54 ----- rts/RaiseAsync.h | 4 - rts/RtsFlags.c | 10 - rts/RtsStartup.c | 1 - rts/Schedule.c | 19 -- rts/Threads.c | 77 +++--- rts/package.conf.in | 2 - rts/sm/Storage.c | 6 - rts/win32/libHSbase.def | 1 - testsuite/tests/concurrent/should_run/all.T | 7 - .../tests/concurrent/should_run/allocLimit1.hs | 9 - .../tests/concurrent/should_run/allocLimit1.stderr | 1 - .../tests/concurrent/should_run/allocLimit2.hs | 17 -- .../tests/concurrent/should_run/allocLimit3.hs | 15 -- .../tests/concurrent/should_run/allocLimit3.stderr | 1 - .../tests/concurrent/should_run/allocLimit3.stdout | 1 - .../tests/concurrent/should_run/allocLimit4.hs | 31 --- utils/deriveConstants/DeriveConstants.hs | 1 - 33 files changed, 144 insertions(+), 578 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc f0fcc41d755876a1b02d1c7c79f57515059f6417 _______________________________________________ ghc-commits mailing list ghc-commits@haskell.org http://www.haskell.org/mailman/listinfo/ghc-commits
participants (3)
-
Karel Gardas
-
Peter Trommler
-
Simon Marlow