On Fri, 04 Nov 2022 01:10:33 +0000, Peter Collingbourne <pcc@xxxxxxxxxx> wrote: > > Hi, > > This patch series allows VMMs to use shared mappings in MTE enabled > guests. The first five patches were taken from Catalin's tree [1] which > addressed some review feedback from when they were previously sent out > as v3 of this series. The first patch from Catalin's tree makes room > for an additional PG_arch_3 flag by making the newer PG_arch_* flags > arch-dependent. The next four patches are based on a series that > Catalin sent out prior to v3, whose cover letter [2] I quote from below: > > > This series aims to fix the races between initialising the tags on a > > page and setting the PG_mte_tagged flag. Currently the flag is set > > either before or after that tag initialisation and this can lead to CoW > > copying stale tags. The first patch moves the flag setting after the > > tags have been initialised, solving the CoW issue. However, concurrent > > mprotect() on a shared mapping may (very rarely) lead to valid tags > > being zeroed. > > > > The second skips the sanitise_mte_tags() call in kvm_set_spte_gfn(), > > deferring it to user_mem_abort(). The outcome is that no > > sanitise_mte_tags() can be simplified to skip the pfn_to_online_page() > > check and only rely on VM_MTE_ALLOWED vma flag that can be checked in > > user_mem_abort(). > > > > The third and fourth patches use PG_arch_3 as a lock for page tagging, > > based on Peter Collingbourne's idea of a two-bit lock. > > > > I think the first patch can be queued but the rest needs some in depth > > review and test. With this series (if correct) we could allos MAP_SHARED > > on KVM guest memory but this is to be discussed separately as there are > > some KVM ABI implications. > > In this v5 I rebased Catalin's tree onto -next again. Please double check Please don't do use -next as a base. In-flight series should be based on a *stable* tag, either 6.0 or one of the early -RCs. If there is a known conflict with -next, do mention it in the cover letter and provide a resolution. > my rebase, which resolved the conflict with commit a8e5e5146ad0 ("arm64: > mte: Avoid setting PG_mte_tagged if no tags cleared or restored"). This commit seems part of -rc1, so I guess the patches directly apply on top of that tag? > I now have Reviewed-by for all patches except for the last one, which adds > the documentation. Thanks for the reviews so far, and please take a look! I'd really like the MM folks (list now cc'd) to look at the relevant patches (1 and 5) and ack them before I take this. Thanks, M. -- Without deviation from the norm, progress is not possible.