This lockless memory based synchronization in csd_lock_wait just
doesn't work on all smp systems because not all of them properly
implement these fancy memory fencing instructions.  I've run into this
before trying to do lockless queueing on a range of SMP systems.
About the only thing guaranteed to work is a lock assertion because
this tells the processor to flush its pipeline.  So this csd code is
busted on some systems.

This other hang condition with the sysret just makes it show up as a
deadlock in csd_lock_wait.

Jeff

Reply via email to