From: "Koenig, Christian" <Christian.Koenig@amd.com>
To: Thomas Hellstrom <thellstrom@vmware.com>,
"dri-devel@lists.freedesktop.org"
<dri-devel@lists.freedesktop.org>,
"Kuehling, Felix" <Felix.Kuehling@amd.com>,
"amd-gfx@lists.freedesktop.org" <amd-gfx@lists.freedesktop.org>,
"thomas@shipmail.org" <thomas@shipmail.org>
Subject: Re: [PATCH 1/1] [RFC] drm/ttm: Don't init dma32_zone on 64-bit systems
Date: Thu, 21 Feb 2019 07:59:19 +0000 [thread overview]
Message-ID: <4423e7aa-2153-5305-91c2-8d212ae1786b@amd.com> (raw)
In-Reply-To: <02031c0fe1b4af05bdc07155647cc88c445dcccf.camel@vmware.com>
Am 21.02.19 um 07:47 schrieb Thomas Hellstrom:
> On Wed, 2019-02-20 at 19:23 +0000, Kuehling, Felix wrote:
>> On 2019-02-20 1:41 a.m., Thomas Hellstrom wrote:
>>> On Tue, 2019-02-19 at 17:06 +0000, Kuehling, Felix wrote:
>>>> On 2019-02-18 3:39 p.m., Thomas Hellstrom wrote:
>>>>> On Mon, 2019-02-18 at 18:07 +0100, Christian König wrote:
>>>>>> Am 18.02.19 um 10:47 schrieb Thomas Hellstrom:
>>>>>>> On Mon, 2019-02-18 at 09:20 +0000, Koenig, Christian wrote:
>>>>>>>> Another good question is also why the heck the acc_size
>>>>>>>> counts
>>>>>>>> towards
>>>>>>>> the DMA32 zone?
>>>>>>> DMA32 TTM pages are accounted in the DMA32 zone. Other
>>>>>>> pages
>>>>>>> are
>>>>>>> not.
>>>>>> Yeah, I'm perfectly aware of this. But this is for the
>>>>>> accounting
>>>>>> size!
>>>>>>
>>>>>> We have an accounting for the stuff needed additional to the
>>>>>> pages
>>>>>> backing the BO (e.g. the page and DMA addr array).
>>>>>>
>>>>>> And from the bug description it sounds like we use the DMA32
>>>>>> zone
>>>>>> for
>>>>>> this accounting which of course is completely nonsense.
>>>>> It's actually accounted in all available zones, since it would
>>>>> be
>>>>> pretty hard to determine exactly where that memory should be
>>>>> accounted.
>>>>> In particular if it's vmalloced. It might be DMA32, it might
>>>>> not.
>>>>> Given
>>>>> the objective of stopping malicious user-space from exhausting
>>>>> the
>>>>> DMA32 zone it was, at the time the code was written, a
>>>>> reasonable
>>>>> approximation. With ever increasing memory sizes, there might
>>>>> be
>>>>> better
>>>>> solutions?
>>>> As far as I can see, in TTM, ttm_mem_global_alloc is only used
>>>> for
>>>> the
>>>> acc_size in ttm_bo_init_reserved. Other than that vmwgfx also
>>>> seems
>>>> to
>>>> use it to account for a few things that are allocated with
>>>> kmalloc.
>>>>
>>>> So would a better solution be to change ttm_mem_global_alloc to
>>>> use
>>>> only
>>>> the kernel zone?
>>>>
>>> IMO we need to determine what functionality to keep and then the
>>> best
>>> solution. The current code does its job, but is obviously too
>>> restrictive. Both of the solutions you suggest open up for
>>> potential
>>> DOS attacks (DMA32 and kernel zones are not mutually exclusive.
>>> They
>>> overlap).
>> On x86 with HIGHMEM there is no dma32 zone. Why do we need one on
>> x86_64? Can we make x86_64 more like HIGHMEM instead?
>>
>> Regards,
>> Felix
>>
> IIRC with x86, the kernel zone is always smaller than any dma32 zone,
> so we'd always exhaust the kernel zone before dma32 anyway.
>
> Not sure why we have dma32 on x86 without highmem, though. sounds
> superflous but harmless.
Well DMA32 denotes memory which is accessible by devices who can only do
32bit addressing. And IIRC we can actually do DMA32 to highmem since
something like 2.4.*.
Because of this it is actually irrelevant if you have highmem or not,
what matters for DMA32 is if you have an IOMMU or not.
So even on x86_64 you actually do need the DMA32 zone if you don't have
an IOMMU which remaps all memory for devices which can't directly
address it.
Regards,
Christian.
>
> /Thomas
>
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2019-02-21 7:59 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-15 23:02 [PATCH 1/1] [RFC] drm/ttm: Don't init dma32_zone on 64-bit systems Kuehling, Felix
2019-02-18 8:02 ` Thomas Hellstrom
2019-02-18 9:20 ` Koenig, Christian
2019-02-18 9:47 ` Thomas Hellstrom
[not found] ` <d90f7ab569b636db0968c80dad9eb16ce7bf1eab.camel-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2019-02-18 17:07 ` Christian König
[not found] ` <89c4b66a-152a-d0f3-4ce0-d89f6ef822bb-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2019-02-18 20:39 ` Thomas Hellstrom
[not found] ` <eaad8f2dc24e98c68036801ccd6a871586033d31.camel-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2019-02-19 17:06 ` Kuehling, Felix
[not found] ` <2be5739a-fe9a-f436-48a2-fb420cb97a13-5C7GfCeVMHo@public.gmane.org>
2019-02-20 6:41 ` Thomas Hellstrom
[not found] ` <19a0abdbd60c251a63975a7ddff31c35a5eb0a31.camel-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2019-02-20 8:07 ` Christian König
2019-02-20 8:14 ` Thomas Hellstrom
[not found] ` <307f2073-7c15-8dac-58fe-3c0170231530-4+hqylr40dJg9hUCZPvPmw@public.gmane.org>
2019-02-20 8:35 ` Koenig, Christian
[not found] ` <66b1fa8a-6449-6fe2-18a0-c7aa2200ac68-5C7GfCeVMHo@public.gmane.org>
2019-02-20 9:01 ` Thomas Hellstrom
2019-02-20 19:23 ` Kuehling, Felix
2019-02-21 6:47 ` Thomas Hellstrom
2019-02-21 7:59 ` Koenig, Christian [this message]
[not found] ` <4423e7aa-2153-5305-91c2-8d212ae1786b-5C7GfCeVMHo@public.gmane.org>
2019-02-21 16:57 ` Kuehling, Felix
[not found] ` <2a76cb48-10f1-6df2-5b40-8d5b4c52acc4-5C7GfCeVMHo@public.gmane.org>
2019-02-21 17:34 ` Thomas Hellstrom
[not found] ` <39a4a5534ea3d5fa9ba94714e80f919c5a43aea9.camel-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2019-02-21 20:24 ` Kuehling, Felix
[not found] ` <2b4ea7ed-08e6-6dd3-7b56-e7c1713fc357-5C7GfCeVMHo@public.gmane.org>
2019-02-21 21:02 ` Thomas Hellstrom
[not found] ` <0f1a3b818a4f6b426dff5c641332a456b08136f8.camel-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2019-02-22 7:10 ` Koenig, Christian
2019-02-22 13:45 ` Thomas Hellstrom
[not found] ` <0c5e5ad70e2acbf2efd9fd0878768dcd5e008cd3.camel-pghWNbHTmq7QT0dZR+AlfA@public.gmane.org>
2019-02-22 23:06 ` Kuehling, Felix
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=4423e7aa-2153-5305-91c2-8d212ae1786b@amd.com \
--to=christian.koenig@amd.com \
--cc=Felix.Kuehling@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=thellstrom@vmware.com \
--cc=thomas@shipmail.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).