[PATCH 1/3] Revert "drm/amdgpu: move internal vram_mgr function into the C file"
Christian König
christian.koenig at amd.com
Fri Jul 22 15:47:05 UTC 2022
Hi Tvrtko,
scratching my head what exactly is going on here.
I've build tested drm-tip a couple of test in the last week and it
always worked flawlessly.
It looks like that some conflict resolution is sometimes not applied
correctly, but I have no idea why.
Regards,
Christian.
Am 22.07.22 um 16:46 schrieb Tvrtko Ursulin:
>
> On 14/07/2022 09:45, Thomas Zimmermann wrote:
>> Hi
>>
>> Am 08.07.22 um 11:30 schrieb Arunpravin Paneer Selvam:
>>> This reverts commit 708d19d9f362766147cab79eccae60912c6d3068.
>>
>> This commit is only present in drm-misc-next. Should the revert be
>> cherry-picked into drm-misc-next-fixes?
>
> Seemed like an appropriate thread to raise this, in case my pings
> about it on #dri-devel and #radeon go un-noticed since it is Friday
> after all.
>
> So for me dri-tip today fails to build the amdgpu driver.
>
> I had to revert 925b6e59138cefa47275c67891c65d48d3266d57 to make it
> build. This conflicts a bit but seems trivial. Without this revert
> code seems confused with different versions of struct amdgpu_vram_mgr
> and build fails violently (increase your scroll back buffers to see it
> all).
>
> Regards,
>
> Tvrtko
>
>> Best regards
>> Thomas
>>
>>>
>>> This is part of a revert of the following commits:
>>> commit 708d19d9f362 ("drm/amdgpu: move internal vram_mgr function
>>> into the C file")
>>> commit 5e3f1e7729ec ("drm/amdgpu: fix start calculation in
>>> amdgpu_vram_mgr_new")
>>> commit c9cad937c0c5 ("drm/amdgpu: add drm buddy support to amdgpu")
>>>
>>> [WHY]
>>> Few users reported garbaged graphics as soon as x starts,
>>> reverting until this can be resolved.
>>>
>>> Signed-off-by: Arunpravin Paneer Selvam
>>> <Arunpravin.PaneerSelvam at amd.com>
>>> ---
>>> drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c | 29
>>> --------------------
>>> drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h | 27 ++++++++++++++++++
>>> 2 files changed, 27 insertions(+), 29 deletions(-)
>>>
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
>>> index 7a5e8a7b4a1b..51d9d3a4456c 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.c
>>> @@ -50,35 +50,6 @@ to_amdgpu_device(struct amdgpu_vram_mgr *mgr)
>>> return container_of(mgr, struct amdgpu_device, mman.vram_mgr);
>>> }
>>> -static inline struct drm_buddy_block *
>>> -amdgpu_vram_mgr_first_block(struct list_head *list)
>>> -{
>>> - return list_first_entry_or_null(list, struct drm_buddy_block,
>>> link);
>>> -}
>>> -
>>> -static inline bool amdgpu_is_vram_mgr_blocks_contiguous(struct
>>> list_head *head)
>>> -{
>>> - struct drm_buddy_block *block;
>>> - u64 start, size;
>>> -
>>> - block = amdgpu_vram_mgr_first_block(head);
>>> - if (!block)
>>> - return false;
>>> -
>>> - while (head != block->link.next) {
>>> - start = amdgpu_vram_mgr_block_start(block);
>>> - size = amdgpu_vram_mgr_block_size(block);
>>> -
>>> - block = list_entry(block->link.next, struct
>>> drm_buddy_block, link);
>>> - if (start + size != amdgpu_vram_mgr_block_start(block))
>>> - return false;
>>> - }
>>> -
>>> - return true;
>>> -}
>>> -
>>> -
>>> -
>>> /**
>>> * DOC: mem_info_vram_total
>>> *
>>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h
>>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h
>>> index 4b267bf1c5db..9a2db87186c7 100644
>>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h
>>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vram_mgr.h
>>> @@ -53,6 +53,33 @@ static inline u64
>>> amdgpu_vram_mgr_block_size(struct drm_buddy_block *block)
>>> return PAGE_SIZE << drm_buddy_block_order(block);
>>> }
>>> +static inline struct drm_buddy_block *
>>> +amdgpu_vram_mgr_first_block(struct list_head *list)
>>> +{
>>> + return list_first_entry_or_null(list, struct drm_buddy_block,
>>> link);
>>> +}
>>> +
>>> +static inline bool amdgpu_is_vram_mgr_blocks_contiguous(struct
>>> list_head *head)
>>> +{
>>> + struct drm_buddy_block *block;
>>> + u64 start, size;
>>> +
>>> + block = amdgpu_vram_mgr_first_block(head);
>>> + if (!block)
>>> + return false;
>>> +
>>> + while (head != block->link.next) {
>>> + start = amdgpu_vram_mgr_block_start(block);
>>> + size = amdgpu_vram_mgr_block_size(block);
>>> +
>>> + block = list_entry(block->link.next, struct
>>> drm_buddy_block, link);
>>> + if (start + size != amdgpu_vram_mgr_block_start(block))
>>> + return false;
>>> + }
>>> +
>>> + return true;
>>> +}
>>> +
>>> static inline struct amdgpu_vram_mgr_resource *
>>> to_amdgpu_vram_mgr_resource(struct ttm_resource *res)
>>> {
>>
More information about the amd-gfx
mailing list