On 2026-10-16 16:34, Pavel Popov wrote:
> +#ifdef CONFIG_X86
> +/* CPUs whose host bridges support p2pdma, see pci_p2pdma_whitelist[] */
> +static const struct x86_cpu_id hypervisor_p2pdma_cpu_ids[] = {
> + X86_MATCH_VFM(INTEL_SKYLAKE_X, NULL),
> + X86_MATCH_VFM(INTEL_ICELAKE_X, NULL),
> + X86_MATCH_VFM(INTEL_ICELAKE_D, NULL),
> + X86_MATCH_VFM(INTEL_SAPPHIRERAPIDS_X, NULL),
> + X86_MATCH_VFM(INTEL_EMERALDRAPIDS_X, NULL),
> + X86_MATCH_VFM(INTEL_GRANITERAPIDS_X, NULL),
> + X86_MATCH_VFM(INTEL_GRANITERAPIDS_D, NULL),
> + X86_MATCH_VFM(INTEL_ATOM_CRESTMONT_X, NULL),
> + X86_MATCH_VFM(INTEL_ATOM_DARKMONT_X, NULL),
> + X86_MATCH_VFM(INTEL_DIAMONDRAPIDS_X, NULL),
> + {}
> +};
> +
> +static bool hypervisor_supports_p2pdma(void)
> +{
> + /* Hypervisor hides host topology, allow p2pdma on whitelisted CPUs */
> + if (hypervisor_is_type(X86_HYPER_VMWARE))
> + return x86_match_cpu(hypervisor_p2pdma_cpu_ids);
> +
> + return false;
> +}
One quick thought, after a very quick pass at this:
Why does this now need to be related to the hypervisor? Wouldn't it make
sense to do this check regardless of whether VMWare is involved?
Logan