[PATCH 1/2] drm/amdgpu: Add support for filling a buffer with 64 bit value

Harry Wentland harry.wentland at amd.com
Thu Jul 27 15:48:13 UTC 2017


On 2017-07-27 11:44 AM, Zhao, Yong wrote:
> Hi Christian,
> 
> 
> I used eclipse. The reason why I changed the indent is that the current
> indents are composed of tabs and spaces, and I will get style warning
> from checkpatch script when trying to submit it to gerrit, so I made the
> indents all tabs. In this case, should I still use the previous indents?
> 

Generally it's not a good idea to combine style fixes with functional
changes as it makes it hard to spot the functional change. It's better
to ignore warnings in that case if they're not in the same line you modify.

Harry

> 
> Regards,
> 
> Yong
> 
> 
> 
> ------------------------------------------------------------------------
> *From:* Christian König <deathsimple at vodafone.de>
> *Sent:* Thursday, July 27, 2017 5:34:58 AM
> *To:* Zhao, Yong; amd-gfx at lists.freedesktop.org
> *Subject:* Re: [PATCH 1/2] drm/amdgpu: Add support for filling a buffer
> with 64 bit value
>  
> Am 26.07.2017 um 22:45 schrieb Yong Zhao:
>> That function will be used later to support setting a page table
>> block with 64 bit value.
>>
>> Change-Id: Ib142ebd4163d6e23670a3f0ceed536d59133b942
>> Signed-off-by: Yong Zhao <Yong.Zhao at amd.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 19 +++++++++++++------
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h |  2 +-
>>   2 files changed, 14 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>> index 4d2a454..6ab30da 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
>> @@ -1509,11 +1509,12 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset,
>>   }
>>   
>>   int amdgpu_fill_buffer(struct amdgpu_bo *bo,
>> -                    uint32_t src_data,
>> -                    struct reservation_object *resv,
>> -                    struct dma_fence **fence)
>> +                     uint64_t src_data,
>> +                     struct reservation_object *resv,
>> +                     struct dma_fence **fence)
> 
> Looks like you accidentally changed the indentation of the other
> function parameters here. What editor do you use?
> 
> Please make sure that you only change the type, with that fixed the
> patch is Reviewed-by: Christian König <christian.koenig at amd.com>.
> 
> Regards,
> Christian.
> 
>>   {
>>        struct amdgpu_device *adev = amdgpu_ttm_adev(bo->tbo.bdev);
>> +     /* max_bytes applies to SDMA_OP_PTEPDE as well as SDMA_OP_CONST_FILL*/
>>        uint32_t max_bytes = adev->mman.buffer_funcs->fill_max_bytes;
>>        struct amdgpu_ring *ring = adev->mman.buffer_funcs_ring;
>>   
>> @@ -1545,7 +1546,9 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo,
>>                num_pages -= mm_node->size;
>>                ++mm_node;
>>        }
>> -     num_dw = num_loops * adev->mman.buffer_funcs->fill_num_dw;
>> +
>> +     /* 10 double words for each SDMA_OP_PTEPDE cmd */
>> +     num_dw = num_loops * 10;
>>   
>>        /* for IB padding */
>>        num_dw += 64;
>> @@ -1570,12 +1573,16 @@ int amdgpu_fill_buffer(struct amdgpu_bo *bo,
>>                uint32_t byte_count = mm_node->size << PAGE_SHIFT;
>>                uint64_t dst_addr;
>>   
>> +             WARN_ONCE(byte_count & 0x7, "size should be a multiple of 8");
>> +
>>                dst_addr = amdgpu_mm_node_addr(&bo->tbo, mm_node, &bo->tbo.mem);
>>                while (byte_count) {
>>                        uint32_t cur_size_in_bytes = min(byte_count, max_bytes);
>>   
>> -                     amdgpu_emit_fill_buffer(adev, &job->ibs[0], src_data,
>> -                                             dst_addr, cur_size_in_bytes);
>> +                     amdgpu_vm_set_pte_pde(adev, &job->ibs[0],
>> +                                     dst_addr, 0,
>> +                                     cur_size_in_bytes >> 3, 0,
>> +                                     src_data);
>>   
>>                        dst_addr += cur_size_in_bytes;
>>                        byte_count -= cur_size_in_bytes;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>> index f137c24..0e2399f 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.h
>> @@ -73,7 +73,7 @@ int amdgpu_copy_buffer(struct amdgpu_ring *ring, uint64_t src_offset,
>>                       struct dma_fence **fence, bool direct_submit,
>>                       bool vm_needs_flush);
>>   int amdgpu_fill_buffer(struct amdgpu_bo *bo,
>> -                     uint32_t src_data,
>> +                     uint64_t src_data,
>>                        struct reservation_object *resv,
>>                        struct dma_fence **fence);
>>   
> 
> 
> 
> 
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
> 


More information about the amd-gfx mailing list