Your message dated Wed, 12 Dec 2012 17:03:48 +0000 with message-id <[email protected]> and subject line Bug#677096: fixed in ghc 7.6.1.20121207-1 has caused the Debian Bug report #677096, regarding thread-using code built with current ghc's non-threaded runtime spins to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact [email protected] immediately.) -- 677096: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=677096 Debian Bug Tracking System Contact [email protected] with problems
--- Begin Message ---Package: ghc Version: 7.4.1-3 Severity: normal Stracing xmonad, I see a rather tight loop like this: --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) poll([{fd=3, events=POLLIN}], 1, -1) = ? ERESTART_RESTARTBLOCK (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) poll([{fd=3, events=POLLIN}], 1, -1) = ? ERESTART_RESTARTBLOCK (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) poll([{fd=3, events=POLLIN}], 1, -1) = ? ERESTART_RESTARTBLOCK (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) poll([{fd=3, events=POLLIN}], 1, -1) = ? ERESTART_RESTARTBLOCK (To be restarted) This is probably bad for a daemon or long-running program, especially on a laptop. It will probably keep the CPU from entering wait states. Powertop seems to bear this out; when xmonad is running my laptop enters the C1 idle state less than 10% of the time; when I kill -STOP xmonad, this jumps to 20% or more. Also, xmonad is at the top of powertop's list of offenders: Usage Events/s Category Description 11.0 ms/s 46.7 Process /home/joey/.xmonad/xmonad I can reproduce a similar tight loop in strace with this simple program, when built with ghc 7.4, without the threaded runtime: import Control.Monad import Control.Concurrent fooThread = forever $ threadDelay 100000000 -- 100 seconds main = do forkIO fooThread fooThread The strace is much the same as the xmonad one, only the condition the threads are waiting on varies, but the constant waking up remains the same. gettimeofday({1339429713, 896353}, NULL) = 0 select(0, [], [], NULL, {99, 540844}) = ? ERESTARTNOHAND (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) gettimeofday({1339429713, 906388}, NULL) = 0 select(0, [], [], NULL, {99, 532563}) = ? ERESTARTNOHAND (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) gettimeofday({1339429713, 917327}, NULL) = 0 select(0, [], [], NULL, {99, 524158}) = ? ERESTARTNOHAND (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) gettimeofday({1339429713, 926545}, NULL) = 0 select(0, [], [], NULL, {99, 516729}) = ? ERESTARTNOHAND (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- With the threaded runtime, this doesn't happen. And, if I build it with ghc 6.12, nonthreaded runtime, the strace looks like this: gettimeofday({1339429071, 169771}, NULL) = 0 gettimeofday({1339429071, 169926}, NULL) = 0 select(0, [], [], NULL, {100, 20000} If we're going to ship this GHC, then this bug should at least be cloned to xmonad and it made to build with -threaded. That seems to work well for me. -- System Information: Debian Release: wheezy/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 3.2.0-2-686-pae (SMP w/2 CPU cores) Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages ghc depends on: ii gcc 4:4.7.0-6 ii libbsd-dev 0.3.0-2 ii libc6 2.13-32 ii libc6-dev 2.13-32 ii libffi-dev 3.0.10-3 ii libffi5 3.0.10-3 ii libgmp-dev 2:5.0.5+dfsg-1.1 ii libgmp10 2:5.0.5+dfsg-1.1 ii libncurses5 5.9-7 ii libtinfo5 5.9-7 ghc recommends no packages. Versions of packages ghc suggests: ii ghc-doc 7.4.1-3 ii ghc-prof 7.4.1-3 ii haskell-doc <none> ii llvm-3.0 <none> ii perl 5.14.2-10 -- no debconf information -- see shy jo
signature.asc
Description: Digital signature
--- End Message ---
--- Begin Message ---Source: ghc Source-Version: 7.6.1.20121207-1 We believe that the bug you reported is fixed in the latest version of ghc, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to [email protected], and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Joachim Breitner <[email protected]> (supplier of updated ghc package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing [email protected]) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.8 Date: Wed, 12 Dec 2012 12:32:48 +0100 Source: ghc Binary: ghc ghc-prof ghc-doc ghc-dynamic ghc-haddock ghc6 ghc6-doc ghc6-prof Architecture: source all amd64 Version: 7.6.1.20121207-1 Distribution: experimental Urgency: low Maintainer: Debian Haskell Group <[email protected]> Changed-By: Joachim Breitner <[email protected]> Description: ghc - The Glasgow Haskell Compilation system ghc-doc - Documentation for the Glasgow Haskell Compilation system ghc-dynamic - Dynamic libraries for the Glasgow Haskell Compilation system ghc-haddock - Documentation tool for annotated Haskell source code ghc-prof - Profiling libraries for the Glasgow Haskell Compilation system ghc6 - transitional dummy package ghc6-doc - transitional dummy package ghc6-prof - transitional dummy package Closes: 677096 695739 Changes: ghc (7.6.1.20121207-1) experimental; urgency=low . * New upstream release (aka 7.6.1-rc). + Closes: #677096 (huge number of wakeups) * Remove debian/patches/armhf_llvm_abi, applied upstream, thanks to Shawn Landden for noticing (Closes: #695739) * Hardcode in debian/rules that haddock supportin interface version 22 also supports interface version 21. Checksums-Sha1: a09968c63ec0214c78df6d5c0d40cccc665dfeee 1907 ghc_7.6.1.20121207-1.dsc 392547f681e0d62da36727b34864b8412f7e7ebd 110855486 ghc_7.6.1.20121207.orig.tar.bz2 c3363a38bb94d1471b0da78fabc57d0aa949ed7c 45800 ghc_7.6.1.20121207-1.debian.tar.gz 666acc349342e3ba657089d7bd6a8b9c1a3ca2a4 12306432 ghc-doc_7.6.1.20121207-1_all.deb 3f94f6cade1db786714e5d5f27c3da4557aeb1f5 27558 ghc6_7.6.1.20121207-1_all.deb bd0f3bbec0bc7d3c6d55bd93b0fffc4ddcdf32a1 27688 ghc6-doc_7.6.1.20121207-1_all.deb 483e4632819a8a9e16b6677c3fd1c84ef1b42d94 27238 ghc6-prof_7.6.1.20121207-1_all.deb e454f2dd0f2840a21ca117f904957cf3a1a82be2 46969362 ghc_7.6.1.20121207-1_amd64.deb 2a3146b86c46c87f92ce5b859fd204c4876bca84 45964280 ghc-prof_7.6.1.20121207-1_amd64.deb a6e5d9e08c682117f96edceac1521586a8d9223e 21816416 ghc-dynamic_7.6.1.20121207-1_amd64.deb 27268e4b351442346c2079acc7878521c8220796 6716530 ghc-haddock_7.6.1.20121207-1_amd64.deb Checksums-Sha256: ba814c0df1359a6a0b5c345d68f58bd0e28e278fced9fbd9ce4534cc789a804f 1907 ghc_7.6.1.20121207-1.dsc b26910642370e79e7042992ab347caa222b408b605206ebc848d917017244c87 110855486 ghc_7.6.1.20121207.orig.tar.bz2 ffb66d1f8935edd80967c56c8fdcef1728f8acd45f8784ba4bb8d81980865605 45800 ghc_7.6.1.20121207-1.debian.tar.gz 2409fd4f30496ac2c4d1a9745ea253ce8a8cc87a901731941a6438b14690a21e 12306432 ghc-doc_7.6.1.20121207-1_all.deb ab9dd232945f0399008942aba8858f1cfa80072c3b70f98dde3e2a6cc1f0c857 27558 ghc6_7.6.1.20121207-1_all.deb eb2a2137a8d41c8695c4cea2428791304811f27d51e2e637836c85329dfe7bc5 27688 ghc6-doc_7.6.1.20121207-1_all.deb 17189b0444ee2e90f3fb8825fc721b65a2f766d0a3b55d64bde9ca4c1a06206e 27238 ghc6-prof_7.6.1.20121207-1_all.deb ea689844f829160e523336cd9028fe9528c0db82ce75a3be9e9c1f5c2d17f8f7 46969362 ghc_7.6.1.20121207-1_amd64.deb 9690ac4d348be8960901d784f70c35400a03994dd4f65353c52e5eb3becc74dd 45964280 ghc-prof_7.6.1.20121207-1_amd64.deb 62e597f0b3c47dc7e8e4a4811e7c827d4d43f1cd3b03ad87c5867a398a6929f3 21816416 ghc-dynamic_7.6.1.20121207-1_amd64.deb 53fe2565c56d66c27b964fd341a6f361836ed7f60ba0be1c0f06f98e219feaac 6716530 ghc-haddock_7.6.1.20121207-1_amd64.deb Files: d2f3d33ec53744917cbe11de7d0983be 1907 haskell extra ghc_7.6.1.20121207-1.dsc e9615893802fb95afd9bffd9417ff490 110855486 haskell extra ghc_7.6.1.20121207.orig.tar.bz2 6a9347f243017916d00a72329d1dc4e7 45800 haskell extra ghc_7.6.1.20121207-1.debian.tar.gz ec2a3ac28f4e14aca955529848efaf71 12306432 doc extra ghc-doc_7.6.1.20121207-1_all.deb 90d5712fd6990b5c15baab23ae5f14eb 27558 haskell extra ghc6_7.6.1.20121207-1_all.deb 3402f2964acfffa2ffbbb564a05bf71f 27688 doc extra ghc6-doc_7.6.1.20121207-1_all.deb 0fe46229ed6fde5fed4a2c6dac8463f1 27238 haskell extra ghc6-prof_7.6.1.20121207-1_all.deb 34031ce074e55c9ae2bab66d34575ff6 46969362 haskell extra ghc_7.6.1.20121207-1_amd64.deb 26f5bce6aeb9c41178224ea343b60118 45964280 haskell extra ghc-prof_7.6.1.20121207-1_amd64.deb 04c7e14b6c505f9740ea8f5af67a971c 21816416 haskell extra ghc-dynamic_7.6.1.20121207-1_amd64.deb 02cd73a3973908d595ea68ec54a9166d 6716530 haskell extra ghc-haddock_7.6.1.20121207-1_amd64.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlDIteUACgkQ9ijrk0dDIGzXGwCgiAb9E2ym+6g10XhMItEgeTG3 qH4AnjjQGQWSgbo2cIodcMSUEFYeQ33C =LwX9 -----END PGP SIGNATURE-----
--- End Message ---

