RFC: ATA to CAM integration patch
Alexander Motin
mav at FreeBSD.org
Mon Jun 29 14:31:14 UTC 2009
Alexander Motin wrote:
> Kamigishi Rei wrote:
>> Alexander Motin wrote:
>>> Sorry, my fault, it is the different bug, due to disabled invariants
>>> I have missed two locking issues. Here is regenerated patch,
>>> including this fix and all previous fixes and improvements:
>>> http://people.freebsd.org/~mav/cam-ata.20090629.patch
>>
>> OK, a question about the module: sometimes I'm getting loads (20+) of
>> messages like
>>
>> ahcich1: ALL SLOTS BUSY!
>>
>> Is it purely informational or does it indicate a problem? (I'm using
>> Intel Q35+ICH9 in AHCI mode.)
>
> It is bad. It must never happen. It means that driver got more commands
> then it has empty slots available. Results can be unpredictable.
>
> How have you manage it? Were there any other messages around?
I think I have found possible bug triggering condition.
Apply this patch please:
--- ahci.c.prev 2009-06-29 12:48:45.000000000 +0300
+++ ahci.c 2009-06-29 17:25:29.000000000 +0300
@@ -986,7 +986,7 @@ ahci_begin_transaction(device_t dev, uni
if (ch->slot[tag].state == AHCI_SLOT_EMPTY)
break;
} while (tag != ch->lastslot);
- if (tag == ch->lastslot)
+ if (ch->slot[tag].state != AHCI_SLOT_EMPTY)
device_printf(ch->dev, "ALL SLOTS BUSY!\n");
ch->lastslot = tag;
/* Occupy chosen slot. */
--
Alexander Motin
More information about the freebsd-current
mailing list