All of lore.kernel.org
 help / color / mirror / Atom feed
From: Antonio Argenziano <antonio.argenziano@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, igt-dev@lists.freedesktop.org
Cc: Matthew Auld <matthew.auld@intel.com>
Subject: Re: [igt-dev] [RFC 5/5] igt/lib: If mappable aperture is missing return 0 size
Date: Thu, 7 Mar 2019 09:03:19 -0800	[thread overview]
Message-ID: <15d3ef2a-d57d-7bf1-b5d9-9d08dadf60de@intel.com> (raw)
In-Reply-To: <155197740573.27405.12796470655592846105@skylake-alporthouse-com>



On 07/03/19 08:50, Chris Wilson wrote:
> Quoting Chris Wilson (2019-03-07 16:45:35)
>> Quoting Antonio Argenziano (2019-03-07 16:29:35)
>>>
>>>
>>> On 07/03/19 07:58, Chris Wilson wrote:
>>>> Quoting Antonio Argenziano (2019-03-07 15:51:28)
>>>>>
>>>>>
>>>>> On 21/02/19 13:51, Chris Wilson wrote:
>>>>>> Quoting Antonio Argenziano (2019-02-21 21:45:46)
>>>>>>>
>>>>>>>
>>>>>>> On 21/02/19 12:01, Chris Wilson wrote:
>>>>>>>> Quoting Antonio Argenziano (2019-02-21 19:27:45)
>>>>>>>>> So far the aperture size has been read directly from the bar,
>>>>>>>>> in this patch we return zero if the mappable aperture is not available
>>>>>>>>> as the value stored in the bar might not be accurate. The patch also adds a
>>>>>>>>> 'require' when a call to gem_mappable_aperture_size() is made so that
>>>>>>>>> the aperture is guaranteed to exist before checking the size.
>>>>>>>>>
>>>>>>>>> Cc: Katarzyna Dec <katarzyna.dec@intel.com>
>>>>>>>>> Cc: Chris Wilson <chris@chris-wilson.co.uk>
>>>>>>>>> Cc: Matthew Auld <matthew.auld@intel.com>
>>>>>>>>> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
>>>>>>>>> ---
>>>>>>>>>      lib/ioctl_wrappers.c            | 28 +++++++++++++++++++---------
>>>>>>>>>      lib/ioctl_wrappers.h            |  2 +-
>>>>>>>>>      tests/i915/gem_concurrent_all.c | 12 ++++++------
>>>>>>>>>      tests/i915/gem_cpu_reloc.c      | 14 ++++++++++----
>>>>>>>>>      tests/i915/gem_mmap.c           |  4 ++--
>>>>>>>>>      tests/i915/gem_mmap_gtt.c       | 10 +++++-----
>>>>>>>>>      tests/i915/gem_pwrite.c         |  4 ++--
>>>>>>>>>      tests/i915/gem_shrink.c         |  2 +-
>>>>>>>>>      tests/i915/i915_pm_rpm.c        |  2 +-
>>>>>>>>>      tests/kms_flip.c                |  2 +-
>>>>>>>>>      tests/prime_mmap.c              |  7 +++++--
>>>>>>>>>      11 files changed, 53 insertions(+), 34 deletions(-)
>>>>>>>>>
>>>>>>>>> diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
>>>>>>>>> index 25dd8ad3..ab7c7a5e 100644
>>>>>>>>> --- a/lib/ioctl_wrappers.c
>>>>>>>>> +++ b/lib/ioctl_wrappers.c
>>>>>>>>> @@ -1440,19 +1440,14 @@ uint64_t gem_aperture_size(int fd)
>>>>>>>>>             return aperture_size;
>>>>>>>>>      }
>>>>>>>>>      
>>>>>>>>> -/**
>>>>>>>>> - * gem_mappable_aperture_size:
>>>>>>>>> - *
>>>>>>>>> - * Feature test macro to query the kernel for the mappable gpu aperture size.
>>>>>>>>> - * This is the area available for GTT memory mappings.
>>>>>>>>> - *
>>>>>>>>> - * Returns: The mappable gtt address space size.
>>>>>>>>> - */
>>>>>>>>> -uint64_t gem_mappable_aperture_size(void)
>>>>>>>>> +static uint64_t __gem_mappable_aperture_size(int fd)
>>>>>>>>>      {
>>>>>>>>>             struct pci_device *pci_dev = intel_get_pci_device();
>>>>>>>>>             int bar;
>>>>>>>>>      
>>>>>>>>> +       if (!gem_mmap__has_gtt(fd))
>>>>>>>>> +               return 0; /* Aperture not available */
>>>>>>>>> +
>>>>>>>>>             if (intel_gen(pci_dev->device_id) < 3)
>>>>>>>>>                     bar = 0;
>>>>>>>>
>>>>>>>> I swear we made this accessible via fd so that we didn't need root to
>>>>>>>> poke around libpciacess.
>>>>>>>
>>>>>>> mhh, couldn't find it. Is it in some IOCTL?
>>>>>>
>>>>>> No, we extended get_aperture_ioctl to provide it, once upon a time. I
>>>>>> suggest we do something similar, or we use a param to get the actual
>>>>>> value. (Even if it's legacy, we can still justify a usecase as I'm
>>>>>> pretty sure 256MiB is hardcoded into several legacy userspaces.)
>>>>>
>>>>> Is something like: https://paste.debian.net/1072096/ acceptable?
>>>>
>>>> Yes.
>>>>
>>>> Kernel->    old                   new
>>>> Userspace
>>>>      v
>>>>
>>>>     old       no change             see old size, skips write
>>>>
>>>>     new       reads 0               legacy HW gets mappable size
>>>>                                     new HW, 0?
>>>>
>>>> So for new userspace, how do we determine 0 meaning old kernel, pick a
>>>> value for ourselves, or 0 meaning no aperture at all. PCI-ID? Or is it
>>>> simply that new userspace (that might run on no aperture devices)
>>>> doesn't care about the aperture size anyway, so it's a meaningless
>>>> question?
>>>
>>> Good question, I'm afraid I don't know :). There is the option of saying
>>> new userspace should check the gtt_version before using the aperture at
>>> all but I can see the appeal of just getting the size to make that decision.
>>
>> One possible answer is to return
>>
>>          aper.mappable_size = (u64)-ENODEV;
>>
>> The errno by design are <4096 and so -errno is in the last page, and
>> should always be an invalid GTT size, as the last representable value in
>> this scheme is -4096ull.
> 
> I can't answer why we don't just return -ENODEV in that case anyway. I
> was thinking of preventing upset applications, but those applications
> don't exist yet.

