2008-09-10 00:09 new delhi, india 2008-09-10 00:10 what do you do? 2008-09-10 00:13 hey 2008-09-10 00:14 hi bh 2008-09-10 00:23 johns hopkins 2008-09-10 00:23 u 2008-09-10 00:24 wrong channel 2008-09-10 00:35 hmm 2008-09-10 00:35 u work at johns hopkins? 2008-09-10 00:37 no, in santa monica 2008-09-10 00:37 linux kernel hacker 2008-09-10 00:37 time to sleep 2008-09-10 00:37 see you later 2008-09-10 00:50 :) 2008-09-10 00:50 goodnite 2008-09-10 01:52 -!- kbingham(~kbingham@92.0.11.166) has joined #tux3 2008-09-10 03:13 -!- kbingham(~kbingham@193.132.141.186) has joined #tux3 2008-09-10 06:07 -!- stargazr5(~gauravstt@59.95.3.98) has joined #tux3 2008-09-10 07:02 -!- stargazr5(~gauravstt@59.95.35.187) has joined #tux3 2008-09-10 08:03 -!- RzM|Away(~RazvanM@pool-151-196-118-156.balt.east.verizon.net) has joined #tux3 2008-09-10 09:28 -!- RazvanM(~RazvanM@dazzler.isi.jhu.edu) has joined #tux3 2008-09-10 10:36 -!- Kirantpatil(~kiran@122.167.179.145) has joined #tux3 2008-09-10 10:37 -!- Kirantpatil(~kiran@122.167.179.145) has left #tux3 2008-09-10 11:19 -!- Bobby(~Bobby@122.160.64.177) has joined #tux3 2008-09-10 11:19 hello 2008-09-10 11:25 -!- Bobby(~Bobby@122.160.64.177) has joined #tux3 2008-09-10 11:51 -!- Bobby(~Bobby@122.160.64.177) has joined #tux3 2008-09-10 12:19 morning 2008-09-10 12:35 reading the lesson from last night 2008-09-10 12:35 test of fire 2008-09-10 12:49 int set_xattr(struct inode *inode, char *name, unsigned len, void *data, unsigned size) 2008-09-10 12:49 { 2008-09-10 12:49 atom_t atom = get_atom(inode->sb->atable, name, len); 2008-09-10 12:49 return xcache_update(inode, atom, data, len); 2008-09-10 12:49 } 2008-09-10 12:49 short and sweet? 2008-09-10 12:51 yes 2008-09-10 12:52 should that be xcache_update(inode, atom, data, size)? 2008-09-10 12:54 it should 2008-09-10 12:54 now is 2008-09-10 12:55 was originally going to be namelen and datalen 2008-09-10 12:55 it reads better as it is now 2008-09-10 12:55 now lets see if it works 2008-09-10 12:57 the test sets xattrs on the atom table directory inode 2008-09-10 12:58 it works 2008-09-10 12:58 set_xattr(inode, "foo", 3, "bar", 3); 2008-09-10 12:58 xcache_dump(inode); 2008-09-10 12:58 xattr 1: 0x8050fc8: 62 61 72 "bar" 2008-09-10 12:58 the test would have passed even with the bug above ;-) 2008-09-10 13:10 -!- kbingham(~kbingham@92.20.206.84) has joined #tux3 2008-09-10 13:14 next step is to get xattrs on/off disk 2008-09-10 13:28 notice in the above factoring we can easily have multiple atom tables 2008-09-10 13:28 I wonder what that is good for 2008-09-10 13:28 multiple xattr namespaces 2008-09-10 13:31 -!- kbingham(~kbingham@92.22.74.132) has joined #tux3 2008-09-10 13:35 "Stasticially speaking, the part of your disk that loses data is probably in the movies that suck, not the movies that are good, simply because the vast majority of movies suck. " -- http://alumnit.ca/~apenwarr/log/?m=200809#08 2008-09-10 13:35 wiser words were seldom spoken 2008-09-10 13:43 ACTION discusses concurrency issues with flips  2008-09-10 13:45 thinking about how'd I parallelize b-tree operations 2008-09-10 13:47 righto 2008-09-10 13:48 first obvious invariant: lock acquisition order is root-to-leaf 2008-09-10 13:49 obvious optimization rule: nodes near the root must not stay locked for long periods, including never locked across a read of disk data, other than the data of the ndoe itself 2008-09-10 13:51 nuther obvious one: no holding of locks above a node being read from disk 2008-09-10 13:51 this one is kinda tough sometimes, in cases like rename where the vfs holds locks 2008-09-10 13:59 here's a subtle and important one: subtrees below a locked node can be locked by another process, this is normal and important for throughput 2008-09-10 14:00 time for another hit of that excellent ramen 2008-09-10 14:28 hmm, I should probably stop put contributers email addys in the first line of the log 2008-09-10 14:28 where spambots can get them 2008-09-10 14:29 second line is most likely ok, it's the contributers call: do they want fame + spam? or just satisfaction? 2008-09-10 14:29 personally I try to err on the side of fame and have efficient spam filters 2008-09-10 14:31 my email is in tons of public places already, I've already got decent spam filters 2008-09-10 14:33 finished reading through last night's lesson 2008-09-10 14:33 and accompanying lxr pages 2008-09-10 14:34 and? 2008-09-10 14:35 ACTION can confirm that this ramien is excellent 2008-09-10 14:37 so my question (maybe it's stupid): what is an inode? 2008-09-10 14:37 my current guess is 'an in-memory representation of the stuff surrounding a file, except for the contents' 2008-09-10 14:38 it's two or three things that are often conflated 2008-09-10 14:39 1) (the real def) it is a structure that caches the details of a filesystem object or device object in the vfs 2008-09-10 14:39 2) it is the image of an above object in file store 2008-09-10 14:40 3) it is the numeric id of the backing store image of an inode 2008-09-10 14:40 actually, 0) it is an object that caches all the data and attributes of a filesystem object or system device 2008-09-10 14:41 the notion of object being separate from how it is cached or stored 2008-09-10 14:41 so you guess is close to the mark 2008-09-10 14:41 very close 2008-09-10 14:41 alright 2008-09-10 14:41 in tux3, sometimes caches the contents as well 2008-09-10 14:42 well 2008-09-10 14:42 always caches the contents 2008-09-10 14:42 because it points at a "mapping" 2008-09-10 14:42 which is a radix tree that points at the cached pages of the data of the inode 2008-09-10 14:43 also caches the xattr data, which in tux3 is nearly the same as the file data 2008-09-10 14:43 heh 2008-09-10 14:43 how does ext[234] and friends handle xattr data and quotas? 2008-09-10 14:44 weirdly 2008-09-10 14:44 in both cases 2008-09-10 14:44 read ext3/xattr.c 2008-09-10 14:44 going 2008-09-10 14:45 tries to pack xattrs for different inodes together in blocks, then notice when entire xattr blocks are the same and have multiple pointers to them from different inodes 2008-09-10 14:45 quotas are done through this awful vfs-level abstraction 2008-09-10 14:45 quota files 2008-09-10 14:45 a real mess 2008-09-10 14:45 wrong idea 2008-09-10 14:46 I am not sure whether there is any connection between xaddrs and quota in ext* 2008-09-10 14:47 actually, the vfs thoughtfully provides a bypass around the quota file mess so a filesystem that wants to do it right can do so 2008-09-10 14:47 don't know if anybody uses that bypass 2008-09-10 14:52 for ext3: All attributes must fit in the inode and one additional block. 2008-09-10 14:55 right. lame. 2008-09-10 14:56 heh. 2008-09-10 14:57 tux3 goes at it more like HFS file fork 2008-09-10 14:57 ext3 uses the macros le32_to_cpu (and equivalently for tux3, be??_to_cpu) 2008-09-10 14:57 strangely, macos doesn't do xattrs like file forks, it limits them like ext* 2008-09-10 14:57 I'm going to respell those I think 2008-09-10 14:57 they're clunky 2008-09-10 14:58 from_be_u32 and to_be_u32 <- less clunky 2008-09-10 14:59 or from_beu32 and to_beu32 2008-09-10 15:00 or from_u32b and to_u32b 2008-09-10 15:00 vs from_u32l and to_u32l 2008-09-10 15:00 or from_u32be and to_u32be 2008-09-10 15:00 vs from_u32le and to_u32le 2008-09-10 15:01 not quite decided 2008-09-10 15:01 but probably will do a big spam edit in the next couple of days to make it better than it is 2008-09-10 15:01 we have a lot of endian work ahead of us and the inlines should support it, not get i n the way 2008-09-10 15:03 from_beu32 and to_beu32 <- this is probably the form that is the easiest the edit and least likely to offend kernel hacks 2008-09-10 15:03 easist to edit I mean 2008-09-10 15:04 in kernel they will likely just be #defined to be the kernel faves 2008-09-10 15:04 it's pathetic that gcc doesn't just make this an attribute 2008-09-10 15:56 my vote: 2008-09-10 15:56 from_u32be and to_u32be 2008-09-10 15:57 ok 2008-09-10 15:57 seems easiest to read 2008-09-10 15:57 I think yours is the casting vote because you are the only one who voted 2008-09-10 15:57 ;-) 2008-09-10 15:59 I know there's already been tons of discussion about C++ in the kernel, but sometimes, some aspects of it (OO, private fields, accessors) would make the interfaces so much cleaner... 2008-09-10 15:59 it's too bad some sort of OO shim can't be included in C 2008-09-10 16:00 really 2008-09-10 16:00 too bad the C and C++ camps don't even speak to each other any more 2008-09-10 16:00 feel free to write a chunk of tux3 in c++ if you want 2008-09-10 16:00 for example, tux3.c 2008-09-10 16:01 c++ desperately needs designated initializers 2008-09-10 16:13 maze, there ya go 2008-09-10 16:14 hmm? what do you mean? 2008-09-10 16:14 I see that the tux3 announcement is more popular than the 2.6.24.4 announcement on lkml.org 2008-09-10 16:14 endian conversions respelled according to your taste 2008-09-10 16:14 2.6.24.7 was out already ;-) 2008-09-10 16:14 oh, right , cool! 2008-09-10 16:14 so you probably mean 2.6.26.4 which was a screw up and was soon 2.6.26.5 2008-09-10 16:15 heh 2008-09-10 16:15 you'd think that would make the announcement even more popular 2008-09-10 16:15 what was the screw up? 2008-09-10 16:15 it didn't compile ;-) 2008-09-10 16:16 wow 2008-09-10 16:16 really? 2008-09-10 16:16 how could that happen 2008-09-10 16:16 at least some relativelly important option 2008-09-10 16:16 we should donate gregkh a computer 2008-09-10 16:16 http://kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.26.5 2008-09-10 16:17 there's a build option exactly to catch stuff like that 2008-09-10 16:17 and... how about trying to build before posting? 2008-09-10 16:17 not that I always do it 2008-09-10 16:17 oh, at least he fixed it by releasing a new number 2008-09-10 16:18 the the consequences of messing that up are less far reaching with tux3 than stable linux 2008-09-10 16:18 I've got some best-left-unnamed teams that like to release bugfixed version of sw with the same version number 2008-09-10 16:18 right, and hundreds or thousands of people who innocently download the screwup will be confused and/or annoyed 2008-09-10 16:19 people don't download that quickly 2008-09-10 16:19 because one of the things gregkh also doesn't do, is rename screwups as -dontuse 2008-09-10 16:19 it was fixed in 6 hours 2008-09-10 16:19 yes they do 2008-09-10 16:19 most people pick it up through the distros 2008-09-10 16:19 check out the load spikes on lkml.org 2008-09-10 16:19 sorry 2008-09-10 16:19 kernel.org 2008-09-10 16:19 I'm still running 2.6.26.3 and waiting for a reboot to hit 2.6.26.5... 2008-09-10 16:20 with even my laptop getting average uptimes of 3-4 weeks, reboots ain't that often, so upgrades ain't that often 2008-09-10 16:20 behind ;-) 2008-09-10 16:20 I won't mention what I'm running ;-) 2008-09-10 16:20 my workstation is also the tux3.org server 2008-09-10 16:20 I really want 2.6.27.1 to come out though 2008-09-10 16:20 so I don't reboot much 2008-09-10 16:20 heh 2008-09-10 16:20 or try the latest flights of fancy of kernel devs to soon 2008-09-10 16:20 the wireless driver ath9k should fix a lot of my wireless woes 2008-09-10 16:21 me too 2008-09-10 16:21 <- notice the 2.6.27.1 ;-) when 2.6.27 isn't out yet 2008-09-10 16:21 I figure once 2.6.27.1 is out 2.6.27 shouldn't eat your data anymore 2008-09-10 16:21 looking forward to it with almost as much anticipation as an open ati driver that performs better than 50% as well as the bespoke one 2008-09-10 16:21 heh 2008-09-10 16:22 I did upgrade to 2.6.27rc3 and I'm not sure whether it was ath9k, or 2.6.27 or a bad build 2008-09-10 16:22 ok, have to do something about a haircut now 2008-09-10 16:22 or bad config options 2008-09-10 16:22 before jumping back in and finishing up adding xattr support to tux3.c 2008-09-10 16:22 but it promptly ran out of swiotlb buffers and corrupted my hard disk 2008-09-10 16:23 my ath woes are taken care of by having an eee 2008-09-10 16:23 spent a weekend recovering... thankfully had a one week old backup (earlier that week my laptop stopped booting...) 2008-09-10 16:23 they messed with setting up the binary/evil driver 2008-09-10 16:23 works great 2008-09-10 16:23 course I've got a bunch of other aths around taht would benefit 2008-09-10 16:23 my wife's machine for example 2008-09-10 16:24 I'm using madwifi drivers now on a macbook pro 3,1 - they work, but occasionally they disconnect, and you need to unload and reload the entire wireless stack 2008-09-10 16:24 which has a wire running into it because I don't have the energy to mess with the braindamanged firmware laod 2008-09-10 16:24 madwifi has been solid as a rock for me in the 4-5 years I've used it 2008-09-10 16:24 on a pci wireless 2008-09-10 16:25 I have a 'fix-wireless.sh' running in an xterm - it pings default gateway, if it's unreachable for 5 seconds, then prompty shuts down dhcpc/wpa_supplicant/wireless and brings it all back up - best part is you don't even lose existing established network conenctions (ssh, etc) 2008-09-10 16:26 it's still annoying though, because you occasionally get these 15 second pauses (happens maybe once an hour) 2008-09-10 16:26 :p 2008-09-10 16:27 I was running a very old incarnation of madwifi 2008-09-10 16:27 likely some value in that 2008-09-10 16:27 couldn't get the latest working after trying for an hour or so, so just plugged in the wire 2008-09-10 16:27 which is way faster anyway 2008-09-10 16:28 agreed, you want wired for everything stationary 2008-09-10 16:28 laptops aren't stationary though... 2008-09-10 16:29 right, which is why I love my eee 2008-09-10 16:29 don't have to worry about a thing, somebody else does 2008-09-10 16:30 not to mention the fact that it fits comfortably in the flap of my camera backpack 2008-09-10 16:32 it runs linux? 2008-09-10 16:32 yes 2008-09-10 16:32 beautifully 2008-09-10 16:32 by default? 2008-09-10 16:33 everybody loves it here 2008-09-10 16:33 yes 2008-09-10 16:33 hmm 2008-09-10 16:33 funny thing is, the linux and windows versions cost the same, but you get 20G of flash disk with linux and only 12G with XP 2008-09-10 16:33 901 is the one to get 2008-09-10 16:34 I have the 900 and I'll probably pick up a 901 pretty soon 2008-09-10 16:34 need more than one for this family 2008-09-10 16:40 tux3 has bloated up to ~6,500 lines of .c + .h, sparsely commented and densely written, including unit tests 2008-09-10 16:41 so I think the kernel port will come in around 10K lines, complete with versioning, commit transactions and shiny new directory index 2008-09-10 16:41 about 1-2 months away from knowing 2008-09-10 16:41 depends a lot on how tux3 university goes ;-) 2008-09-10 16:52 http://userweb.kernel.org/~warthog9/damaged_server/ <- wow 2008-09-10 16:52 I'll think twice about using fedex 2008-09-10 16:57 sk8 oclock 2008-09-10 17:03 ouch 2008-09-10 17:03 are you counting the somewhat redundant tux3fuse/tux3fs in those 6500? 2008-09-10 18:30 -!- MaZe(~MaZe@216-239-45-4.google.com) has joined #tux3 2008-09-10 18:51 -!- nataliep_(~nataliep@66-102-14-1.google.com) has joined #tux3 2008-09-10 19:22 ACTION just realized that the next tux3 university is tomorrow and not today :P 2008-09-10 19:49 konrad, yes 2008-09-10 19:49 konrad, it was a joke 2008-09-10 19:49 6,500 lines at this point is really tight 2008-09-10 19:50 also includes the buffer and page cache emulation 2008-09-10 19:51 and none of tux3.c belongs in kernel, though it is probably the base on which tux3 mkfs and fsck will be built 2008-09-10 19:54 incidentally, that is about 1,000 lines/week 2008-09-10 19:54 a respectable pace 2008-09-10 19:55 especially considering the rewrite ratio is really high 2008-09-10 19:56 ACTION extracts the cork from a bottle of cabernet 2008-09-10 19:57 nice um, tasty california wine to go with the pasta 2008-09-10 19:57 unpretentious, unsophisticated, gives you its phone number right away 2008-09-10 19:58 top note of jelly beans 2008-09-10 20:55 next, inode.c need to know about loading and saving xattrs 2008-09-10 21:29 flips: very respectable 2008-09-10 21:29 especially if it all works 2008-09-10 21:30 the babernet worked fine 2008-09-10 21:30 cabernet 2008-09-10 21:30 <- proof 2008-09-10 21:30 ACTION has to arrange another cabal meeting 2008-09-10 21:31 bh, when you up here next? 2008-09-10 21:32 don't know 2008-09-10 21:32 I mean, really any time I want 2008-09-10 21:32 doesn't take long for san diego does it? 2008-09-10 21:32 right 2008-09-10 21:32 you'e not that far away 2008-09-10 21:32 I'll ping you when the next cabernet meeting comes up 2008-09-10 21:33 cabernet ? 2008-09-10 21:33 err 2008-09-10 21:33 cabal ;-) 2008-09-10 21:33 my tastes run more to bordeaux at cabal meetings 2008-09-10 21:33 or sake 2008-09-10 21:33 sorry, oh ok, well, that would be great. Did one happen today ? 2008-09-10 21:33 no, last was a week or so ago 2008-09-10 21:33 who came ? 2008-09-10 21:33 can't say, it's a cabal 2008-09-10 21:34 good peeps 2008-09-10 21:34 ok 2008-09-10 22:08 -!- RazvanM(~RazvanM@pool-151-196-118-156.balt.east.verizon.net) has joined #tux3 2008-09-10 22:19 -!- stargazr5(~gauravstt@59.95.19.195) has joined #tux3 2008-09-10 22:54 -!- pgquiles(~pgquiles@253.Red-83-44-239.dynamicIP.rima-tde.net) has joined #tux3