All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: Alex Deucher <alexdeucher@gmail.com>
Cc: James Turner <linuxkernel.foss@dmarc-none.turner.link>,
	"Lazar, Lijo" <Lijo.Lazar@amd.com>,
	Thorsten Leemhuis <regressions@leemhuis.info>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"regressions@lists.linux.dev" <regressions@lists.linux.dev>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	Greg KH <gregkh@linuxfoundation.org>,
	"Pan, Xinhui" <Xinhui.Pan@amd.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>,
	"Koenig, Christian" <Christian.Koenig@amd.com>
Subject: Re: [REGRESSION] Too-low frequency limit for AMD GPU PCI-passed-through to Windows VM
Date: Mon, 24 Jan 2022 10:30:50 -0700	[thread overview]
Message-ID: <20220124103050.0229ae92.alex.williamson@redhat.com> (raw)
In-Reply-To: <CADnq5_P5RAJxKWCQBmJae8eWjJ5_wPG01uJYOpXMGsieWqUDvw@mail.gmail.com>

On Mon, 24 Jan 2022 12:04:18 -0500
Alex Deucher <alexdeucher@gmail.com> wrote:

> On Sat, Jan 22, 2022 at 4:38 PM James Turner
> <linuxkernel.foss@dmarc-none.turner.link> wrote:
> >
> > Hi Lijo,
> >  
> > > Could you provide the pp_dpm_* values in sysfs with and without the
> > > patch? Also, could you try forcing PCIE to gen3 (through pp_dpm_pcie)
> > > if it's not in gen3 when the issue happens?  
> >
> > AFAICT, I can't access those values while the AMD GPU PCI devices are
> > bound to `vfio-pci`. However, I can at least access the link speed and
> > width elsewhere in sysfs. So, I gathered what information I could for
> > two different cases:
> >
> > - With the PCI devices bound to `vfio-pci`. With this configuration, I
> >   can start the VM, but the `pp_dpm_*` values are not available since
> >   the devices are bound to `vfio-pci` instead of `amdgpu`.
> >
> > - Without the PCI devices bound to `vfio-pci` (i.e. after removing the
> >   `vfio-pci.ids=...` kernel command line argument). With this
> >   configuration, I can access the `pp_dpm_*` values, since the PCI
> >   devices are bound to `amdgpu`. However, I cannot use the VM. If I try
> >   to start the VM, the display (both the external monitors attached to
> >   the AMD GPU and the built-in laptop display attached to the Intel
> >   iGPU) completely freezes.
> >
> > The output shown below was identical for both the good commit:
> > f1688bd69ec4 ("drm/amd/amdgpu:save psp ring wptr to avoid attack")
> > and the commit which introduced the issue:
> > f9b7f3703ff9 ("drm/amdgpu/acpi: make ATPX/ATCS structures global (v2)")
> >
> > Note that the PCI link speed increased to 8.0 GT/s when the GPU was
> > under heavy load for both versions, but the clock speeds of the GPU were
> > different under load. (For the good commit, it was 1295 MHz; for the bad
> > commit, it was 501 MHz.)
> >  
> 
> Are the ATIF and ATCS ACPI methods available in the guest VM?  They
> are required for this platform to work correctly from a power
> standpoint.  One thing that f9b7f3703ff9 did was to get those ACPI
> methods executed on certain platforms where they had not been
> previously due to a bug in the original implementation.  If the
> windows driver doesn't interact with them, it could cause performance
> issues.  It may have worked by accident before because the ACPI
> interfaces may not have been called, leading the windows driver to
> believe this was a standalone dGPU rather than one integrated into a
> power/thermal limited platform.

None of the host ACPI interfaces are available to or accessible by the
guest when assigning a PCI device.  Likewise the guest does not have
access to the parent downstream ports of the PCIe link.  Thanks,

Alex


WARNING: multiple messages have this Message-ID (diff)
From: Alex Williamson <alex.williamson@redhat.com>
To: Alex Deucher <alexdeucher@gmail.com>
Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com>,
	"regressions@lists.linux.dev" <regressions@lists.linux.dev>,
	Thorsten Leemhuis <regressions@leemhuis.info>,
	Greg KH <gregkh@linuxfoundation.org>,
	"Lazar, Lijo" <Lijo.Lazar@amd.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>,
	James Turner <linuxkernel.foss@dmarc-none.turner.link>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"Deucher, Alexander" <Alexander.Deucher@amd.com>,
	"Koenig, Christian" <Christian.Koenig@amd.com>
Subject: Re: [REGRESSION] Too-low frequency limit for AMD GPU PCI-passed-through to Windows VM
Date: Mon, 24 Jan 2022 10:30:50 -0700	[thread overview]
Message-ID: <20220124103050.0229ae92.alex.williamson@redhat.com> (raw)
In-Reply-To: <CADnq5_P5RAJxKWCQBmJae8eWjJ5_wPG01uJYOpXMGsieWqUDvw@mail.gmail.com>

On Mon, 24 Jan 2022 12:04:18 -0500
Alex Deucher <alexdeucher@gmail.com> wrote:

> On Sat, Jan 22, 2022 at 4:38 PM James Turner
> <linuxkernel.foss@dmarc-none.turner.link> wrote:
> >
> > Hi Lijo,
> >  
> > > Could you provide the pp_dpm_* values in sysfs with and without the
> > > patch? Also, could you try forcing PCIE to gen3 (through pp_dpm_pcie)
> > > if it's not in gen3 when the issue happens?  
> >
> > AFAICT, I can't access those values while the AMD GPU PCI devices are
> > bound to `vfio-pci`. However, I can at least access the link speed and
> > width elsewhere in sysfs. So, I gathered what information I could for
> > two different cases:
> >
> > - With the PCI devices bound to `vfio-pci`. With this configuration, I
> >   can start the VM, but the `pp_dpm_*` values are not available since
> >   the devices are bound to `vfio-pci` instead of `amdgpu`.
> >
> > - Without the PCI devices bound to `vfio-pci` (i.e. after removing the
> >   `vfio-pci.ids=...` kernel command line argument). With this
> >   configuration, I can access the `pp_dpm_*` values, since the PCI
> >   devices are bound to `amdgpu`. However, I cannot use the VM. If I try
> >   to start the VM, the display (both the external monitors attached to
> >   the AMD GPU and the built-in laptop display attached to the Intel
> >   iGPU) completely freezes.
> >
> > The output shown below was identical for both the good commit:
> > f1688bd69ec4 ("drm/amd/amdgpu:save psp ring wptr to avoid attack")
> > and the commit which introduced the issue:
> > f9b7f3703ff9 ("drm/amdgpu/acpi: make ATPX/ATCS structures global (v2)")
> >
> > Note that the PCI link speed increased to 8.0 GT/s when the GPU was
> > under heavy load for both versions, but the clock speeds of the GPU were
> > different under load. (For the good commit, it was 1295 MHz; for the bad
> > commit, it was 501 MHz.)
> >  
> 
> Are the ATIF and ATCS ACPI methods available in the guest VM?  They
> are required for this platform to work correctly from a power
> standpoint.  One thing that f9b7f3703ff9 did was to get those ACPI
> methods executed on certain platforms where they had not been
> previously due to a bug in the original implementation.  If the
> windows driver doesn't interact with them, it could cause performance
> issues.  It may have worked by accident before because the ACPI
> interfaces may not have been called, leading the windows driver to
> believe this was a standalone dGPU rather than one integrated into a
> power/thermal limited platform.

None of the host ACPI interfaces are available to or accessible by the
guest when assigning a PCI device.  Likewise the guest does not have
access to the parent downstream ports of the PCIe link.  Thanks,

Alex


  reply	other threads:[~2022-01-24 17:30 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-17  2:12 [REGRESSION] Too-low frequency limit for AMD GPU PCI-passed-through to Windows VM James D. Turner
2022-01-17  8:09 ` Greg KH
2022-01-17  9:03 ` Thorsten Leemhuis
2022-01-18  3:14   ` James Turner
2022-01-21  2:13     ` James Turner
2022-01-21  6:22       ` Thorsten Leemhuis
2022-01-21  6:22         ` Thorsten Leemhuis
2022-01-21 16:45         ` Alex Deucher
2022-01-21 16:45           ` Alex Deucher
2022-01-22  0:51           ` James Turner
2022-01-22  0:51             ` James Turner
2022-01-22  5:52             ` Lazar, Lijo
2022-01-22  5:52               ` Lazar, Lijo
2022-01-22 21:11               ` James Turner
2022-01-22 21:11                 ` James Turner
2022-01-24 14:21                 ` Lazar, Lijo
2022-01-24 14:21                   ` Lazar, Lijo
2022-01-24 23:58                   ` James Turner
2022-01-24 23:58                     ` James Turner
2022-01-25 13:33                     ` Lazar, Lijo
2022-01-25 13:33                       ` Lazar, Lijo
2022-01-30  0:25                       ` Jim Turner
2022-01-30  0:25                         ` Jim Turner
2022-02-15 14:56                         ` Thorsten Leemhuis
2022-02-15 14:56                           ` Thorsten Leemhuis
2022-02-15 15:11                           ` Alex Deucher
2022-02-15 15:11                             ` Alex Deucher
2022-02-16  0:25                             ` James D. Turner
2022-02-16  0:25                               ` James D. Turner
2022-02-16 16:37                               ` Alex Deucher
2022-02-16 16:37                                 ` Alex Deucher
2022-03-06 15:48                                 ` Thorsten Leemhuis
2022-03-06 15:48                                   ` Thorsten Leemhuis
2022-03-07  2:12                                   ` James Turner
2022-03-07  2:12                                     ` James Turner
2022-03-13 18:33                                     ` James Turner
2022-03-13 18:33                                       ` James Turner
2022-03-17 12:54                                       ` Thorsten Leemhuis
2022-03-17 12:54                                         ` Thorsten Leemhuis
2022-03-18  5:43                                         ` Paul Menzel
2022-03-18  5:43                                           ` Paul Menzel
2022-03-18  7:01                                           ` Thorsten Leemhuis
2022-03-18  7:01                                             ` Thorsten Leemhuis
2022-03-18 14:46                                             ` Alex Williamson
2022-03-18 14:46                                               ` Alex Williamson
2022-03-18 15:06                                               ` Alex Deucher
2022-03-18 15:06                                                 ` Alex Deucher
2022-03-18 15:25                                                 ` Alex Williamson
2022-03-18 15:25                                                   ` Alex Williamson
2022-03-21  1:26                                                   ` James Turner
2022-03-21  1:26                                                     ` James Turner
2022-01-24 17:04                 ` Alex Deucher
2022-01-24 17:04                   ` Alex Deucher
2022-01-24 17:30                   ` Alex Williamson [this message]
2022-01-24 17:30                     ` Alex Williamson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220124103050.0229ae92.alex.williamson@redhat.com \
    --to=alex.williamson@redhat.com \
    --cc=Alexander.Deucher@amd.com \
    --cc=Christian.Koenig@amd.com \
    --cc=Lijo.Lazar@amd.com \
    --cc=Xinhui.Pan@amd.com \
    --cc=alexdeucher@gmail.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxkernel.foss@dmarc-none.turner.link \
    --cc=regressions@leemhuis.info \
    --cc=regressions@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.