Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: bos Type: task| Status: closed Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.13 Resolution: fixed | Keywords: Testcase: N/A | Blockedby: Difficulty: Project (more than a week) | Os: Unknown/Multiple Blocking: | Architecture: Unknown/Multiple Failure: Runtime performance bug | -+-- Comment(by simonmar): Thanks for closing the bug, and well done to both you and Bryan! -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:43 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: bos Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Keywords:| Difficulty: Project (more than a week) Os: Unknown/Multiple | Testcase: N/A Architecture: Unknown/Multiple | Failure: Runtime performance bug -+-- Changes (by basvandijk): * cc: v.dijk@… (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:41 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: bos Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Keywords:| Difficulty: Project (more than a week) Os: Unknown/Multiple | Testcase: N/A Architecture: Unknown/Multiple | Failure: Runtime performance bug -+-- Changes (by gwicke): * cc: gabr...@… (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:40 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: bos Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Keywords:| Difficulty: Project (more than a week) Os: Unknown/Multiple | Testcase: N/A Architecture: Unknown/Multiple | Failure: Runtime performance bug -+-- Changes (by merehap): * cc: mere...@… (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:39 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: bos Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Keywords:| Difficulty: Project (more than a week) Os: Unknown/Multiple | Testcase: N/A Architecture: Unknown/Multiple | Failure: Runtime performance bug Patch: 0 | -+-- Changes (by PeteC): * cc: 1...@… (added) * patch: = 0 -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:38 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: bos Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Keywords:| Difficulty: Project (more than a week) Os: Unknown/Multiple | Testcase: N/A Architecture: Unknown/Multiple | Failure: Runtime performance bug -+-- Changes (by jeffz_): * cc: jeffz_ (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:37 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: bos Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Keywords:| Difficulty: Project (more than a week) Os: Unknown/Multiple | Testcase: N/A Architecture: Unknown/Multiple | Failure: Runtime performance bug -+-- Comment(by kazu-yamamoto): If you send me an email with the error I can try to reproduce it (I'm also on OS X). The error is attached. There are a number of kernel settings that need to be changed to run some of these benchmarks. All of the settings are done automatically for you by the `benchmark_shell.py` script. It can be used like so: Thanks! If you want to play with the code using `forkIO` style concurrency (but using `Socket`s instead of `Handle`s) you can you `System.Event.Thread` and `benchmarks/EventSocket.hs`. I read it before. But I still want to use Handle for buffering. The error: (Note I upgrade my Mac to Snow Leopard and GHC to 6.12.1) {{{ % make ranlib ../dist/build/libHSevent-0.1.a ghc -funbox-strict-fields -package bytestring -ignore-package event -fno- ignore-asserts -Wall -fno-warn-orphans -fno-warn-missing-signatures -i../dist/build -package-name event-0.1 -package network -package network-bytestring -package attoparsec -package bytestring-show -package mtl -threaded -o dead-conn Args.o EventUtil.o EventSocket.o DeadConn.o ../dist/build/libHSevent-0.1.a gcc -O2 -o deadconn deadconn.o ld: warning: in deadconn.o, file is not of required architecture Undefined symbols: _main, referenced from: start in crt1.10.6.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [deadconn] Error 1 }}} -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:35 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: bos Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Keywords:| Difficulty: Project (more than a week) Os: Unknown/Multiple | Testcase: N/A Architecture: Unknown/Multiple | Failure: Runtime performance bug -+-- Comment(by tibbe): Replying to [comment:35 kazu-yamamoto]: The error: (Note I upgrade my Mac to Snow Leopard and GHC to 6.12.1) {{{ % make ranlib ../dist/build/libHSevent-0.1.a ghc -funbox-strict-fields -package bytestring -ignore-package event -fno- ignore-asserts -Wall -fno-warn-orphans -fno-warn-missing-signatures -i../dist/build -package-name event-0.1 -package network -package network-bytestring -package attoparsec -package bytestring-show -package mtl -threaded -o dead-conn Args.o EventUtil.o EventSocket.o DeadConn.o ../dist/build/libHSevent-0.1.a gcc -O2 -o deadconn deadconn.o ld: warning: in deadconn.o, file is not of required architecture Undefined symbols: _main, referenced from: start in crt1.10.6.o ld: symbol(s) not found collect2: ld returned 1 exit status make: *** [deadconn] Error 1 }}} I'm not quite sure what this is, looks like a 32 vs 64-bit issue. If you don't need deadconn (which creates idle connections useful when benchmarking scaling properties) you can build the target you want using e.g. `make pong-server`. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:36 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: bos Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Keywords:| Difficulty: Project (more than a week) Os: Unknown/Multiple | Testcase: N/A Architecture: Unknown/Multiple | Failure: Runtime performance bug -+-- Comment(by tibbe): We've been working on a replacement for the I/O manager for a few weeks now. The latest code can be found at: http://github.com/tibbe/event -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:28 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler ___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: bos Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Resolution: | Keywords: Difficulty: Project (more than a week) | Os: Unknown/Multiple Testcase: N/A | Architecture: Unknown/Multiple Failure: Runtime performance bug | -+-- Comment (by simonmar): This does look like a step in the right direction. How does this compare in performance to the select version? Glancing at the patch it looks like building the fdset will be more expensive than before. There's one withForeignPtr per FD. The INLINEs on the C functions don't have any effect (unfortunately), even with `-fvia-C`. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:24 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: bos Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Resolution: | Keywords: Difficulty: Project (more than a week) | Os: Unknown/Multiple Testcase: N/A | Architecture: Unknown/Multiple Failure: Runtime performance bug | -+-- Comment (by bos): There is indeed one `withForeignPtr` per FD. ISTR I'd been told that was effectively free, so I didn't worry about it. Clearly, we could use a plain Ptr instead and just free the pollfd data by hand when shutting down. I'll have benchmark numbers within a couple of days. I seem not to have the flu finally, so I have to do Real Work again. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:25 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: bos Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Resolution: | Keywords: Difficulty: Project (more than a week) | Os: Unknown/Multiple Testcase: N/A | Architecture: Unknown/Multiple Failure: Runtime performance bug | -+-- Comment (by simonmar): Replying to [comment:25 bos]: There is indeed one `withForeignPtr` per FD. ISTR I'd been told that was effectively free, so I didn't worry about it. Clearly, we could use a plain Ptr instead and just free the pollfd data by hand when shutting down. You're right - `withForeignPtr` should be free, as long as the `ForeignPtr` is strict. Probably wouldn't hurt to glance at the Core and check it is being inlined away though. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:26 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: bos Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Resolution: | Keywords: Difficulty: Project (more than a week) | Os: Unknown/Multiple Testcase: N/A | Architecture: Unknown/Multiple Failure: Runtime performance bug | -+-- Changes (by kazu-yamamoto): * cc: k...@iij.ad.jp (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:27 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: bos Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Resolution: | Keywords: Difficulty: Project (more than a week) | Os: Unknown/Multiple Testcase: N/A | Architecture: Unknown/Multiple Failure: Runtime performance bug | -+-- Changes (by bos): * owner: = bos * failure: None/Unknown = Runtime performance bug Comment: I've started work on this, and have the threaded RTS's IO manager thread successfully using either poll or select, depending on the system. This step alone is a big deal, because select has a low fixed limit on the number of file descriptors it can manage, usually 1,024. Using poll instead removes that limit. There is a lot more work to do, but this seems like a good start. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:22 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: bos Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Resolution: | Keywords: Difficulty: Project (more than a week) | Os: Unknown/Multiple Testcase: N/A | Architecture: Unknown/Multiple Failure: Runtime performance bug | -+-- Comment (by bos): I've attached the current working patch to this ticket. It applies cleanly against both base 4.2.0.0 (as used in GHC 6.12.1) and the version used by HEAD. Simon, I think this patch is worth applying on top of base-4.2.0.0 as is, since it removes that pesky dependency on select. This would be a nice fix to have in GHC 6.12.2. For more substantial changes (use of epoll or kqueue), the amount of work involved is much higher. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:23 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Resolution: | Keywords: Difficulty: Project (more than a week) | Os: Unknown/Multiple Testcase: N/A | Architecture: Unknown/Multiple Failure: None/Unknown| -+-- Changes (by nwn): * cc: nonow...@gmail.com (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:21 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by galdor): * cc: khae...@gmail.com (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:18 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by guest): * cc: cgibb...@gmail.com (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by morrow): * cc: mor...@moonpatio.com (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by lvh): * cc: l...@laurensvh.be (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by YitzGale): * cc: g...@sefer.org (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:16 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by jystic): * cc: jys...@jystic.com (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:17 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by bsdemon): * cc: 8may...@gmail.com (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by hajile): * cc: elijah.epifa...@gmail.com (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar |Owner: Type: task | Status: new Priority: normal|Milestone: _|_ Component: libraries/base| Version: 6.4.1 Severity: normal| Resolution: Keywords:| Difficulty: Difficult (1 week) Testcase: N/A | Os: Unknown/Multiple Architecture: Unknown/Multiple | -+-- Changes (by tibbe): * cc: johan.tib...@gmail.com (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. +--- Reporter: simonmar| Owner: Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Severity: normal | Resolution: Keywords: | Difficulty: Difficult (1 week) Testcase: N/A | Architecture: Unknown Os: Unknown | +--- Changes (by PHO): * cc: [EMAIL PROTECTED] (added) -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. +--- Reporter: simonmar| Owner: Type: task| Status: new Priority: normal | Milestone: _|_ Component: libraries/base |Version: 6.4.1 Severity: normal | Resolution: Keywords: | Difficulty: Difficult (1 week) Testcase: N/A | Architecture: Unknown Os: Unknown | +--- Changes (by simonmar): * milestone: 6.8 branch = _|_ -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. +--- Reporter: simonmar| Owner: Type: task| Status: new Priority: normal | Milestone: 6.8 branch Component: libraries/base |Version: 6.4.1 Severity: normal | Resolution: Keywords: | Difficulty: Difficult (1 week) Testcase: N/A | Architecture: Unknown Os: Unknown | +--- Comment (by AudreyTang): Should the libevent-based approach be investigated in the future, http://software.schmorp.de/pkg/libev.html has a more efficient implementation of the same (actually emulated) API -- see http://libev.schmorp.de/bench.html for benchmarks. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. ---+ Reporter: simonmar|Owner: Type: task| Status: new Priority: normal |Milestone: 6.8 Component: libraries/base | Version: 6.4.1 Severity: normal | Resolution: Keywords: | Difficulty: Difficult (1 week) Os: Unknown | Testcase: N/A Architecture: Unknown | ---+ Changes (by guest): * cc: = [EMAIL PROTECTED] Comment: i strongly prefer to see this in separate library which isn't part of RTS -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. +--- Reporter: simonmar| Owner: Type: task| Status: new Priority: normal | Milestone: 6.8 Component: libraries/base |Version: 6.4.1 Severity: normal | Resolution: Keywords: | Difficulty: Difficult (1 week) Testcase: N/A | Architecture: Unknown Os: Unknown | +--- Changes (by igloo): * milestone: = 6.8 * testcase: = N/A -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/635 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
Re: [GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. -+-- Reporter: simonmar| Owner: Type: task| Status: new Priority: normal | Milestone: Component: libraries/base |Version: 6.4.1 Severity: normal | Resolution: Keywords: | Os: Unknown Difficulty: Difficult (1 week) | Architecture: Unknown -+-- Comment (by simonmar): I should add that we'd prefer to do this using the I/O manager in the threaded runtime (libraries/base/GHC/Conc.lhs), rather than change the current select() machinery in the non-threaded runtime (ghc/rts/posix/Select.c). Volker's libevent patch is for the latter, I believe. -- Ticket URL: http://cvs.haskell.org/trac/ghc/ticket/635 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
[GHC] #635: Replace use of select() in the I/O manager with epoll/kqueue/etc.
#635: Replace use of select() in the I/O manager with epoll/kqueue/etc. ---+ Reporter: simonmar|Owner: Type: task| Status: new Priority: normal |Milestone: Component: libraries/base | Version: 6.4.1 Severity: normal | Keywords: Os: Unknown | Difficulty: Difficult (1 week) Architecture: Unknown | ---+ Subject says it all. We've known about this problem for ever, but haven't got around to doing anything about it. Here is a library that provides a unified API over the various event APIs: [http://monkey.org/~provos/libevent/]. See also [http://www.kegel.com/c10k.html]. 1 week is an estimate for doing it properly on all relevant platforms, by someone who is familiar with the APIs and code. -- Ticket URL: http://cvs.haskell.org/trac/ghc/ticket/635 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler___ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs