Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Oct 2015 17:46:21 +0200
From:      =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <roger.pau@citrix.com>
To:        =?UTF-8?Q?Roger_Pau_Monn=c3=a9?= <royger@FreeBSD.org>, <src-committers@freebsd.org>, <svn-src-all@freebsd.org>, <svn-src-head@freebsd.org>
Subject:   Re: svn commit: r289834 - head/sys/x86/x86
Message-ID:  <562A564D.9080703@citrix.com>
In-Reply-To: <201510231539.t9NFdxPe018130@repo.freebsd.org>
References:  <201510231539.t9NFdxPe018130@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?562A564D.9080703>