Older blog entries for wli (starting at number 1)

Minimal progress on the stratified trees but some pointy haired issues came up that distracted me for a while.

Reviewed some small changes from Sam Ortiz that look pretty as far as getting SGI's discontigmem stuff to play happily in combination with removing ->virtual. It's not clear whether it will perform well as it apparently takes some doing (in terms of CPU cycles, the code is not that bad) to remap mem_map array indices to page frame number offsets. Hopefully that won't be too bad, but if it is, ->virtual is #ifdef'd and can be brought back by that method.

Tried to take a harder look at the discontigmem thing itself but there's quite a bit there to wade through. I think I'll be waiting for the separated patch so I don't need to guess at which chunk corresponds to which feature it's trying to implement. If it were smaller (which I'm not sure it can be) it'd be easier to get a full picture, but it'll only get smaller by becoming multiple patches.

Finally got a look at Pat's NUMA-Q discontigmem patch and was very impressed, the code was very clean and very readable. I'll have to take a harder look to be sure I've done due diligence with respect to it not breaking other things but it's very nice.

The hashing flamewar apparently degenerated to the name-calling level, though the name-caller does not have a particularly good reputation. I don't care. I'll continue collecting hash table metrics and their measurements from test runs. Sounds like I might be having a benchmark weekend. Again.

Signed up for advogato after some guy posted a lame spelling flame in response to my kerneltrap interview and then slapped a silly thing about it into his diary here. Looks like an interesting way to log the various things I'm doing.

Did some more tweaking for code cleanliness of treap implementation for the bootmem patch and some more testing on segment_tree.h. The main issues are mostly testing and purifying the code to eliminate macros. Page stealing and type tagging are still pretty far off. Bootmem is really a background task.

The waitqueue vs. printk bootstrap ordering issue doesn't appear to be the only one. My suspicion now is an error committed while doing insertions on the comb lists corrupting the structure of the collision chains.

Stratified trees appear to be a bit of work to think out properly but it looks like when the code is boiled down to its essence it will actually be very simple.

Laid out some C code to get the Lyapunov exponents of hash functions and the entropy of the bucket distribution. Also started translating some of the other scripts I wrote to C. It'd be a little easier if there were something to check it against but for the entropy at least there are some analytically calculable results whose input distributions will work as test cases. For the Lyapunov exponent some more reading may be required. I seem to be having a little trouble getting the C version of the Anderson-Darling statistic's CDF to converge too, but that's a bit much for one day. This is pretty easy stuff to do but actually running the tests to get results to analyze the statistics of is so time-consuming it doesn't feel like it will ever get a decent timeslice.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!