Minutes of March 8 Con Call (compiled by hannal@us.ibm.com)

Hubertus Franke - Fast User Level Locks (aka Futexes)

	Have been talking about user level locking for over a year in the
	Linux community. Have proposed a paper for OLS with Rusty Russell
	and others.

	Databases and middle tier aplications are multi process and have
	shared states (ie- buffer pools maintained by db). They are
	currently doomed to use method queues or file locking. Which are
	OK if locking is infrequent. But not OK if doing locking frequently 
	and locks are not held very long. 

	In the uncontested case do not go into the kernel. Just grap the 
	lock and continue. In the contested case do have to wait on the
	kernel. 

	Historically Linus said allocate a datastructure in the kernel 
	which will be apriori.  User level has secure handle to the data
	structure. Hubertus says the handle is a break of philosophy. 
	
	Hubertus proposed a kernel data structure with embeded semaphore. 
	If never hit contention never have to allocate. Hash the memory object 
	and virtual address. Then can allocate object on the fly. If have two 
	differetn memory objects get two different hashs. 

	Still have issues to resolve, check the lkml mailing list to 
	see the discussions.

	Rusty started with fd's then moved over to virtual addresses like
	Hubertus had. Rusy's code is now substantially smaller than Hubertus' 
	So Hubertus has moved over to help Rusty with their implementation.

	He expects it to be accepted eventually with more community input.

   Fair Locking vs Convoy Avoidance Locking: 
   	Convoy Avoidance Locking grants locks in the order processes arrive 
	at the lock when they are availale. In high contention situations
	this is not the right thing to do. Once there is a queue then 
	scheduling becomes the overhead bottleneck.  Since the lock is 
	immmediately released the process that just got woken up might not 
	get it. Databases would like to avoid fifo order. 

	Fair Locking- If the process that is scheduled wants a lock and
	the process that has it can release it then the lock is handed
	over to the process that is currently scheduled so it can do its
	work. 

	Hubertus would like people from the community to say which locks
	could benefit from fair locking and which ones would not.

Rick Lindsley - Locksort 

	Rick wanted a way to resort the lockmeter results based on fields 
	(or columns). He did this partly as an exercise in perl. Rick is 
	still polishing it up but it is ready for the spinlocks section
	of lockmeter results. 

	One nice thing is it maintains the functions that call the lock
	after resorting. You can choose different sort orders too.

	If you would like to have the script or give feedback to Rick
	send him email at: ricklind@us.ibm.com

Hanna Linder - Update on fast walk patch

	Half of patch (the easy half) was put in by Al in 
	2.5.6-pre3. So now my patch is half the size. I will resubmit 
	the more complex half against 2.5.6 with UP results.

	I will also submit the easy half of the patch to 2.4 followed
	by the complex half if it is accepted. Which shold be the big
	gains since it reduces kernel lock contention in 2.4 by
	50% running dbench with 16 clients on an 8-way. I will also
	have UP results for 2.4 soon.