lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZLD1l1274hQQ54RT@lpieralisi>
Date:   Fri, 14 Jul 2023 09:13:27 +0200
From:   Lorenzo Pieralisi <lpieralisi@...nel.org>
To:     Benjamin Herrenschmidt <benh@...nel.crashing.org>
Cc:     kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
        alex.williamson@...hat.com, osamaabb@...zon.com,
        linux-pci@...r.kernel.org, Clint Sbisa <csbisa@...zon.com>,
        catalin.marinas@....com, jgg@...dia.com, maz@...nel.org
Subject: Re: VFIO (PCI) and write combine mapping of BARs

[+Catalin, Marc, Jason]

On Fri, Jul 14, 2023 at 12:32:49PM +1000, Benjamin Herrenschmidt wrote:
> Hi Folks !
> 
> I'd like to revive an old discussion as we (Amazon Linux) have been
> getting asks for it.
> 
> What's the best interface to provide the option of write combine mmap's
> of BARs via VFIO ?

There is an ongoing thread on this topic that we should use to
bring this discussion to completion:

https://lore.kernel.org/linux-arm-kernel/ZHcxHbCb439I1Uk2@arm.com
> 
> The problem isn't so much the low level implementation, we just have to
> play with the pgprot, the question is more around what API to present
> to control this.
> 
> One trivial way would be to have an ioctl to set a flag for a given
> region/BAR that cause subsequent mmap's to use write-combine. We would
> have to keep a bitmap for the "legacy" regions, and use a flag in
> struct vfio_pci_region for the others.
> 
> One potentially better way is to make it strictly an attribute of
> vfio_pci_region, along with an ioctl that creates a "subregion". The
> idea here is that we would have an ioctl to create a region from an
> existing region dynamically, which represents a subset of the original
> region (typically a BAR), with potentially different attributes (or we
> keep the attribute get/set separate).
> 
> I like the latter more because it will allow to more easily define that
> portions of a BAR can need different attributes without causing
> state/race issues between setting the attribute and mmap.
> 
> This will also enable other attributes than write-combine if/when the
> need arises.
> 
> Any better idea ? thoughs ? objections ?
> 
> This is still quite specific to PCI, but so is the entire regions
> mechanism, so I don't see an easy path to something more generic at
> this stage.
> 
> Cheers,
> Ben.
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