Re: [PATCH v8 3/4] kvm: arm64: set io memory s2 pte as normalnc for vfio pci device

From: Marc Zyngier
Date: Fri Feb 23 2024 - 12:07:39 EST


On Tue, 20 Feb 2024 07:29:25 +0000,
<ankita@xxxxxxxxxx> wrote:
>
> From: Ankit Agrawal <ankita@xxxxxxxxxx>
>
> To provide VM with the ability to get device IO memory with NormalNC
> property, map device MMIO in KVM for ARM64 at stage2 as NormalNC.
> Having NormalNC S2 default puts guests in control (based on [1],
> "Combining stage 1 and stage 2 memory type attributes") of device
> MMIO regions memory mappings. The rules are summarized below:
> ([(S1) - stage1], [(S2) - stage 2])
>
> S1 | S2 | Result
> NORMAL-WB | NORMAL-NC | NORMAL-NC
> NORMAL-WT | NORMAL-NC | NORMAL-NC
> NORMAL-NC | NORMAL-NC | NORMAL-NC
> DEVICE<attr> | NORMAL-NC | DEVICE<attr>
>
> Still this cannot be generalized to non PCI devices such as GICv2.
> There is insufficient information and uncertainity in the behavior
> of non PCI driver. A driver must indicate support using the
> new flag VM_ALLOW_ANY_UNCACHED.
>
> Adapt KVM to make use of the flag VM_ALLOW_ANY_UNCACHED as indicator to
> activate the S2 setting to NormalNc.
>
> [1] section D8.5.5 of DDI0487J_a_a-profile_architecture_reference_manual.pdf
>
> Suggested-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> Acked-by: Jason Gunthorpe <jgg@xxxxxxxxxx>
> Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
> Signed-off-by: Ankit Agrawal <ankita@xxxxxxxxxx>

Since people have asked for various commit message updates, I'll add
my own: for the KVM/arm64 tree, the convention for the subject line is
"KVM: arm64: Something starting with a capital".

Thanks,

M.

--
Without deviation from the norm, progress is not possible.