RE: [PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
From: Alex Deucher Sent: Tuesday, April 12, 2022 7:13 AM > > On Tue, Apr 12, 2022 at 4:01 AM Paul Menzel wrote: > > > > [Cc: +x86 folks] > > > > Dear Alex, dear x86 folks, > > > > > > x86 folks, can you think of alternatives to access `X86_HYPER_MS_HYPERV` > > from `arch/x86/include/asm/hypervisor.h` without any preprocessor ifdef-ery? > > I don't really see what problem that solves. X86_HYPER_MS_HYPERV is > an X86 thing. Why do we need a processor agnostic way to handle it? > Any code related to that is X86 specific. > > Alex Try using hv_is_hyperv_initialized() without any #ifdef'ery. If CONFIG_HYPERV is defined, it will tell you if you are running as a guest on Hyper-V on x86/x64 or on ARM64. If CONFIG_HYPERV is not defined, it will return "false". You'll need to #include . Michael > > > > > > > Am 11.04.22 um 18:28 schrieb Alex Deucher: > > > On Mon, Apr 11, 2022 at 11:28 AM Paul Menzel wrote: > > > > […] > > > > >> Am 11.04.22 um 15:59 schrieb Yongqiang Sun: > > >>> MS_HYPERV with vega10 doesn't have the interface to process > > >>> request init data msg. > > >> > > >> Should some Hyper-V folks be added to the reviewers list too? > > >> > > >>> Check hypervisor type to not send the request for MS_HYPERV. > > >> > > >> Please add a blank line between paragraphs. > > >> > > >>> Signed-off-by: Yongqiang Sun > > >>> --- > > >>>drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- > > >>>1 file changed, 10 insertions(+), 2 deletions(-) > > >>> > > >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > > >>> index 933c41f77c92..56b130ec44a9 100644 > > >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > > >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > > >>> @@ -23,6 +23,10 @@ > > >>> > > >>>#include > > >>> > > >>> +#ifdef CONFIG_X86 > > >>> +#include > > >>> +#endif > > >>> + > > >>>#include > > >>> > > >>>#include "amdgpu.h" > > >>> @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct > amdgpu_device *adev) > > >>>break; > > >>>case CHIP_VEGA10: > > >>>soc15_set_virt_ops(adev); > > >>> - /* send a dummy GPU_INIT_DATA request to host on > > >>> vega10 */ > > >>> - amdgpu_virt_request_init_data(adev); > > >>> +#ifdef CONFIG_X86 > > >>> + /* not send GPU_INIT_DATA with MS_HYPERV*/ > > >>> + if (hypervisor_is_type(X86_HYPER_MS_HYPERV) == > > >>> false) > > >>> +#endif > > >> > > >> Why guard everything with CONFIG_X86? (If it’s needed, it should be done > > >> in C code.) > > > > > > X86_HYPER_MS_HYPERV only available on x86. > > > > Sorry, I missed the X86 dependency when quickly looking at the Hyper-V > > stub IOMMU driver `drivers/iommu/hyperv-iommu.c`, but missed that > > `HYPERV_IOMMU` has `depends on HYPERV && X86`. > > > > > > Kind regards, > > > > Paul > > > > > > >>> + /* send a dummy GPU_INIT_DATA request to > > >>> host on vega10 */ > > >>> + amdgpu_virt_request_init_data(adev); > > >>>break; > > >>>case CHIP_VEGA20: > > >>>case CHIP_ARCTURUS: > > >> > > >> > > >> Kind regards, > > >> > > >> Paul
Re: [PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
On Tue, Apr 12, 2022 at 4:01 AM Paul Menzel wrote: > > [Cc: +x86 folks] > > Dear Alex, dear x86 folks, > > > x86 folks, can you think of alternatives to access `X86_HYPER_MS_HYPERV` > from `arch/x86/include/asm/hypervisor.h` without any preprocessor ifdef-ery? I don't really see what problem that solves. X86_HYPER_MS_HYPERV is an X86 thing. Why do we need a processor agnostic way to handle it? Any code related to that is X86 specific. Alex > > > Am 11.04.22 um 18:28 schrieb Alex Deucher: > > On Mon, Apr 11, 2022 at 11:28 AM Paul Menzel wrote: > > […] > > >> Am 11.04.22 um 15:59 schrieb Yongqiang Sun: > >>> MS_HYPERV with vega10 doesn't have the interface to process > >>> request init data msg. > >> > >> Should some Hyper-V folks be added to the reviewers list too? > >> > >>> Check hypervisor type to not send the request for MS_HYPERV. > >> > >> Please add a blank line between paragraphs. > >> > >>> Signed-off-by: Yongqiang Sun > >>> --- > >>>drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- > >>>1 file changed, 10 insertions(+), 2 deletions(-) > >>> > >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > >>> index 933c41f77c92..56b130ec44a9 100644 > >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > >>> @@ -23,6 +23,10 @@ > >>> > >>>#include > >>> > >>> +#ifdef CONFIG_X86 > >>> +#include > >>> +#endif > >>> + > >>>#include > >>> > >>>#include "amdgpu.h" > >>> @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct > >>> amdgpu_device *adev) > >>>break; > >>>case CHIP_VEGA10: > >>>soc15_set_virt_ops(adev); > >>> - /* send a dummy GPU_INIT_DATA request to host on > >>> vega10 */ > >>> - amdgpu_virt_request_init_data(adev); > >>> +#ifdef CONFIG_X86 > >>> + /* not send GPU_INIT_DATA with MS_HYPERV*/ > >>> + if (hypervisor_is_type(X86_HYPER_MS_HYPERV) == > >>> false) > >>> +#endif > >> > >> Why guard everything with CONFIG_X86? (If it’s needed, it should be done > >> in C code.) > > > > X86_HYPER_MS_HYPERV only available on x86. > > Sorry, I missed the X86 dependency when quickly looking at the Hyper-V > stub IOMMU driver `drivers/iommu/hyperv-iommu.c`, but missed that > `HYPERV_IOMMU` has `depends on HYPERV && X86`. > > > Kind regards, > > Paul > > > >>> + /* send a dummy GPU_INIT_DATA request to > >>> host on vega10 */ > >>> + amdgpu_virt_request_init_data(adev); > >>>break; > >>>case CHIP_VEGA20: > >>>case CHIP_ARCTURUS: > >> > >> > >> Kind regards, > >> > >> Paul
RE: [PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
[AMD Official Use Only] -Original Message- From: Sun, Yongqiang Sent: April 12, 2022 9:16 AM To: amd-gfx@lists.freedesktop.org; Wong, Alice Cc: Yao, Yiqing(James) ; Sun, Yongqiang Subject: [PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10 MS_HYPERV with vega10 doesn't have the interface to process request init data msg. Check hypervisor type to not send the request for MS_HYPERV. Signed-off-by: Yongqiang Sun Reviewed-by: Alice Wong --- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 933c41f77c92..d5eea031c3e3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -23,6 +23,10 @@ #include +#ifdef CONFIG_X86 +#include +#endif + #include #include "amdgpu.h" @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) break; case CHIP_VEGA10: soc15_set_virt_ops(adev); - /* send a dummy GPU_INIT_DATA request to host on vega10 */ - amdgpu_virt_request_init_data(adev); +#ifdef CONFIG_X86 + /* not send GPU_INIT_DATA with MS_HYPERV*/ + if (!hypervisor_is_type(X86_HYPER_MS_HYPERV)) +#endif + /* send a dummy GPU_INIT_DATA request to host on vega10 */ + amdgpu_virt_request_init_data(adev); break; case CHIP_VEGA20: case CHIP_ARCTURUS: -- 2.25.1
[PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
MS_HYPERV with vega10 doesn't have the interface to process request init data msg. Check hypervisor type to not send the request for MS_HYPERV. Signed-off-by: Yongqiang Sun --- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 933c41f77c92..d5eea031c3e3 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -23,6 +23,10 @@ #include +#ifdef CONFIG_X86 +#include +#endif + #include #include "amdgpu.h" @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) break; case CHIP_VEGA10: soc15_set_virt_ops(adev); - /* send a dummy GPU_INIT_DATA request to host on vega10 */ - amdgpu_virt_request_init_data(adev); +#ifdef CONFIG_X86 + /* not send GPU_INIT_DATA with MS_HYPERV*/ + if (!hypervisor_is_type(X86_HYPER_MS_HYPERV)) +#endif + /* send a dummy GPU_INIT_DATA request to host on vega10 */ + amdgpu_virt_request_init_data(adev); break; case CHIP_VEGA20: case CHIP_ARCTURUS: -- 2.25.1
Re: [PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
[Cc: +x86 folks] Dear Alex, dear x86 folks, x86 folks, can you think of alternatives to access `X86_HYPER_MS_HYPERV` from `arch/x86/include/asm/hypervisor.h` without any preprocessor ifdef-ery? Am 11.04.22 um 18:28 schrieb Alex Deucher: On Mon, Apr 11, 2022 at 11:28 AM Paul Menzel wrote: […] Am 11.04.22 um 15:59 schrieb Yongqiang Sun: MS_HYPERV with vega10 doesn't have the interface to process request init data msg. Should some Hyper-V folks be added to the reviewers list too? Check hypervisor type to not send the request for MS_HYPERV. Please add a blank line between paragraphs. Signed-off-by: Yongqiang Sun --- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 933c41f77c92..56b130ec44a9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -23,6 +23,10 @@ #include +#ifdef CONFIG_X86 +#include +#endif + #include #include "amdgpu.h" @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) break; case CHIP_VEGA10: soc15_set_virt_ops(adev); - /* send a dummy GPU_INIT_DATA request to host on vega10 */ - amdgpu_virt_request_init_data(adev); +#ifdef CONFIG_X86 + /* not send GPU_INIT_DATA with MS_HYPERV*/ + if (hypervisor_is_type(X86_HYPER_MS_HYPERV) == false) +#endif Why guard everything with CONFIG_X86? (If it’s needed, it should be done in C code.) X86_HYPER_MS_HYPERV only available on x86. Sorry, I missed the X86 dependency when quickly looking at the Hyper-V stub IOMMU driver `drivers/iommu/hyperv-iommu.c`, but missed that `HYPERV_IOMMU` has `depends on HYPERV && X86`. Kind regards, Paul + /* send a dummy GPU_INIT_DATA request to host on vega10 */ + amdgpu_virt_request_init_data(adev); break; case CHIP_VEGA20: case CHIP_ARCTURUS: Kind regards, Paul
Re: [PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
On Mon, Apr 11, 2022 at 11:28 AM Paul Menzel wrote: > > Dear Yongqiang, > > > Thank you for your patch. > > Am 11.04.22 um 15:59 schrieb Yongqiang Sun: > > MS_HYPERV with vega10 doesn't have the interface to process > > request init data msg. > > Should some Hyper-V folks be added to the reviewers list too? > > > Check hypervisor type to not send the request for MS_HYPERV. > > Please add a blank line between paragraphs. > > > Signed-off-by: Yongqiang Sun > > --- > > drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- > > 1 file changed, 10 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > > index 933c41f77c92..56b130ec44a9 100644 > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > > @@ -23,6 +23,10 @@ > > > > #include > > > > +#ifdef CONFIG_X86 > > +#include > > +#endif > > + > > #include > > > > #include "amdgpu.h" > > @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct amdgpu_device > > *adev) > > break; > > case CHIP_VEGA10: > > soc15_set_virt_ops(adev); > > - /* send a dummy GPU_INIT_DATA request to host on > > vega10 */ > > - amdgpu_virt_request_init_data(adev); > > +#ifdef CONFIG_X86 > > + /* not send GPU_INIT_DATA with MS_HYPERV*/ > > + if (hypervisor_is_type(X86_HYPER_MS_HYPERV) == false) > > +#endif > > Why guard everything with CONFIG_X86? (If it’s needed, it should be done > in C code.) X86_HYPER_MS_HYPERV only available on x86. Alex > > > + /* send a dummy GPU_INIT_DATA request to host > > on vega10 */ > > + amdgpu_virt_request_init_data(adev); > > break; > > case CHIP_VEGA20: > > case CHIP_ARCTURUS: > > > Kind regards, > > Paul
Re: [PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
Dear Yongqiang, Thank you for your patch. Am 11.04.22 um 15:59 schrieb Yongqiang Sun: MS_HYPERV with vega10 doesn't have the interface to process request init data msg. Should some Hyper-V folks be added to the reviewers list too? Check hypervisor type to not send the request for MS_HYPERV. Please add a blank line between paragraphs. Signed-off-by: Yongqiang Sun --- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 933c41f77c92..56b130ec44a9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -23,6 +23,10 @@ #include +#ifdef CONFIG_X86 +#include +#endif + #include #include "amdgpu.h" @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) break; case CHIP_VEGA10: soc15_set_virt_ops(adev); - /* send a dummy GPU_INIT_DATA request to host on vega10 */ - amdgpu_virt_request_init_data(adev); +#ifdef CONFIG_X86 + /* not send GPU_INIT_DATA with MS_HYPERV*/ + if (hypervisor_is_type(X86_HYPER_MS_HYPERV) == false) +#endif Why guard everything with CONFIG_X86? (If it’s needed, it should be done in C code.) + /* send a dummy GPU_INIT_DATA request to host on vega10 */ + amdgpu_virt_request_init_data(adev); break; case CHIP_VEGA20: case CHIP_ARCTURUS: Kind regards, Paul
Re: [PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
On Mon, Apr 11, 2022 at 9:52 AM Yongqiang Sun wrote: > > MS_HYPERV with vega10 doesn't have the interface to process > request init data msg. > Check hypervisor type to not send the request for MS_HYPERV. > > Signed-off-by: Yongqiang Sun > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > index 933c41f77c92..56b130ec44a9 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > @@ -23,6 +23,10 @@ > > #include > > +#ifdef CONFIG_X86 > +#include > +#endif > + > #include > > #include "amdgpu.h" > @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct amdgpu_device > *adev) > break; > case CHIP_VEGA10: > soc15_set_virt_ops(adev); > - /* send a dummy GPU_INIT_DATA request to host on > vega10 */ > - amdgpu_virt_request_init_data(adev); > +#ifdef CONFIG_X86 > + /* not send GPU_INIT_DATA with MS_HYPERV*/ > + if (hypervisor_is_type(X86_HYPER_MS_HYPERV) == false) Preferred coding style would be: if (!hypervisor_is_type(X86_HYPER_MS_HYPERV)) With that fixed: Acked-by: Alex Deucher > +#endif > + /* send a dummy GPU_INIT_DATA request to host > on vega10 */ > + amdgpu_virt_request_init_data(adev); > break; > case CHIP_VEGA20: > case CHIP_ARCTURUS: > -- > 2.25.1 >
[PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
MS_HYPERV with vega10 doesn't have the interface to process request init data msg. Check hypervisor type to not send the request for MS_HYPERV. Signed-off-by: Yongqiang Sun --- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 933c41f77c92..56b130ec44a9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -23,6 +23,10 @@ #include +#ifdef CONFIG_X86 +#include +#endif + #include #include "amdgpu.h" @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) break; case CHIP_VEGA10: soc15_set_virt_ops(adev); - /* send a dummy GPU_INIT_DATA request to host on vega10 */ - amdgpu_virt_request_init_data(adev); +#ifdef CONFIG_X86 + /* not send GPU_INIT_DATA with MS_HYPERV*/ + if (hypervisor_is_type(X86_HYPER_MS_HYPERV) == false) +#endif + /* send a dummy GPU_INIT_DATA request to host on vega10 */ + amdgpu_virt_request_init_data(adev); break; case CHIP_VEGA20: case CHIP_ARCTURUS: -- 2.25.1
[PATCH] drm/amd/amdgpu: Not request init data for MS_HYPERV with vega10
MS_HYPERV with vega10 doesn't have the interface to process request init data msg. Check hypervisor type to not send the request for MS_HYPERV. Signed-off-by: Yongqiang Sun --- drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 12 ++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c index 933c41f77c92..56b130ec44a9 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -23,6 +23,10 @@ #include +#ifdef CONFIG_X86 +#include +#endif + #include #include "amdgpu.h" @@ -721,8 +725,12 @@ void amdgpu_detect_virtualization(struct amdgpu_device *adev) break; case CHIP_VEGA10: soc15_set_virt_ops(adev); - /* send a dummy GPU_INIT_DATA request to host on vega10 */ - amdgpu_virt_request_init_data(adev); +#ifdef CONFIG_X86 + /* not send GPU_INIT_DATA with MS_HYPERV*/ + if (hypervisor_is_type(X86_HYPER_MS_HYPERV) == false) +#endif + /* send a dummy GPU_INIT_DATA request to host on vega10 */ + amdgpu_virt_request_init_data(adev); break; case CHIP_VEGA20: case CHIP_ARCTURUS: -- 2.25.1