All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
	Daniel Vetter <daniel@ffwll.ch>,
	 christian.koenig@amd.com
Cc: "Kempczynski, Zbigniew" <zbigniew.kempczynski@intel.com>,
	Andi Shyti <andi.shyti@intel.com>,
	dri-devel <dri-devel@lists.freedesktop.org>
Subject: Re: [PATCH] drm/mm: revert "Break long searches in fragmented address spaces"
Date: Wed, 1 Apr 2020 11:17:29 +0200	[thread overview]
Message-ID: <95c061fb-6189-855d-bde9-57d4c2d99aff@gmail.com> (raw)
In-Reply-To: <158573119432.5852.5430250256131238311@build.alporthouse.com>

Am 01.04.20 um 10:53 schrieb Chris Wilson:
> Quoting Christian König (2020-04-01 08:29:34)
>> Am 31.03.20 um 15:19 schrieb Chris Wilson:
>>> Quoting Daniel Vetter (2020-03-31 11:38:50)
>>>> On Tue, Mar 31, 2020 at 11:20 AM Chris Wilson <chris@chris-wilson.co.uk> wrote:
>>>>> Quoting Daniel Vetter (2020-03-31 10:16:18)
>>>>>> On Tue, Mar 31, 2020 at 10:59:45AM +0200, Christian König wrote:
>>>>>> [SNIP]
>>> We allow userspace to poison the drm_mm at roughly 8K intervals, a
>>> search space of 35b with typically O(N^2) behaviour and each node
>>> traversal (rb_next/rb_prev) will itself be costly. Even our simple tests
>>> can generate a search of several minutes before our patience runs out.o
>>> Any drm_mm that allows for userspace to control alignment can be
>>> arbitrarily fragmented, hence a raised eyebrow that this search would be
>>> allowed in atomic context.
>> Wow, that is indeed quite a lot.
>>
>> What is the criteria use for ordering the tree? Just the size or is that
>> size+alignment?
> The tree is just size. Alignment is a little used parameter, but there's
> a requirement for userspace to be able to control it -- although it is
> strictly the older interface, it is still open to abuse.
>
> Converting the tree to [size, ffs(addr)] would help for many, but on top
> of that we have zones in the drm_mm, so search-in-range can be abused on
> top of search-for-alignment.

The difference is that search in range is not controllable by userspace, 
but at least for amdgpu the alignment is very well controllable.

>> Never looked into this, but maybe we have a low hanging fruit for an
>> improvement here?
> A bit -- alignment is so rarely used in practice, optimising it was not
> a concern, just someone else has now noticed the potential for abuse.

Well we do use alignment rather widely. IIRC we can have everything 
between 4K and 2MB based on the tilling flags, memory channel config etc 
etc...

> They ran a test, get bored and complained that it didn't respond to ^C
> for a long period of time and from that derive a proof-of-concept test to
> show how it can be used by one client to upset another :|

And as far as I can see that is a really valid problem we need to fix. 
Give me a second to write a test case for this.

Thanks for pointing that out,
Christian.

>   
>> I'm not 100% sure, but moving away from atomic context wouldn't be that
>> easy.
> Fair enough. I would not worry unless the layout is controllable by the
> user -- but we probably want some other means of bounding the search.
> -Chris

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2020-04-01  9:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-30 12:34 [PATCH] drm/mm: revert "Break long searches in fragmented address spaces" Christian König
2020-03-30 12:40 ` Chris Wilson
2020-03-31  8:59 ` Christian König
2020-03-31  9:16   ` Daniel Vetter
2020-03-31  9:20     ` Chris Wilson
2020-03-31 10:38       ` Daniel Vetter
2020-03-31 12:44         ` Christian König
2020-03-31 13:19         ` Chris Wilson
2020-04-01  7:29           ` Christian König
2020-04-01  8:53             ` Chris Wilson
2020-04-01  9:17               ` Christian König [this message]
2020-04-06  8:25                 ` Christian König
2020-03-31  9:19   ` Chris Wilson

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=95c061fb-6189-855d-bde9-57d4c2d99aff@gmail.com \
    --to=ckoenig.leichtzumerken@gmail.com \
    --cc=andi.shyti@intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=christian.koenig@amd.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=zbigniew.kempczynski@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.