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....@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. > _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"