<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Reviewed-by: Philip Yang <a class="moz-txt-link-rfc2396E" href="mailto:philip.yang@amd.com"><philip.yang@amd.com></a><br>
    </p>
    <div class="moz-cite-prefix">On 2021-01-18 8:20 p.m., Felix Kuehling
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:cf411cd5-2474-8078-ce01-c3c5150e97d6@amd.com">
      <pre class="moz-quote-pre" wrap="">Am 2021-01-18 um 8:01 p.m. schrieb philip yang:
</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">

On 2021-01-18 6:28 p.m., Felix Kuehling wrote:
</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">ROCm user mode depends on userptr support. Without it, KFD is basically
useless.

Make sure HSA_AMD selects the same options as DRM_AMDGPU_USERPTR to avoid
broken configurations where userptr gets enabled but its dependencies are
disabled.

Signed-off-by: Felix Kuehling <a class="moz-txt-link-rfc2396E" href="mailto:Felix.Kuehling@amd.com"><Felix.Kuehling@amd.com></a>
---
 drivers/gpu/drm/amd/amdkfd/Kconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/amd/amdkfd/Kconfig b/drivers/gpu/drm/amd/amdkfd/Kconfig
index e8fb10c41f16..f02c938f75da 100644
--- a/drivers/gpu/drm/amd/amdkfd/Kconfig
+++ b/drivers/gpu/drm/amd/amdkfd/Kconfig
@@ -7,6 +7,8 @@ config HSA_AMD
        bool "HSA kernel driver for AMD GPU devices"
        depends on DRM_AMDGPU && (X86_64 || ARM64 || PPC64)
        imply AMD_IOMMU_V2 if X86_64
+       select HMM_MIRROR
        select MMU_NOTIFIER
+       select DRM_AMDGPU_USERPTR
</pre>
        </blockquote>
        <pre class="moz-quote-pre" wrap="">
amd/amdgpu/Kconfig select HMM_MIRROR and MMU_NOTIFIER if
DRM_AMDGPU_USERPTR is enabled,

I guess select DRM_AMDGPU_USERPTR here is enough, HMM_MIRROR and
MMU_NOTIFIER is redundant.

</pre>
      </blockquote>
      <pre class="moz-quote-pre" wrap="">I read this warning in Documentation/kbuild/kconfig-language.rst:

  Note:
        select should be used with care. select will force
        a symbol to a value without visiting the dependencies.
        By abusing select you are able to select a symbol FOO even
        if FOO depends on BAR that is not set.
        In general use select only for non-visible symbols
        (no prompts anywhere) and for symbols with no dependencies.
        That will limit the usefulness but on the other hand avoid
        the illegal configurations all over.

I'm not sure if "dependencies" in this context includes "depends" and
"select". But to be sure, I'd rather make sure KFD has all it needs
without relying on indirect dependencies.

Regards,
  Felix


</pre>
      <blockquote type="cite">
        <pre class="moz-quote-pre" wrap="">Philip

</pre>
        <blockquote type="cite">
          <pre class="moz-quote-pre" wrap="">         help
          Enable this if you want to use HSA features on AMD GPU devices.
</pre>
        </blockquote>
      </blockquote>
    </blockquote>
  </body>
</html>