Older blog entries for axboe (starting at number 20)

Oops, haven't updated in a couple of days...

Wrote the code to support KIOBUF_IO that SGI uses in their XFS file system pagebuf. Unfortunately there's something up with the XFS cvs right now (unable to obtain lock bla bla), so I can't diff it and send it to Chaitanya, hopefully it'll be back up tomorrow. Gave me a chance to test the new Maxtor drives I have received, they are working great. SCSI still has quite a performance edge, though.

Also finished the last updates to 2.2.16-pre and sent them to Alan. I think I made it just before he left ;-).

My CX drive is stuck in Hannover according to the UPS package tracker. I hope they can get it here by tomorrow so that I can start hacking on pktcdvd again this weekend. My fingers are really itching to get back to that... Preparing for the worst case scenario (that I still can't get my data out), I checked with Ibas how much a data recovery operation would cost. An analysis is $475, recovery estimated between $975 and $1800. Auch.

For the uninformed - a CX drive will not work with EX nor ST Fireball electronics. It does make for interesting light and sound work, though.

Working with SGI folks to boost kio performance for XFS. Mainly just a natural extension of the original wait_on_buffer/page work I did when hacking ll_rw_blk.

Ported the recent CD + DVD-RAM fixes to 2.2.16-pre4. Now I just need to test a bit more, diff up, and send it off to Alan.

Ripped all the BLIST_GHOST SCSI hacks out. They were there to make DVD-RAM drives appear as a SCSI harddrive and CD-ROM at the same time. Besides from being a gross hack from day one, it also relied on a static list and new drives had to be added to that list to work. Ugh. Now DVD-RAM capabilities are determined at probe time and run entirely through the SCSI CD-ROM driver. We loose partioning for now, making that work would require changes to /dev/sr* and /dev/scd* and now is really not the time to do that.

Sent some stuff to Alan to include in 2.4.0-test1-ac1 (can the numbering get any worse?). The DVD-RAM stuff mentioned above, the VCD Plextor SCSI fixes, and other minors. Every time a new kernel comes out I have a 80kb diff, I want to unload some of that! I desperately need to split up the block queueing changes as well and start feeding some of that...

Later update: I found a 6.4GB CX harddrive at last! Many thanks to Brian Vincent for pointing me to a site that sold CX drives. Ok, I did end up paying $142.50 for it - I guess that is the price for not doing frequent backups.

Back in action and wading through heaps of e-mail. I will get that done eventually...

Went the rasmus' talk at DKUUG, mainly just to say hi to Rasmus again. I'm not much of a php/web geek!

Still looking for a Fireball 6.4GB CX drive, I can't fathom why they are so hard to find. Thanks to the people who mailed me with URL's for site that sell hardware, unfortunately nobody still has the CX as it is no longer in production. But I just know that there are a lot of them out there! I'm going to try the electronics from an EX drive in the next couple of days, maybe it'll work.

Going on vacation today. Back in a week.

Thanks to all the folks that wrote to me with suggestions regarding the Quantum hard drive. Unfortunately pricewatch does not have this model, but I then discovered that Quantum's web site still lists it as a current model so it can't be too bad. Tomorrow I think I'll walk from store to store until I find one.

Picked up tickets to my trip - I'll be away from 14/5 to 21/5, which I'm much looking forward to!

Put a 'CD-ROM patch FAQ' on kernel.dk. Hopefully that will save me from a lot of questions. Find it here.

Put up a new block patch with a couple of fixes. SCSI needs to cleanup the queue if it doesn't find a device or we leak requests. Other minor stuff as well. Find it here. Includes the IDE multiple HWIF request changes mentioned a couple of days ago as well.

Who was the ATA genius who thought that making the (Mt Fuji deprecated) GET_MEDIA_STATUS command only half-ATAPI like was a good idea? Fire the packet and then examine IDE registers to get the results, bravo.

Sent Andre some IDE fixes that eliminates the whole ide_doX_request type thing. IDE layer has a per drive queue and the whole #if MAX_HWIFS > X was a bit nasty. All that is now gone, IDE requst handling is IMHO much cleaner and Andre reports "the modifications to the request list jumped performance in a HUGE way" which is always nice.

Talked to alan on IRC - nice to finally find someone who agrees with me that magicdev is quite possibly the most horrible thing that ever happened. So started hacking on a magicdev that does things The Right Way (tm). For Mt Fuji style drives we can use the GET_EVENT / SEND_EVENT interface which is very nice. We can do cool stuff such as automounting on CD insert and safely umount and pop the CD out when the user presses the eject button. For older drives we have to use the 'Microsoft Media Status Notification' which is much more nasty. I'm sure this is going to be really cool :-)

Played with Andrea's classzone vm patch. This works very nicely for me, I/O performance is extremely good and doesn't cause much swap out. According to riel it is fundamentally broken. A good mm solution must show up soon!

Haven't registered for OLS yet, I should get around to doing this soon...

Had dinner with friends (Sandra is going to be really mad if I don't mention her here, so please endulge me) and watched our cats fight.

2.2.15 finally came out, I was starting to think this would never happen :-). Merged the DVD fixes for 2.2.16-pre2 with Alan, now it should be ready to go. It's going to be nice just to tell people to use 2.2.16-pre2 and above for DVD, and not having to bother helping them patch their kernels and answering questions about why distro XXX's kernel won't work with my patches. I get a LOT of those questions.

Found a bug in the IDE layer, where ide_spin_wait_hwgroup would be passed saved flags from a spin_lock_irqsave and restore from there. Apparently this is not news to sparc32 folks, where this breaks horribly. It worked on ia32 hardware, but it just looked so wrong. Jeff Garzik noted that if the function was never called with interrupts disabled, just using spin_lock_irq() is a win wrt speed and stack usage. That made the patch even nicer. Now I just need to push it to Andre.

Went to a friends appartment for dinner (hi Thomas, I know you are reading this! Have a good first day at work).

I believe the erratic performance davem saw is now fixed. Instead of having two request_freelist heads (one for reads and one for writes, where reads can steal from the write list if necessary) I use a single list head to hold the requests and let a counter keep track of when writes should block in get_request_wait. Writes can consume 2/3 of the queue, just like before. This approach has a couple of advantages, although it does not "seem" as clean. We save a bit of space in request_queue_t and struct request and get_request is simpler than before. I'm waiting to hear from davem claiming his free beer, before submitting this.

Removed the BROKEN_CAP_PAGE in ide-cd and let a simple id scan decide whether to include the full mode page cap size or not. Should make all drives happy, old as well as ACER50 and similar.

Started a document detailing the Linux block driver stuff.

11 older entries...

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!