Thanks for finding the problem. I'll rework James' patch to take into account your comments and give it a try. Mike Moore, Eric wrote: > On Thursday, June 15, 2006 8:51 AM, Michael Reed wrote: > >>> What overhead? We don't read config pages on every I/O. James >>> patch only effects the reading of config pages when there is >>> a host reset. >> I think you're mistaken about James' patch. >> >> Doesn't every i/o use a message frame? James' patch to sleep on frame >> exhaustion requires a wakeup every time a msg frame is released, >> which is performed at the end of mpt_put_msg_frame(). Am I missing >> something? >> >> > > Ok, my mistake. I overlooked the wake_up() at the end of > mpt_put_msg_frame(). > > BTW, this is incorrect. The wake_up() should been in > mpt_free_msg_frame(), > instead of mpt_put_msg_frame(). The _put_ function is sending the mf > to > the firmware. The mf is not freed untill the command is completd by > firmware, > and the _free_function is called. Meaning this issue can be solved by > moving > wake_up() to mpt_free_msg_frame(), and only calling wake_up() when the > list_empty(&ioc->FreeQ) was empty going into this call. > > Eric Moore > - : 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