[PATCH 1/4] drm/ttm: add multihop infrastrucutre (v2)

Christian König christian.koenig at amd.com
Mon Nov 9 16:20:17 UTC 2020


Am 09.11.20 um 17:18 schrieb Ville Syrjälä:
> On Mon, Nov 09, 2020 at 04:57:29PM +0100, Christian König wrote:
>> Am 09.11.20 um 16:16 schrieb Ville Syrjälä:
>>> On Wed, Nov 11, 2020 at 06:13:02PM +0100, Christian König wrote:
>>>> Am 09.11.20 um 01:54 schrieb Dave Airlie:
>>>>> @@ -1432,15 +1479,18 @@ int ttm_bo_swapout(struct ttm_operation_ctx *ctx)
>>>>>     	if (bo->mem.mem_type != TTM_PL_SYSTEM) {
>>>>>     		struct ttm_operation_ctx ctx = { false, false };
>>>>>     		struct ttm_resource evict_mem;
>>>>> +		struct ttm_place hop = {};
>>>> Please always use memset() if you want to zero initialize something in
>>>> the kernel, we had enough trouble with that.
>>> What trouble is that? I've not heard of anything, and we use
>>> ={} quite extensively in drm land.
>> ={} initializes only named fields, not padding.
> Has that actually happened?

YES! Numerous times!

And the first few times it took us weeks to figure out what was actually 
happening.

Christian.

>
>> The result is that for example when doing a hash or CRC of a structure
>> you can come up with different results depending on the architecture
>> and/or structure layout.
>>
>> Another problem are information leaks from the kernel to userspace
>> because of this.
>>
>> Because of this Mesa for example strongly discourages using ={} for
>> zeroing a structure.
>>
>> Regards,
>> Christian.



More information about the dri-devel mailing list