svn commit: r289834 - head/sys/x86/x86

Oliver Pinter oliver.pinter at hardenedbsd.org
Mon Nov 2 16:41:04 UTC 2015


On Mon, Nov 2, 2015 at 4:06 PM, Oliver Pinter
<oliver.pinter at hardenedbsd.org> wrote:
> On Mon, Nov 2, 2015 at 2:44 PM, Oliver Pinter
> <oliver.pinter at hardenedbsd.org> wrote:
>> On 11/2/15, Roger Pau Monné <royger at freebsd.org> wrote:
>>> El 29/10/15 a les 22.48, Oliver Pinter ha escrit:
>>>> Yes, at next week I have time for the test.  Please ping me again at
>>>> Monday.
>>>
>>> Ping :).
>>
>> Pong. :) I now stared a new build with the patch, so I will report
>> back 1-2 hours from now.
>
> It's better. :)
>
> root at nyi-01 src# git show | head -30
> commit 8f6110bd2e258b3f4224eb580e99fa142bebc727
> Author: Roger Pau Monne <roger.pau at citrix.com>
> Date:   Thu Oct 29 12:58:23 2015 +0100
>
>     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
>
> root at nyi-01 src# uname -a
> FreeBSD nyi-01.build.hardenedbsd.org 11.0-CURRENT-HBSD FreeBSD
> 11.0-CURRENT-HBSD #14 8f6110b(jenkins-world-kernel-20151102): Mon Nov
> 2 09:42:26 EST 2015
> root at nyi-01.build.hardenedbsd.org:/usr/obj/usr/src/sys/JENKINS  amd64
> root at nyi-01 src# uptime
> 10:05AM  up 3 mins, 2 users, load averages: 0.46, 1.09, 0.57
> root at nyi-01 src#
>
> Now I started a new jenkins build to see the patch under stress.

Okay, the server survived a full buildworld + installer generation
with the new patch.

>
>>>
>>>


More information about the svn-src-all mailing list