Date: Thu, 12 Aug 2021 17:53:35 +0200 From: Roger Pau =?utf-8?B?TW9ubsOp?= <royger@FreeBSD.org> To: John Baldwin <jhb@FreeBSD.org> Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: f4c6843ec2b9 - main - xen: use correct cache attributes for Xen specific memory regions Message-ID: <YRVD/0OwIlRqtBZE@Air-de-Roger> In-Reply-To: <d1f8a587-5b7f-91bd-3daf-eba1a1c77bab@FreeBSD.org> References: <202108120724.17C7OJ8h043708@gitrepo.freebsd.org> <d1f8a587-5b7f-91bd-3daf-eba1a1c77bab@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Aug 12, 2021 at 08:20:51AM -0700, John Baldwin wrote: > On 8/12/21 12:24 AM, Roger Pau Monné wrote: > > The branch main has been updated by royger: > > > > URL: https://cgit.FreeBSD.org/src/commit/?id=f4c6843ec2b9aa5eff475778fb000ed6278c5b77 > > > > commit f4c6843ec2b9aa5eff475778fb000ed6278c5b77 > > Author: Roger Pau Monné <royger@FreeBSD.org> > > AuthorDate: 2021-04-09 09:31:44 +0000 > > Commit: Roger Pau Monné <royger@FreeBSD.org> > > CommitDate: 2021-08-12 07:18:32 +0000 > > > > xen: use correct cache attributes for Xen specific memory regions > > bus_activate_resource maps memory regions as uncacheable on x86, which > > is more strict than required for regions allocated using xenmem_alloc, > > so don't rely on bus_activate_resource and instead map the region > > using pmap_mapdev_attr and VM_MEMATTR_XEN as the cache attribute. > > Sponsored by: Citrix Systems R&D > > It would probably be cleaner to use bus_map_resource() for this instead. It > would mean you would have to use a structure that writes to as the argument > to bus_read/write_* instead of using the resource directly. Those regions are usually handled to other subsystems of the kernel. They are mostly used to map memory from other domains and then perform IO on their behalf (like blkback and netback do), so it's not really possible to assert that all users of the regions would use bus_read/write_* to access them. I could however switch to using bus_map_resource if I can pass the desired memory cache attribute and get a linear address back. It looks like resource_map_request parameter allows to select the cache attribute. Thanks, Roger.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YRVD/0OwIlRqtBZE>