Conversation with #inferno at Tue Nov 24 10:40:07 2009 on powerman-asdf@irc.freenode.net (irc) (11:08:32) xjrn left the room (quit: "ChatZilla 0.9.83 [XULRunner 1.8.0.9/2006120508]"). (11:43:01) sswam1 [n=sswam@CPE-124-181-86-148.lns9.win.bigpond.net.au] entered the room. (11:43:01) sswam1 left the room (quit: Client Quit). (13:19:47) sswam left the room (quit: "leaving"). (14:26:17) underspecified left the room (quit: ). (14:29:05) me____: mjl-: do you have a mailing list for inferno-npe? (14:30:04) uriel: no (14:30:08) uriel: (or it is secret) (14:30:29) uriel: (ok, or I'm clueless, there might be one, but I doubt it) (14:30:43) uriel: me____: anyway, what is wrong with the main inferno list? (14:31:00) uriel: (other than that it is broken and some people don't get emails for hours and hours, but lets pretend that doesn't happen as everyone else does) (14:31:58) me____: oh, because i was using inferno-npe to run an experiment, wanted some commentary on it. i suppose either 9fans for the inferno list would be fine for it... (14:34:22) mjl-: me____: no, no mailing list (14:34:41) mjl-: would be handy, i don't know where to create one... (14:34:51) mjl-: i guess the inferno list could work too (14:36:13) uriel: aren't there already too many inferno lists? (14:36:20) mjl-: 1? (14:36:24) mjl-: how many do you know? :) (14:36:27) mjl-: oh (14:36:29) mjl-: inferno-ds (14:36:46) uriel: acme-sac (14:37:03) mjl-: point taken (14:37:18) mjl-: acme-sac seems mostly be spam... (14:37:39) uriel: part of the reason there are so many lists is because the main one is broken, but I doubt it will get fixed (14:38:10) me____: oh, didn't think of that. anyway, the patch only touches the native kernel, it adds an objcache interface and cuts over ip/* and part of port/* to that interface. the hope was to get some statistics on whether objcaching will be of help in the p9 kernel... (14:38:20) me____: but it touches a lot of files... (14:38:31) me____: and is more of an experiment than an actual proposal atm. (14:39:09) mjl-: what does it cache exactly? (14:39:24) mjl-: sounds interesting nonetheless (14:41:01) me____: nothing. in memory allocators inspired by the slab allocator, the observation was that you often allocate objects of the same size, so it'd be nice to have zones for those types. (look at ip/ip.c for a lot of these). in these zones, there will be no fragmentation on alloc/free, since they're all of the same size. (14:41:34) me____: also the observation was that you do a lot of init stuff to these objects on allocation. why not keep pre-initied ones around? (14:41:39) me____: thats the 'objcache' part. (14:41:43) me____: but this experiment just wraps malloc and keeps stats. :) (14:42:50) me____: if you're on a bsd system, man objcache (iirc from section 10?) should describe the interface better (14:43:35) mjl-: hmm, not on openbsd (14:44:09) me____: oh, hmm, it might have a different name there.. perhaps uma or zone? (14:44:21) mjl-: still have to read your earlier url on p9malloc stats... (14:44:56) me____: haha fair. i'm just trying thing now... i didn't post the inferno stats there, perhaps i should. (14:45:58) mjl-: i bet it would be appriciated :) (14:46:01) mjl-: appreciated* (14:46:14) mjl-: nothing like zone,uma,objcache in openbsd... (14:46:46) mjl-: they haven't changed much in memory allocation in quite some time, that i know off (except a new user-space malloc i think) (14:47:04) mjl-: i get the idea though (14:47:12) me____: ok. zone came in in freebsd 3.x iirc? i thought the other bsds did that as well... (15:05:48) me____: do any of you know how to setup IP in native inferno? (15:09:20) mjl-: i've done that (15:09:24) mjl-: i think dhcp worked (15:10:44) mjl-: http://code.google.com/p/inferno-kirkwood/source/browse/misc/netrc (15:10:54) mjl-: that's what salva made for inferno on the sheevaplug (15:11:11) mjl-: has commands for static & dhcp configuring (15:13:26) me____: alright, thanks (15:21:58) underspecified [n=eric@softbank220043052007.bbtec.net] entered the room. (17:39:47) mennis [n=mennis@adsl-068-016-104-079.sip.asm.bellsouth.net] entered the room. (18:15:27) j123m left the room (quit: Read error: 110 (Connection timed out)). (18:24:20) mjl-: so, hopefully nfssrv is mostly good for now. pretty much rewritten (18:24:38) mjl-: with support for serving different user id's. (18:24:55) mjl-: on openbsd i even managed to present different file tree's per uid, on the same mountpoint (18:29:40) j123m [n=quassel@94.190.65.228] entered the room. (18:32:07) me____: nice! (19:09:04) mjl-: me____: just read your p9m traces document (19:09:06) mjl-: a good read (19:09:20) mjl-: and it's interesting data indeed (19:10:43) me____: thanks. its just a start, there're a lot more traces to make... (19:10:55) mjl-: some time ago, i was wondering whether you could attribute kernel mallocs to users, and then enforce that a single user doesn't consume all memory. safety for multi-user systems (especially useful for public servers) (19:11:03) mjl-: :) (19:12:01) mjl-: it would be a lot of book-keeping, and allocs are probably often not for a specific user. but anyway, perhaps you've got an opinion on it, or grow one :) (19:20:31) me____: mjl-: i imagine it'd be very hard to do right. (19:20:47) me____: and around the edges, nearly impossible. (19:21:27) me____: lets suppose there was a strict percentage of system allocations i could make. (allocations, pages, VA space, w/e). i can still ask fossil to do work on my behalf. (19:22:15) me____: and the converse, devdraw can allocate in my name without direct action on my part (19:23:15) me____: i think its a good goal to have a system survive under memory pressure, but its pretty difficult. (19:23:40) me____: also, what if i want to give memory back to the system, but can't? (i hit my quota, but want to call brk() to reduce dseg, for example?) (19:25:05) me____: do page tables for my processes count against me? what if there was some CoW going on? a process that's potentially changeuser-ed can still cause me to allocate... (i think.) (19:33:32) hagna left the room (quit: "Lost terminal"). (20:18:25) me____ left the room (quit: "Lost terminal"). (22:11:45) xjrn [n=jim@astound-69-42-10-25.ca.astound.net] entered the room. (22:36:58) rapidfx left the room (quit: "Leaving."). (22:51:47) Fish [n=Fish@78.238.225.114] entered the room. (23:42:04) Fish left the room (quit: Remote closed the connection). (00:41:12) mennis left the room (quit: ). (01:08:38) mjl-: good points me____ (01:08:44) mjl-: oh, he's gone (01:10:59) olegfink: mjl-: I just crashed a recent linux system recently (01:11:54) olegfink: in some alsa crap there's a kernel-synthesized file named 'dsp'. I thought that's the old kind audio interface, so I cat'ed a raw audio file into it (01:12:19) olegfink: turns out it was something else, but was accepting writes, and I exhausted all the kernel memory and the system crashed (01:13:44) mjl-: haha ☺ (01:14:06) mjl-: it could help against such cases too yeah (01:14:32) mjl-: i do think too that all the accounting will be hard. but just preventing some error cases could be nice (01:14:58) mjl-: with plan 9 it's even easier. there are a max number of tcp connections (1024 i think). just open /net/tcp/clone 1024 times and the system is offline... (01:15:14) mjl-: (for new users) (01:16:48) acmeuser [n=acmeuser@219.88.72.15] entered the room. (01:19:23) acmeuser left the room. (01:27:12) olegfink: mjl-: well, plan9 makes it less important because generally every user has their own terminal to crash... but yes all that was designed back in the age when the system users could mostly be trusted (01:56:26) sswam [n=sswam@CPE-124-181-86-148.lns9.win.bigpond.net.au] entered the room. (02:28:52) xjrn: grex, mnet, et al (03:03:33) underspecified left the room (quit: ). (03:42:01) xjrn left the room (quit: Remote closed the connection). (05:17:58) mycroftiv left the room (quit: brown.freenode.net irc.freenode.net). (05:17:58) F1sh left the room (quit: brown.freenode.net irc.freenode.net). (05:17:58) j123m left the room (quit: brown.freenode.net irc.freenode.net). (05:17:58) eno__ left the room (quit: brown.freenode.net irc.freenode.net). (05:17:58) uriel left the room (quit: brown.freenode.net irc.freenode.net). (05:18:26) j123m [n=quassel@94.190.65.228] entered the room. (05:18:26) eno__ [n=eno@70.137.167.212] entered the room. (05:18:26) uriel [n=uriel@209.123.234.28] entered the room. (05:23:49) mycroftiv [n=infernus@h69-128-47-243.mdsnwi.dedicated.static.tds.net] entered the room. (05:47:18) mennis [n=mennis@adsl-065-012-170-146.sip.asm.bellsouth.net] entered the room. (05:51:36) mennis left the room (quit: Client Quit). (07:10:59) robot12 [n=root@inferno.kgts.ru] entered the room. (07:31:55) sswam left the room (quit: "leaving"). (07:55:01) j123m_ [n=quassel@94.190.65.228] entered the room. (07:55:25) j123m left the room (quit: Read error: 131 (Connection reset by peer)). (08:08:55) sswam [n=sswam@124.181.86.148] entered the room. (08:27:41) F1sh [n=Fish@86.65.182.194] entered the room. (09:50:42) rapidfx [n=host666@vl-cen-ce1.avtlg.ru] entered the room. (10:12:01) rapidfx left the room (quit: Remote closed the connection). (10:23:48) rapidfx [n=host666@vl-cen-ce1.avtlg.ru] entered the room.