Friday, December 30, 2011

A bunch of nothingness

I stared at a cuckoo clock that went off every half hour. One cuckoo for one half hour, two cuckoos for a full hour. I couldn't take my eyes off of it. Second by second, minute by minute. In the background I could hear a river -- or was it the wind? Light was slowly fading away into the evening. I stared at a wall where the clock was hung, and nothing changed much except the clock's surroundings. I didn't mind staring at the clock, in fact it was fascinating, I could focus on nothing. After about three or four cuckoos I started sipping tea slowly. The second time I poured tea I forgot to add sugar, that second time the tea tasted a lot better, a little more of nothing.

Time went by really slow, magically darkening the living room to the point we forgot it was completely dark. I hesitated every time anything came into my mind, and cringed when anything dared to disrupt this moment. The only thing lingering in the back of my head was a possible phone call but no one called yet. A sort of ring rang, but I ignored it, the ring was so faint it must not have been important and if it was a call I didn't care. Three or four more cuckoos and I realized soon I should do nothing but listen more carefully to a ringer, I had to zone back up.

After two cuckoos I realized the mug I was holding was branded as having been purchased in Jamaica with sand on the bottom and a nice ocean in the background. It had two coconut trees on it. It then dawned on me mug holder was actually a tree itself. I explained this out loud, it seems this was the first time this was ever pointed out and discovered. I was a pioneer.

From Dec 30, 2011
My alarm went, off, it was time to go. It was my cousin calling, she came to pick me up while I was visiting my grandmother in Costa Rica. I know deep down I'll treasure this moment, I was able to focus on nothing very clearly, and I did it while in my home country on vacation. Its sounds easier than it does, but its not -- I encourage others to try a bunch of nothing for a while.

This blog post is heavily inspired by Sujith's Ruminations

Monday, December 05, 2011

The bufferbloat alarms go off... again

The bullhorn poet speaks to the horizon.
At this point if you have not heard of bufferbloat and you work for a silicon company making networking hardware then it should explain why Jim Gettys and Kathleen Nichols have published an ACM paper on bufferbloat. I was only finally convinced on bufferbloat after the elaborate track on bufferbloat the Linux Plumbers conference in Santa Rosa, 2011. Let me make this crystal clear. Bufferbloat is not a "Linux issue", it affects all Operating Systems.

At this point the central development front for fixing bufferbloat (and modernizing other things) is on CeroWrt. Despite it being based on OpenWrt and this being a Linux distribution designed originally for 802.11 Access Points I want to make sure people are aware that not only is bufferbloat a complex problem as illustrated on the ACM paper but with regards to wireless we are entering uncharted territory and the issues are made even more complex with it. For example one mitigation factor is Byte Queue Limits (BQL patches are now merged upstream on the Linux development trees) but this does in no way consider 802.11's Point to MultiPoint possible topologies and how an Access Point may need to adjust its own, not only queue size, but also rate used to transmit frames. Consider also aggregation and how big your aggregates are and should be... Its not an easy problem to solve. One paper out there that did touch on 802.11 is Tianji Li's paper and one algorithm described there is eBDP. John Linville has implemented support for eBDP for on mac80211 but currently its design requires a bit more work to get upstream. John has noted that eBDP does follow some philosophical similarities to the minstrel rate control algorithm. The issues are so complex that I would expect no other philosophical approach to the problem. In a way, the minstrel philosophy parallels similar solutions to complex problems as illustrated by Tim Harford in his TED talk about the "God complex". I should note though that eBDP does not address aggregation though. There is a lot of room for improvement and research.

If you are still not convinced about bufferbloat I invite you to read my previous blog post about my own metrics. In short run Netalyzer while uploading (bittorrent, rsynch, scp) and look for the "Network buffer measurements" section. I encourage you to also run the test without uploading anything, at least for me I also get terrible results. If you are like me and share your 802.11 network with your neighbors or family you likely will have someone uploading something at any point in time, even if its small. Forget about a corporate environment where the 802.11 network is shared among many coworkers. This is also why I never use a coffee shop's 802.11 network even if its free, I get better performance over my cell phone's 4G and even 3G network, running my phone as a hotspot, than a shared 802.11 network at a coffee shop as my link is dedicated. If my phone had 5 GHz support I suspect I'd get even better results given that current phones only ship with 2.4 GHz 802.11 devices.