cvs commit: src/sys/dev/ata ata-all.c ata-all.h ata-card.c ata-cbus.c ata-chipset.c ata-disk.c ata-disk.h ata-dma.c ata-isa.c ata-lowlevel.c ata-pci.c ata-pci.h ata-queue.c ata-raid.c ata-raid.h ata-usb.c ata_if.m atapi-cd.c atapi-cd.h atapi-fd.c ...

Niclas Zeising niclas.zeising at gmail.com
Fri Apr 11 04:05:03 UTC 2008


Jeff Roberson wrote:
> I have two problems with this patch.  First, it seems to break my amr 
> device which is no longer able to probe disks.  Backing out this commit 
> fixes the problem.
> 
> Secondly, with WITNESS enabled my console is full of the following 
> errors on boot:
> 
> uma_zalloc_arg: zone "16" with the following non-sleepable locks held:^M
> exclusive sleep mutex ATA state lock r = 0 (0xffffff0004117678) locked @ 
> dev/ata
> /ata-queue.c:194^M
> exclusive sleep mutex ATA queue lock r = 0 (0xffffff00041176b0) locked @ 
> dev/ata
> /ata-queue.c:177^M
> KDB: stack backtrace:^M
> db_trace_self_wrapper() at db_trace_self_wrapper+0x27^M
> kdb_backtrace() at kdb_backtrace+0x3e^M
> witness_warn() at witness_warn+0x374^M
> uma_zalloc_arg() at uma_zalloc_arg+0x3f^M
> uma_zalloc() at uma_zalloc+0x20^M
> malloc() at malloc+0x122^M
> sysctl_add_oid() at sysctl_add_oid+0x11d^M
> alloc_bounce_zone() at alloc_bounce_zone+0x204^M
> bus_dma_tag_create() at bus_dma_tag_create+0x2d1^M
> ata_dmaload() at ata_dmaload+0x341^M
> ata_begin_transaction() at ata_begin_transaction+0x22f^M
> ata_start() at ata_start+0x24c^M
> ata_queue_request() at ata_queue_request+0x3da^M
> ata_raid_rw() at ata_raid_rw+0x14b^M
> ata_raid_adaptec_read_meta() at ata_raid_adaptec_read_meta+0x8a^M
> ata_raid_read_metadata() at ata_raid_read_metadata+0x297^M
> ata_raid_subdisk_attach() at ata_raid_subdisk_attach+0x57^M
> DEVICE_ATTACH() at DEVICE_ATTACH+0x84^M
> device_attach() at device_attach+0x3c^M
> device_probe_and_attach() at device_probe_and_attach+0x10d^M
> bus_generic_attach() at bus_generic_attach+0x23^M
> ad_attach() at ad_attach+0x25f^M
> DEVICE_ATTACH() at DEVICE_ATTACH+0x84^M
> device_attach() at device_attach+0x3c^M
> device_probe_and_attach() at device_probe_and_attach+0x10d^M
> bus_generic_attach() at bus_generic_attach+0x23^M
> ata_identify() at ata_identify+0x225^M
> ata_boot_attach() at ata_boot_attach+0x54^M
> run_interrupt_driven_config_hooks() at 
> run_interrupt_driven_config_hooks+0x79^M
> mi_startup() at mi_startup+0x11b^M
> 
> It's not legal to call bus_dma_tag_create with locks held.
> 
> Thanks,
> Jeff

Also, it seems to panic my machine. Can't confirm though, and since it 
was during a installworld my machine is too botched to do anything but 
reinstall. The panic string is: Too many DMA segment entries and the top 
of the backtrace, before the call to panic() is a call to 
ata_setup_interrupt(). Can't get further though as the system is totaly 
botched.
The controller is a intel AHCI one. I also got the same LORs as Jeff.
Regards!
Niclas

> 
> On Thu, 10 Apr 2008, S�ren Schmidt wrote:
> 
>> sos         2008-04-10 13:05:05 UTC
>>
>>  FreeBSD src repository
>>
>>  Modified files:
>>    sys/dev/ata          ata-all.c ata-all.h ata-card.c ata-cbus.c
>>                         ata-chipset.c ata-disk.c ata-disk.h
>>                         ata-dma.c ata-isa.c ata-lowlevel.c
>>                         ata-pci.c ata-pci.h ata-queue.c
>>                         ata-raid.c ata-raid.h ata-usb.c ata_if.m
>>                         atapi-cd.c atapi-cd.h atapi-fd.c
>>                         atapi-fd.h atapi-tape.c atapi-tape.h
>>  Log:
>>  Add experimental support for SATA Port Multipliers
>>
>>  Support is working on the Silicon Image SiI3124/3132.
>>  Support is working on some AHCI chips but far from all.
>>
>>  Remember this is WIP, so test reports and (constructive) suggestions 
>> are welcome!
>>
>>  Revision  Changes    Path
>>  1.282     +73 -57    src/sys/dev/ata/ata-all.c
>>  1.129     +42 -25    src/sys/dev/ata/ata-all.h
>>  1.41      +1 -1      src/sys/dev/ata/ata-card.c
>>  1.26      +1 -1      src/sys/dev/ata/ata-cbus.c
>>  1.213     +797 -266  src/sys/dev/ata/ata-chipset.c
>>  1.208     +117 -48   src/sys/dev/ata/ata-disk.c
>>  1.54      +1 -1      src/sys/dev/ata/ata-disk.h
>>  1.151     +160 -132  src/sys/dev/ata/ata-dma.c
>>  1.32      +1 -1      src/sys/dev/ata/ata-isa.c
>>  1.81      +31 -33    src/sys/dev/ata/ata-lowlevel.c
>>  1.124     +41 -40    src/sys/dev/ata/ata-pci.c
>>  1.84      +1 -2      src/sys/dev/ata/ata-pci.h
>>  1.70      +8 -3      src/sys/dev/ata/ata-queue.c
>>  1.127     +1 -1      src/sys/dev/ata/ata-raid.c
>>  1.47      +1 -1      src/sys/dev/ata/ata-raid.h
>>  1.8       +1 -2      src/sys/dev/ata/ata-usb.c
>>  1.8       +1 -1      src/sys/dev/ata/ata_if.m
>>  1.197     +4 -9      src/sys/dev/ata/atapi-cd.c
>>  1.48      +1 -1      src/sys/dev/ata/atapi-cd.h
>>  1.112     +3 -7      src/sys/dev/ata/atapi-fd.c
>>  1.28      +1 -1      src/sys/dev/ata/atapi-fd.h
>>  1.105     +5 -13     src/sys/dev/ata/atapi-tape.c
>>  1.26      +1 -1      src/sys/dev/ata/atapi-tape.h
>>
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> cvs-all at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/cvs-all
> To unsubscribe, send any mail to "cvs-all-unsubscribe at freebsd.org"



More information about the cvs-all mailing list