Not sure if in this last reply you mean return ENODEV from the IOCTL or 
just in drm_i915_gem_get_aperture.mappable_aperture_size.

Antonio

> -Chris
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  reply	other threads:[~2019-03-07 17:03 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-21 19:27 [igt-dev] [RFC 0/5] Modify tests for unavailable mappable aperture Antonio Argenziano
2019-02-21 19:27 ` [igt-dev] [RFC 1/5] tests/prime_self_import: Swap gtt mapping for cpu Antonio Argenziano
2019-02-21 19:46   ` Chris Wilson
2019-02-21 21:51     ` Antonio Argenziano
2019-02-21 22:08       ` Chris Wilson
2019-02-21 22:38   ` [igt-dev] [PATCH i-g-t] " Antonio Argenziano
2019-02-21 23:37     ` Chris Wilson
2019-02-22 16:50       ` Antonio Argenziano
2019-02-22 16:55         ` Chris Wilson
2019-02-22 17:19           ` Antonio Argenziano
2019-02-21 19:27 ` [igt-dev] [RFC 2/5] lib/ioctl_wrappers: add mmap_offset support Antonio Argenziano
2019-02-21 19:47   ` Chris Wilson
2019-02-21 21:13     ` Antonio Argenziano
2019-02-21 21:19       ` Chris Wilson
2019-02-22 21:59   ` [igt-dev] [PATCH i-g-t] lib/i915: " Antonio Argenziano
2019-02-22 22:01     ` Antonio Argenziano
2019-02-22 22:13       ` Chris Wilson
2019-02-22 22:29         ` Chris Wilson
2019-02-22 22:44           ` Antonio Argenziano
2019-02-25 18:28   ` [igt-dev] [PATCH i-g-t v3 1/2] " Antonio Argenziano
2019-02-25 18:28     ` [igt-dev] [PATCH i-g-t v3 2/2] tests/i915/gem_mmap_wc: Add local MMAP wrapper Antonio Argenziano
2019-02-25 22:24       ` Chris Wilson
2019-02-25 22:33         ` Antonio Argenziano
2019-02-25 22:46     ` [igt-dev] [PATCH i-g-t v3 1/2] lib/i915: add mmap_offset support Chris Wilson
2019-02-21 19:27 ` [igt-dev] [RFC 3/5] igt/lib: Add wrapper to check if gtt mapping is available Antonio Argenziano
2019-02-21 19:49   ` Chris Wilson
2019-02-21 21:37     ` Antonio Argenziano
2019-02-21 21:54       ` Chris Wilson
2019-02-22 22:20   ` [igt-dev] [PATCH i-g-t v2] " Antonio Argenziano
2019-02-21 19:27 ` [igt-dev] [RFC 4/5] igt/i915: Require GTT mapping to be available when needed Antonio Argenziano
2019-02-21 19:57   ` Chris Wilson
2019-02-23  0:01     ` Antonio Argenziano
2019-02-23  0:17       ` Chris Wilson
2019-04-09  0:12   ` Vanshidhar Konda
2019-02-21 19:27 ` [igt-dev] [RFC 5/5] igt/lib: If mappable aperture is missing return 0 size Antonio Argenziano
2019-02-21 20:01   ` Chris Wilson
2019-02-21 21:45     ` Antonio Argenziano
2019-02-21 21:51       ` Chris Wilson
2019-03-07 15:51         ` Antonio Argenziano
2019-03-07 15:58           ` Chris Wilson
2019-03-07 16:29             ` Antonio Argenziano
2019-03-07 16:45               ` Chris Wilson
2019-03-07 16:50                 ` Chris Wilson
2019-03-07 17:03                   ` Antonio Argenziano [this message]
2019-02-21 20:25 ` [igt-dev] ✓ Fi.CI.BAT: success for Modify tests for unavailable mappable aperture Patchwork
2019-02-21 23:24 ` [igt-dev] ✓ Fi.CI.BAT: success for Modify tests for unavailable mappable aperture (rev2) Patchwork
2019-02-22  8:04 ` [igt-dev] ✓ Fi.CI.IGT: success for Modify tests for unavailable mappable aperture Patchwork
2019-02-22 12:26 ` [igt-dev] ✓ Fi.CI.IGT: success for Modify tests for unavailable mappable aperture (rev2) Patchwork
2019-02-22 22:10 ` [igt-dev] ✗ Fi.CI.BAT: failure for Modify tests for unavailable mappable aperture (rev3) Patchwork
2019-02-22 22:30 ` [igt-dev] ✗ Fi.CI.BAT: failure for Modify tests for unavailable mappable aperture (rev4) Patchwork
2019-02-25 18:37 ` [igt-dev] ✗ Fi.CI.BAT: failure for Modify tests for unavailable mappable aperture (rev6) Patchwork

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=15d3ef2a-d57d-7bf1-b5d9-9d08dadf60de@intel.com \
    --to=antonio.argenziano@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=matthew.auld@intel.com \
    /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.