On Fri, Mar 25, 2011 at 8:54 PM, James Bottomley <James.Bottomley@xxxxxxx> wrote: > On Fri, 2011-03-25 at 20:49 +0100, Bart Van Assche wrote: >> A storage target subsystem is more demanding than e.g. udev. As an >> example, for the session reassignment logic in SCST it is necessary to >> remove and create user space visible objects synchronously and under >> lock. Both are necessary - the locking and the synchronous >> manipulation of user space objects. I'm not sure it is possible to >> convert such an approach to something based on asynchronous userspace >> upcalls. > > Really, no ... this is an example of an a-priori design fault. What it > implies is that the user and kernel share locks for state access, which > always leads to deadlocks. A correctly separated event driven model > shouldn't need state locks across event subsystems. > > Just because SCST couldn't get it right, doesn't mean that no-one else > can. Hi James, There seems to be a misunderstanding. There is no design fault at all in SCST in this area - since SCST uses sysfs the session reassignment code doesn't trigger any lock inversion at all. Such lock inversion would only be triggered if someone would try to convert that code to configfs. Also, the reason I mentioned that example was not to invite criticism on that specific example but to illustrate that in a storage target some algorithms can only be implemented correctly by synchronously updating the internal state and the state of a self-describing interface like sysfs or configfs. It's not because udev doesn't need this that no other subsystem needs this. Bart. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html