From owner-svn-src-head@freebsd.org Tue May 9 15:09:09 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 26299D65561; Tue, 9 May 2017 15:09:09 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from fry.fubar.geek.nz (fry.fubar.geek.nz [139.59.165.16]) by mx1.freebsd.org (Postfix) with ESMTP id E9FA5935; Tue, 9 May 2017 15:09:08 +0000 (UTC) (envelope-from andrew@fubar.geek.nz) Received: from dhcp-10-248-107-222.eduroam.wireless.private.cam.ac.uk (global-5-142.nat-2.net.cam.ac.uk [131.111.5.142]) by fry.fubar.geek.nz (Postfix) with ESMTPSA id 0EC7C4E77F; Tue, 9 May 2017 15:09:07 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 10.3 \(3273\)) Subject: Re: svn commit: r318021 - in head/sys/arm: arm include From: Andrew Turner In-Reply-To: <8fe20c26-3c0c-98ce-227b-740491253047@freebsd.org> Date: Tue, 9 May 2017 16:09:06 +0100 Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Content-Transfer-Encoding: quoted-printable Message-Id: References: <201705091105.v49B5WAp097952@repo.freebsd.org> <85745E3A-3260-43C7-B134-85BFED786D55@fubar.geek.nz> <8fe20c26-3c0c-98ce-227b-740491253047@freebsd.org> To: mmel@freebsd.org X-Mailer: Apple Mail (2.3273) X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 May 2017 15:09:09 -0000 > On 9 May 2017, at 13:40, Michal Meloun wrote: >=20 >=20 >=20 > On 09.05.2017 13:34, Andrew Turner wrote: >>> On 9 May 2017, at 12:05, Michal Meloun wrote: >>>=20 >>> Author: mmel >>> Date: Tue May 9 11:05:32 2017 >>> New Revision: 318021 >>> URL: https://svnweb.freebsd.org/changeset/base/318021 >>>=20 >>> Log: >>> Introduce pmap_remap_vm_attr(), >>> it allows to remap one VM memattr class to another. >>>=20 >>> 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=E2=80=99t think it=E2=80=99s been answered if this is just for = PCIe, or all devices. >=20 >> 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=20 > 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