DMA failures on AMD64 with 4 GB RAM

Søren Schmidt sos at deepcore.dk
Mon Nov 28 17:20:34 GMT 2005


Scott Long wrote:
> Søren Schmidt wrote:
> 
>> Attila Nagy wrote:
>>
>>> Hello,
>>>
>>> There is a problem with recent ATA drivers on (at least) AMD64 with 4 
>>> GB of RAM, which can be triggered by synchronizing a geom mirror 
>>> provider to another one (or generally a bigger disk I/O, I guess).
>>>
>>> The machine dies instantly with the following:
>>> GEOM_MIRROR: Device hars: rebuilding provider ad6.
>>> ad6: setting up DMA failed
>>> ad6: setting up DMA failed
>>>
>>> This is true either on RELENG_6 and on HEAD as of today.
>>>
>>> There are two workarounds:
>>> - use the ata driver from RELENG_6 which is not older than 2005.10.08
>>> - set hw.physmem smaller than 4G
>>>
>>> Are there any chances to resolve this issue?
>>>
>>> Thank you.
>>>
>>> ps: there was some discussion about this:
>>> http://marc.theaimsgroup.com/?l=freebsd-amd64&m=113034973432742&w=2
>>> where Søren said it might be busdma, not the ata driver and Scott 
>>> promised to look into that.
>>
>> The resolution was that busdma doesn't work as advertised in the man 
>> page, and that scottl would look into it
> 
> Well, the more accurate statement is that the manpage is not the
> authoritative design document, but rather a poorly adapted
> representation of how the subsystem might work on NetBSD =-)  So
> busdma needs to be fixed to provide what the drivers need, and
> the manpage needs to be fixed to reflect how things actually work.
> 
> In any case ATA still doesn't come anywhere close to conforming to
> the busdma API, and I doubt that me rewriting the manpage will fix
> that.

Hmm, thats not how I recall the conclusion, but anyway..

Please mark ATA as broken for > 4G of memory then, I have no immediate 
plans to rework the entire logic to bend over backwards for busdma's 
callback centric world just yet.

-Søren


More information about the freebsd-current mailing list