Minutes for 1/25 LSE Con Call - compiled by hannal@us.ibm.com Jesse Barnes : "Memory-Mapped I/O Barriers" Just got a patch accepted into 2.5. It orders io for their (sgi) IA64 platform. The problem was writes from io space from different cpus were not gauranteed to arrive in order. He wrote the Macros in a generic enough way that other architectures should be able to use it. So far only Anton from ppc64 has expressed interest in using it. Jesse suspects NUMA might have this problem too. Martin doesnt think IO would be gauranteed to arrive in order on IBM's ia32 NUMA either. But Gerrit says it doesnt matter because there is higher level locking that orders io. Jesse says locking is not sufficient, need to flush io first. Jack Steiner says it takes a very large system (16-32 nodes) to see the problem. Gerrit doesnt think NUMA will have the same problem. Jesse said there is a small document describing issue in latest ia64 patch included in 2.5 (doc is in the patch). "mmtimer patch" The mmtimer patch is a driver that provides a generic timer interface for applications. It hasnt been submitted for inclusion yet. He wanted to get some feedback first. Check out archives in http://www.linuxia64.org Suparna Bhattacharya : "Looking at 2.5 block io changes" Suparna said now that some of the 2.4 issues have been worked out with the new bio structure. What are the remaining problems that need to be solved in the generic block io layer? Has anyone tried out the 2.5 stuff yet? o scsi layer using tasklets? Jesse asked does the scsi layer still use bottom half handlers? Has it been changed to use tasklets yet? Gerrit said we are looking at doing that for 2.4 havent looked at doing it for 2.5 yet. Jesse thinks iorequest queue per device locking combined with scsi tasklets instead of bh handlers should help. o plug and unplug problem: Jesse brought up the problem that when one device is unplugged then all devices are unplugged. There are times when you want to unplug only one device and leave the others plugged. Suparna said Jens Axboe has had this on his TODO list to fix for some time but last time she checked it was still a problem in 2.5. o kiobuf - Jesse mentioned that instead of kiobuf need higher level abstraction. Ben LaHaise is working it. It is all about having a way to represent memory fragments abstraction. kvec is a new interface that aio (asynch io) and bio (block io) use. kvec might eventually replace kiovec. Jesse said Suparnas' writeup about this is well done and very helpful. She has posted them on the lse io page. o Large system problems. Bill Hartner said his team hit four main I/O related problems in testing the 2.4 they are as follows, have they been fixed in 2.5? Bounce Buffers Below 4gb - Suparna said this has been fixed. Large IO support - Suparna said this has been fixed. Bounce Buffers Above 4gb - Suparna is not sure, thinks Dave Miller fixed Global io_request_lock - Suparna said this has been fixed. o Elevator Algorithm - Suparna asked if there is any input on the elevator algorithm? Gerrit said Oracle has always said they can schedule io better for their needs. Suparna said Jens Axboe has cleaned up the interface nicely. Gerrit asked what the granularity is and Suparna said per queue. Bill Hartner said his gruop has it on their todo list to test removing the elevator algorithm and the results will be sent out to lse-tech in a week or two. They will use an 8-way with a database workload running rawberry, readv and iorequest_lock patches.