2022-07-07 20:35:55

by Bob Beckett

[permalink] [raw]
Subject: [PATCH v10 04/11] drm/i915/gem: selftest should not attempt mmap of private regions

During testing make can_mmap consider whether the region is private.

Signed-off-by: Robert Beckett <[email protected]>
Reviewed-by: Thomas Hellström <[email protected]>
---
drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
index 5bc93a1ce3e3..76181e28c75e 100644
--- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
@@ -869,6 +869,9 @@ static bool can_mmap(struct drm_i915_gem_object *obj, enum i915_mmap_type type)
struct drm_i915_private *i915 = to_i915(obj->base.dev);
bool no_map;

+ if (obj->mm.region && obj->mm.region->private)
+ return false;
+
if (obj->ops->mmap_offset)
return type == I915_MMAP_TYPE_FIXED;
else if (type == I915_MMAP_TYPE_FIXED)
--
2.25.1


2022-07-08 08:29:50

by Matthew Auld

[permalink] [raw]
Subject: Re: [PATCH v10 04/11] drm/i915/gem: selftest should not attempt mmap of private regions

On 07/07/2022 21:02, Robert Beckett wrote:
> During testing make can_mmap consider whether the region is private.

Do we still need this with: 938d2fd17d17 ("drm/i915/selftests: skip the
mman tests for stolen") ?

>
> Signed-off-by: Robert Beckett <[email protected]>
> Reviewed-by: Thomas Hellström <[email protected]>
> ---
> drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> index 5bc93a1ce3e3..76181e28c75e 100644
> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
> @@ -869,6 +869,9 @@ static bool can_mmap(struct drm_i915_gem_object *obj, enum i915_mmap_type type)
> struct drm_i915_private *i915 = to_i915(obj->base.dev);
> bool no_map;
>
> + if (obj->mm.region && obj->mm.region->private)
> + return false;
> +
> if (obj->ops->mmap_offset)
> return type == I915_MMAP_TYPE_FIXED;
> else if (type == I915_MMAP_TYPE_FIXED)

2022-07-08 13:30:35

by Matthew Auld

[permalink] [raw]
Subject: Re: [PATCH v10 04/11] drm/i915/gem: selftest should not attempt mmap of private regions

On 08/07/2022 14:22, Robert Beckett wrote:
>
>
> On 08/07/2022 08:53, Matthew Auld wrote:
>> On 07/07/2022 21:02, Robert Beckett wrote:
>>> During testing make can_mmap consider whether the region is private.
>>
>> Do we still need this with: 938d2fd17d17 ("drm/i915/selftests: skip
>> the mman tests for stolen") ?
>
> huh, I guess not. That wasn't in my tree. I guess I should rebase.
>
> Looking at it, my patch would have been preferable initially I think.
> Each location of the additional checks in that patch first call
> cam_mmap(), which I think is the most appropriate place to make the
> decision.

It fails at the object_create() I think (on small-BAR I mean), which is
before we can call can_mmap(), passing in the object.

>
> I could do a replacement patch that reverts that one if preferred, or we
> can leave it as is and I will drop this patch.
>
>
>>
>>>
>>> Signed-off-by: Robert Beckett <[email protected]>
>>> Reviewed-by: Thomas Hellström <[email protected]>
>>> ---
>>>   drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 3 +++
>>>   1 file changed, 3 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>>> b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>>> index 5bc93a1ce3e3..76181e28c75e 100644
>>> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>>> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>>> @@ -869,6 +869,9 @@ static bool can_mmap(struct drm_i915_gem_object
>>> *obj, enum i915_mmap_type type)
>>>       struct drm_i915_private *i915 = to_i915(obj->base.dev);
>>>       bool no_map;
>>> +    if (obj->mm.region && obj->mm.region->private)
>>> +        return false;
>>> +
>>>       if (obj->ops->mmap_offset)
>>>           return type == I915_MMAP_TYPE_FIXED;
>>>       else if (type == I915_MMAP_TYPE_FIXED)

2022-07-08 13:30:37

by Bob Beckett

[permalink] [raw]
Subject: Re: [PATCH v10 04/11] drm/i915/gem: selftest should not attempt mmap of private regions



On 08/07/2022 08:53, Matthew Auld wrote:
> On 07/07/2022 21:02, Robert Beckett wrote:
>> During testing make can_mmap consider whether the region is private.
>
> Do we still need this with: 938d2fd17d17 ("drm/i915/selftests: skip the
> mman tests for stolen") ?

huh, I guess not. That wasn't in my tree. I guess I should rebase.

Looking at it, my patch would have been preferable initially I think.
Each location of the additional checks in that patch first call
cam_mmap(), which I think is the most appropriate place to make the
decision.

I could do a replacement patch that reverts that one if preferred, or we
can leave it as is and I will drop this patch.


>
>>
>> Signed-off-by: Robert Beckett <[email protected]>
>> Reviewed-by: Thomas Hellström <[email protected]>
>> ---
>>   drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 3 +++
>>   1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>> b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>> index 5bc93a1ce3e3..76181e28c75e 100644
>> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>> @@ -869,6 +869,9 @@ static bool can_mmap(struct drm_i915_gem_object
>> *obj, enum i915_mmap_type type)
>>       struct drm_i915_private *i915 = to_i915(obj->base.dev);
>>       bool no_map;
>> +    if (obj->mm.region && obj->mm.region->private)
>> +        return false;
>> +
>>       if (obj->ops->mmap_offset)
>>           return type == I915_MMAP_TYPE_FIXED;
>>       else if (type == I915_MMAP_TYPE_FIXED)

2022-07-08 14:17:34

by Bob Beckett

[permalink] [raw]
Subject: Re: [PATCH v10 04/11] drm/i915/gem: selftest should not attempt mmap of private regions



On 08/07/2022 14:27, Matthew Auld wrote:
> On 08/07/2022 14:22, Robert Beckett wrote:
>>
>>
>> On 08/07/2022 08:53, Matthew Auld wrote:
>>> On 07/07/2022 21:02, Robert Beckett wrote:
>>>> During testing make can_mmap consider whether the region is private.
>>>
>>> Do we still need this with: 938d2fd17d17 ("drm/i915/selftests: skip
>>> the mman tests for stolen") ?
>>
>> huh, I guess not. That wasn't in my tree. I guess I should rebase.
>>
>> Looking at it, my patch would have been preferable initially I think.
>> Each location of the additional checks in that patch first call
>> cam_mmap(), which I think is the most appropriate place to make the
>> decision.
>
> It fails at the object_create() I think (on small-BAR I mean), which is
> before we can call can_mmap(), passing in the object.

ah, okay. That makes sense to keep as is then.
I'll drop this patch.
Thanks.

>
>>
>> I could do a replacement patch that reverts that one if preferred, or
>> we can leave it as is and I will drop this patch.
>>
>>
>>>
>>>>
>>>> Signed-off-by: Robert Beckett <[email protected]>
>>>> Reviewed-by: Thomas Hellström <[email protected]>
>>>> ---
>>>>   drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 3 +++
>>>>   1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>>>> b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>>>> index 5bc93a1ce3e3..76181e28c75e 100644
>>>> --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>>>> +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c
>>>> @@ -869,6 +869,9 @@ static bool can_mmap(struct drm_i915_gem_object
>>>> *obj, enum i915_mmap_type type)
>>>>       struct drm_i915_private *i915 = to_i915(obj->base.dev);
>>>>       bool no_map;
>>>> +    if (obj->mm.region && obj->mm.region->private)
>>>> +        return false;
>>>> +
>>>>       if (obj->ops->mmap_offset)
>>>>           return type == I915_MMAP_TYPE_FIXED;
>>>>       else if (type == I915_MMAP_TYPE_FIXED)