CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Matthew Auld <[email protected]>
TO: [email protected]
CC: "Thomas Hellström" <[email protected]>
CC: Tvrtko Ursulin <[email protected]>
CC: Jordan Justen <[email protected]>
CC: [email protected]
CC: Chris Wilson <[email protected]>
CC: Kenneth Graunke <[email protected]>
CC: Jason Ekstrand <[email protected]>
CC: Daniel Vetter <[email protected]>

Hi Matthew,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on drm-tip/drm-tip]
[cannot apply to drm-intel/for-linux-next drm-exynos/exynos-drm-next 
tegra-drm/drm/tegra/for-next drm/drm-next v5.14-rc2 next-20210723]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    
https://github.com/0day-ci/linux/commits/Matthew-Auld/drm-i915-userptr-Probe-existence-of-backing-struct-pages-upon-creation/20210723-193637
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
:::::: branch date: 14 hours ago
:::::: commit date: 14 hours ago
compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0
reproduce:
cd tools/perf && ./check-headers.sh

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


perfheadercheck warnings: (new ones prefixed by >>)
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2038>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2039>  * Example of 
creating such context and submitting against it:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2040>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2041>  * .. code-block:: C
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2042>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2043>  *     
I915_DEFINE_CONTEXT_PARAM_ENGINES(engines, 2) = {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2044>  *             
.engines = { { I915_ENGINE_CLASS_RENDER, 0 },
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2045>  *                  
        { I915_ENGINE_CLASS_COPY, 0 } }
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2046>  *     };
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2047>  *     struct 
drm_i915_gem_context_create_ext_setparam p_engines = {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2048>  *             
.base = {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2049>  *                  
   .name = I915_CONTEXT_CREATE_EXT_SETPARAM,
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2050>  *             },
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2051>  *             
.param = {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2052>  *                  
   .param = I915_CONTEXT_PARAM_ENGINES,
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2053>  *                  
   .value = to_user_pointer(&engines),
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2054>  *                  
   .size = sizeof(engines),
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2055>  *             },
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2056>  *     };
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2057>  *     struct 
drm_i915_gem_context_create_ext create = {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2058>  *             
.flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS,
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2059>  *             
.extensions = to_user_pointer(&p_engines);
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2060>  *     };
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2061>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2062>  *     ctx_id = 
gem_context_create_ext(drm_fd, &create);
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2063>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2064>  *     // We have 
now created a GEM context with two engines in the map:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2065>  *     // Index 0 
points to rcs0 while index 1 points to bcs0. Other engines
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2066>  *     // will not 
be accessible from this context.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2067>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2068>  *     ...
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2069>  *     
execbuf.rsvd1 = ctx_id;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2070>  *     
execbuf.flags = 0; // Submits to index 0, which is rcs0 for this context
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2071>  *     
gem_execbuf(drm_fd, &execbuf);
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2072>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2073>  *     ...
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2074>  *     
execbuf.rsvd1 = ctx_id;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2075>  *     
execbuf.flags = 1; // Submits to index 0, which is bcs0 for this context
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2076>  *     
gem_execbuf(drm_fd, &execbuf);
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2077>  */
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2078> 
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1904< struct 
drm_i915_gem_context_create_ext_clone {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2097> /* This API has 
been removed.  On the off chance someone somewhere has
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2098>  * attempted to use 
it, never re-use this extension number.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2099>  */
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1906<        struct 
i915_user_extension base;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1907<        __u32 
clone_id;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1908<        __u32 flags;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1909< #define 
I915_CONTEXT_CLONE_ENGINES     (1u << 0)
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1910< #define 
I915_CONTEXT_CLONE_FLAGS       (1u << 1)
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1911< #define 
I915_CONTEXT_CLONE_SCHEDATTR   (1u << 2)
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1912< #define 
I915_CONTEXT_CLONE_SSEU                (1u << 3)
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1913< #define 
I915_CONTEXT_CLONE_TIMELINE    (1u << 4)
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1914< #define 
I915_CONTEXT_CLONE_VM          (1u << 5)
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1915< #define 
I915_CONTEXT_CLONE_UNKNOWN -(I915_CONTEXT_CLONE_VM << 1)
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1916<        __u64 rsvd;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1917< };
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2172> /**
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2173>  * struct 
drm_i915_gem_userptr - Create GEM object from user allocated memory.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2174>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2175>  * Userptr objects 
have several restrictions on what ioctls can be used with the
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2176>  * object handle.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2177>  */
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2179>        /**
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2180>         * 
@user_ptr: The pointer to the allocated memory.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2181>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2182>         * Needs to 
be aligned to PAGE_SIZE.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2183>         */
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2185> 
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2186>        /**
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2187>         * 
@user_size:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2188>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2189>         * The size 
in bytes for the allocated memory. This will also become the
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2190>         * object 
size.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2191>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2192>         * Needs to 
be aligned to PAGE_SIZE, and should be at least PAGE_SIZE,
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2193>         * or larger.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2194>         */
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2196> 
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2197>        /**
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2198>         * @flags:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2199>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2200>         * Supported 
flags:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2201>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2202>         * 
I915_USERPTR_READ_ONLY:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2203>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2204>         * Mark the 
object as readonly, this also means GPU access can only be
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2205>         * readonly. 
This is only supported on HW which supports readonly access
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2206>         * through 
the GTT. If the HW can't support readonly access, an error is
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2207>         * returned.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2208>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2209>         * 
I915_USERPTR_PROBE:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2210>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2211>         * Probe the 
provided @user_ptr range and validate that the @user_ptr is
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2212>         * indeed 
pointing to normal memory and that the range is also valid.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2213>         * For 
example if some garbage address is given to the kernel, then this
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2214>         * should 
complain.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2215>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2216>         * Returns 
-EFAULT if the probe failed.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2217>         *
>> Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
>> from latest version at 'include/uapi/drm/i915_drm.h': 2218>         * Note 
>> that this doesn't populate the backing pages, and also doesn't
>> Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
>> from latest version at 'include/uapi/drm/i915_drm.h': 2219>         * 
>> guarantee that the object will remain valid when the object is
>> Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
>> from latest version at 'include/uapi/drm/i915_drm.h': 2220>         * 
>> eventually used.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2221>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2222>         * The 
kernel supports this feature if I915_PARAM_HAS_USERPTR_PROBE
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2223>         * returns a 
non-zero value.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2224>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2225>         * 
I915_USERPTR_UNSYNCHRONIZED:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2226>         *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2227>         * NOT USED. 
Setting this flag will result in an error.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2228>         */
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2231> #define 
I915_USERPTR_PROBE 0x2
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 1996<         * Returned 
handle for the object.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2234>         * @handle: 
Returned handle for the object.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2616> 
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2617> /**
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2618>  * DOC: Engine 
Discovery uAPI
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2619>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2620>  * Engine discovery 
uAPI is a way of enumerating physical engines present in a
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2621>  * GPU associated 
with an open i915 DRM file descriptor. This supersedes the old
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2622>  * way of using 
`DRM_IOCTL_I915_GETPARAM` and engine identifiers like
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2623>  * 
`I915_PARAM_HAS_BLT`.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2624>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2625>  * The need for 
this interface came starting with Icelake and newer GPUs, which
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2626>  * started to 
establish a pattern of having multiple engines of a same class,
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2627>  * where not all 
instances were always completely functionally equivalent.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2628>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2629>  * Entry point for 
this uapi is `DRM_IOCTL_I915_QUERY` with the
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2630>  * 
`DRM_I915_QUERY_ENGINE_INFO` as the queried item id.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2631>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2632>  * Example for 
getting the list of engines:
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2633>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2634>  * .. code-block:: C
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2635>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2636>  *     struct 
drm_i915_query_engine_info *info;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2637>  *     struct 
drm_i915_query_item item = {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2638>  *             
.query_id = DRM_I915_QUERY_ENGINE_INFO;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2639>  *     };
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2640>  *     struct 
drm_i915_query query = {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2641>  *             
.num_items = 1,
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2642>  *             
.items_ptr = (uintptr_t)&item,
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2643>  *     };
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2644>  *     int err, i;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2645>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2646>  *     // First 
query the size of the blob we need, this needs to be large
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2647>  *     // enough to 
hold our array of engines. The kernel will fill out the
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2648>  *     // 
item.length for us, which is the number of bytes we need.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2649>  *     //
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2650>  *     // 
Alternatively a large buffer can be allocated straight away enabling
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2651>  *     // querying 
in one pass, in which case item.length should contain the
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2652>  *     // length of 
the provided buffer.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2653>  *     err = 
ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2654>  *     if (err) ...
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2655>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2656>  *     info = 
calloc(1, item.length);
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2657>  *     // Now that 
we allocated the required number of bytes, we call the ioctl
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2658>  *     // again, 
this time with the data_ptr pointing to our newly allocated
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2659>  *     // blob, 
which the kernel can then populate with info on all engines.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2660>  *     
item.data_ptr = (uintptr_t)&info,
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2661>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2662>  *     err = 
ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2663>  *     if (err) ...
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2664>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2665>  *     // We can 
now access each engine in the array
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2666>  *     for (i = 0; 
i < info->num_engines; i++) {
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2667>  *             
struct drm_i915_engine_info einfo = info->engines[i];
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2668>  *             u16 
class = einfo.engine.class;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2669>  *             u16 
instance = einfo.engine.instance;
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2670>  *             ....
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2671>  *     }
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2672>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2673>  *     free(info);
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2674>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2675>  * Each of the 
enumerated engines, apart from being defined by its class and
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2676>  * instance (see 
`struct i915_engine_class_instance`), also can have flags and
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2677>  * capabilities 
defined as documented in i915_drm.h.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2678>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2679>  * For instance 
video engines which support HEVC encoding will have the
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2680>  * 
`I915_VIDEO_CLASS_CAPABILITY_HEVC` capability bit set.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2681>  *
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2682>  * Engine discovery 
only fully comes to its own when combined with the new way
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2683>  * of addressing 
engines when submitting batch buffers using contexts with
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2684>  * engine maps 
configured.
   Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs 
from latest version at 'include/uapi/drm/i915_drm.h': 2685>  */

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to