dpt_i2o: cycle with interrupts disabled [message #7082] |
Tue, 03 October 2006 09:29 |
vaverin
Messages: 708 Registered: September 2005
|
Senior Member |
|
|
Mark,
I would like to tell you that we have included your driver into our kernels.
Unfortunately it does not work well and our customers who tried to use it
instead of i2o_block driver claims on the node lockups.
We have received error messages, it shows that NMI watchdog detected that your
driver loops in the following cycle up to 30 sec with interrupts disabled:
scsi_dispatch_cmd() (spin_lock_irqsave(host->host_lock, flags);)
host->hostt->queuecommand() == adpt_queue()
adpt_scsi_to_i2o()
adpt_i2o_post_this():
...
ulong timeout = jiffies + 30*HZ;
do {
rmb();
m = readl(pHba->post_port);
if (m != EMPTY_QUEUE) {
break;
}
if(time_after(jiffies,timeout)){
printk(KERN_WARNING"dpti%d: Timeout waiting for message
frame!\n", pHba->unit);
return -ETIMEDOUT;
}
} while(m == EMPTY_QUEUE);
...
Have you probably some ideas how to fix this issue in a proper way?
Thank you,
Vasily Averin
SWsoft Virtuozzo/OpenVZ Linux kernel team
|
|
|