svn commit: r318021 - in head/sys/arm: arm include
Andrew Turner
andrew at fubar.geek.nz
Tue May 9 15:09:09 UTC 2017
> On 9 May 2017, at 13:40, Michal Meloun <melounmichal at gmail.com> wrote:
>
>
>
> On 09.05.2017 13:34, Andrew Turner wrote:
>>> On 9 May 2017, at 12:05, Michal Meloun <mmel at FreeBSD.org> wrote:
>>>
>>> Author: mmel
>>> Date: Tue May 9 11:05:32 2017
>>> New Revision: 318021
>>> URL: https://svnweb.freebsd.org/changeset/base/318021
>>>
>>> Log:
>>> Introduce pmap_remap_vm_attr(),
>>> it allows to remap one VM memattr class to another.
>>>
>>> This function is intent to be used as workaround for various SoC bugs,
>>> mainly access ordering/sequencing related bugs in crossbar fabric.
>> This seems quite heavy handed to change the attribute for all memory of a given type.
> Yes, exactly. See comment in D10218 -
> /*
> * Workaround for Marvell Armada38X family HW issue
> * between Cortex-A9 CPUs and on-chip devices that may
> * cause hang on heavy load.
> * To avoid that, map all registers including PCIe IO
> * as strongly ordered instead of device memory.
> */
I don’t think it’s been answered if this is just for PCIe, or all devices.
>
>> Other architectures have pmap_change_attr to change the attribute on a specific range of memory.
> Right. Problem is that I don't known any method how we can change
> memory attribute for live memory in SMP system,
> without hitting undefined behavior.
I would expect drivers to change the attributes early, before they access the memory. We could also use smp_rendezvous to ensure nothing else is running, this will have a performance code, however I would not expect pmap_change_attr to be used in the fast path.
Andrew
More information about the svn-src-head
mailing list