svn commit: r289834 - head/sys/x86/x86
Adrian Chadd
adrian.chadd at gmail.com
Mon Oct 26 12:24:45 UTC 2015
Hi,
I've started seeing panics on -head with ATA code doing a dmamap load
-> panic. I'll test by reverting this patch and see what happens, but
when it /does/ happen I can't get a crashdump, so debugging will be
less easy.
Has anyone else seen this?
-a
On 23 October 2015 at 08:46, Roger Pau Monné <roger.pau at citrix.com> wrote:
> El 23/10/15 a les 17.39, Roger Pau Monné ha escrit:
>> Author: royger
>> Date: Fri Oct 23 15:39:59 2015
>> New Revision: 289834
>> URL: https://svnweb.freebsd.org/changeset/base/289834
>>
>> Log:
>> x86/dma_bounce: rework _bus_dmamap_load_ma implementation
>>
>> The implementation of bus_dmamap_load_ma_triv currently calls
>> _bus_dmamap_load_phys on each page that is part of the passed in buffer.
>> Since each page is treated as an individual buffer, the resulting behaviour
>> is different from the behaviour of _bus_dmamap_load_buffer. This breaks
>> certain drivers, like Xen blkfront.
>>
>> If an unmapped buffer of size 4096 that starts at offset 13 into the first
>> page is passed to the current _bus_dmamap_load_ma implementation (so the ma
>> array contains two pages), the result is that two segments are created, one
>> with a size of 4083 and the other with size 13 (because two independant
>> calls to _bus_dmamap_load_phys are performed, one for each physical page).
>> If the same is done with a mapped buffer and calling _bus_dmamap_load_buffer
>> the result is that only one segment is created, with a size of 4096.
>>
>> This patch relegates the usage of bus_dmamap_load_ma_triv in x86 bounce
>> buffer code to drivers requesting BUS_DMA_KEEP_PG_OFFSET and implements
>> _bus_dmamap_load_ma so that it's behaviour is the same as the mapped version
>> (_bus_dmamap_load_buffer). This patch only modifies the x86 bounce buffer
>> code, other arches are left untouched.
>>
>> Reviewed by: kib, jah
>> Differential Revision: https://reviews.freebsd.org/D888
>> Sponsored by: Citrix Systems R&D
>
> Forgot to add:
>
> MFC after: 2 weeks
>
> Roger.
>
More information about the svn-src-head
mailing list