00:02:19 -!- intronic [~user@58.7.233.220.static.exetel.com.au] has quit [Ping timeout: 255 seconds] 00:32:55 woah. it's substantially faster to let linux copy pages on write than to handle a sigsegv (nevermind processing it). 00:33:00 and it's even worse on OS X. 00:42:33 handling a sigsegv is about 7k cycles on my workstation (and only ~10% of that is mprotect). 00:44:53 I think we could afford fairly naive software write barriers with that budget. 03:40:48 redline6` [~user@109.169.54.131] has joined #sbcl 03:41:05 -!- redline6` [~user@109.169.54.131] has quit [Client Quit] 03:41:19 redline6` [~user@109.169.54.131] has joined #sbcl 03:45:22 -!- redline6` [~user@109.169.54.131] has quit [Ping timeout: 240 seconds] 05:55:05 homie` [~levgue@xdsl-78-35-152-65.netcologne.de] has joined #sbcl 05:57:01 -!- homie [~levgue@xdsl-78-35-165-71.netcologne.de] has quit [Ping timeout: 265 seconds] 06:36:04 -!- cmm [~cmm@bzq-79-183-204-63.red.bezeqint.net] has quit [Ping timeout: 255 seconds] 06:36:41 cmm [~cmm@bzq-79-183-204-63.red.bezeqint.net] has joined #sbcl 07:20:43 flip214 [~marek@2001:858:107:1:baac:6fff:fe6b:9183] has joined #sbcl 07:20:43 -!- flip214 [~marek@2001:858:107:1:baac:6fff:fe6b:9183] has quit [Changing host] 07:20:43 flip214 [~marek@unaffiliated/flip214] has joined #sbcl 07:57:30 tcr [~tcr@77-20-119-246-dynip.superkabel.de] has joined #sbcl 08:06:36 mega1 [~mega1@catv4E5CABA2.pool.t-online.hu] has joined #sbcl 08:22:17 -!- slyrus [~chatzilla@207.189.195.44] has quit [Ping timeout: 264 seconds] 10:21:24 attila_lendvai [~attila_le@catv-89-133-171-67.catv.broadband.hu] has joined #sbcl 11:58:24 -!- homie` [~levgue@xdsl-78-35-152-65.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 12:12:37 -!- tokenrov1 [~julian@miranda.org] has left #sbcl 12:18:46 stassats [~stassats@wikipedia/stassats] has joined #sbcl 12:28:07 homie [~levgue@xdsl-78-35-152-65.netcologne.de] has joined #sbcl 13:00:25 antgreen [~user@CPE00222d6c4710-CM00222d6c470d.cpe.net.cable.rogers.com] has joined #sbcl 13:32:23 -!- attila_lendvai [~attila_le@catv-89-133-171-67.catv.broadband.hu] has quit [Ping timeout: 240 seconds] 13:44:35 hargettp [~anonymous@96.237.122.78] has joined #sbcl 14:26:25 -!- homie [~levgue@xdsl-78-35-152-65.netcologne.de] has quit [Remote host closed the connection] 14:45:45 -!- hargettp [~anonymous@96.237.122.78] has quit [Quit: hargettp] 14:45:59 -!- flip214 [~marek@unaffiliated/flip214] has quit [Remote host closed the connection] 14:48:40 hargettp [~anonymous@96.237.122.78] has joined #sbcl 14:59:41 homie [~levgue@xdsl-78-35-152-65.netcologne.de] has joined #sbcl 15:06:23 -!- hargettp [~anonymous@96.237.122.78] has quit [Quit: hargettp] 15:17:20 -!- tcr [~tcr@77-20-119-246-dynip.superkabel.de] has quit [Quit: Leaving.] 16:25:43 attila_lendvai [~attila_le@catv-89-133-171-67.catv.broadband.hu] has joined #sbcl 16:33:49 slyrus [~chatzilla@207.189.195.44] has joined #sbcl 16:37:10 pkhuong: Have you checked this out? http://www.managedruntime.org/ 16:39:27 pkhuong: they have a pauseless GC for Java, which depends on some kernel extensions published there 16:39:35 http://www.artima.com/lejava/articles/azul_pauseless_gc.html 16:42:25 they have made a really high performance GC implementation with even *more* page table tricks than sbcl does. :) 16:44:34 rpg [~rpg@mpls.sift.info] has joined #sbcl 16:45:32 Before I read about that stuff, I was also also thinking that a purely userspace based write barrier solution would be a much better idea than using hardware pagetable tricks (in general even, not just in SBCL's particular implementation). But I'm now reconsidering that position since there's a good counterexample. :) 16:51:05 foom: that's a lot of work though :) 16:52:09 pkhuong: yes. It may still be better for SBCL to use a userspace write-barrier in the short term. 16:52:17 but I'm thinking fork and kpagecount might be enough for a OS-assisted write barrier ;) 16:52:30 fork is insanely expensive 16:52:42 even without our insane mprotect tricks? 16:52:51 much less expensive then. 16:52:56 but still, bad 16:53:27 every page you touch while the other process is still there causes a copy operation. 16:53:44 but that's substantially cheaper than handling a sigsegv. 16:53:59 but *every* page, not just ones that are write protecetd. 16:54:13 madvise (lol) 16:56:09 there's two problems with fork: 1) it takes time proportional (at least) to the number of existing mappings. SBCL currently makes a crapload of mappings, but without it twiddling write protection that'd go away. 2) copy-on-write of every page. If the other process is short-lived, that might be okay, but if it's always there, and frequently being respawned, that seems poor. 17:22:29 I found no clear information on throughput of this gc. 17:22:56 sure, it's "pauseless" but is it at the cost of 0.1x throughput? 17:26:10 mega1: I'd guess not, or they wouldn't have customers if their Java machines performed badly 17:26:27 they are in the extreme scalability business 17:26:51 they break even with only 10 cpus 17:27:03 while they are really run 100s 17:27:07 *running 17:36:43 foom: re fork, I also considered mmapping a tmpfs file multiple times, and remapping modified mappings ;) 17:37:01 either way, it's stupid how ugly this has to be, compared to solaris's /proc/pid/pagetable 17:58:18 what does /proc/pid/pagetable do in solaris? 18:00:48 (I can't find it in google) 18:21:50 homie` [~levgue@xdsl-78-35-152-65.netcologne.de] has joined #sbcl 18:22:20 -!- homie [~levgue@xdsl-78-35-152-65.netcologne.de] has quit [Ping timeout: 250 seconds] 18:23:26 -!- homie` is now known as homie 18:37:40 tcr [~tcr@77-20-119-246-dynip.superkabel.de] has joined #sbcl 18:44:46 -!- homie [~levgue@xdsl-78-35-152-65.netcologne.de] has quit [Read error: Connection reset by peer] 18:46:07 homie [~levgue@xdsl-84-44-154-144.netcologne.de] has joined #sbcl 18:52:43 -!- attila_lendvai [~attila_le@catv-89-133-171-67.catv.broadband.hu] has quit [Quit: Leaving.] 19:00:45 -!- homie [~levgue@xdsl-84-44-154-144.netcologne.de] has quit [Quit: ERC Version 5.3 (IRC client for Emacs)] 19:06:03 homie [~levgue@xdsl-84-44-154-144.netcologne.de] has joined #sbcl 19:17:25 -!- tcr [~tcr@77-20-119-246-dynip.superkabel.de] has quit [Ping timeout: 265 seconds] 19:22:48 tcr [~tcr@77-20-119-246-dynip.superkabel.de] has joined #sbcl 20:07:59 foom: atomically gets you a snapshot of the page table status, including which pages have been accessed or written to since the last time you read the file. 20:11:31 -!- rpg [~rpg@mpls.sift.info] has quit [Quit: rpg] 20:40:08 -!- homie [~levgue@xdsl-84-44-154-144.netcologne.de] has quit [Remote host closed the connection] 20:43:36 homie [~levgue@xdsl-84-44-154-144.netcologne.de] has joined #sbcl 20:55:22 rpg [~rpg@216.243.156.16.real-time.com] has joined #sbcl 20:55:28 -!- rpg [~rpg@216.243.156.16.real-time.com] has quit [Excess Flood] 20:55:54 rpg [~rpg@216.243.156.16.real-time.com] has joined #sbcl 22:18:59 -!- mega1 [~mega1@catv4E5CABA2.pool.t-online.hu] has quit [Ping timeout: 240 seconds] 22:39:49 -!- stassats [~stassats@wikipedia/stassats] has quit [Ping timeout: 240 seconds] 23:15:17 -!- tcr [~tcr@77-20-119-246-dynip.superkabel.de] has quit [Quit: Leaving.]