All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian König" <ckoenig.leichtzumerken@gmail.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org,
	thomas.hellstrom@linux.intel.com, ray.huang@amd.com
Subject: Re: [PATCH 2/5] drm/ttm: add busy and idle placement flags
Date: Wed, 1 Sep 2021 09:35:13 +0200	[thread overview]
Message-ID: <9d0a5eea-b35d-12af-1e38-2fbcdb807132@gmail.com> (raw)
In-Reply-To: <YS4sNDmk/HKowHxr@phenom.ffwll.local>

Am 31.08.21 um 15:18 schrieb Daniel Vetter:
> On Tue, Aug 31, 2021 at 01:21:07PM +0200, Christian König wrote:
>> More flexible than the busy placements.
>>
>> Signed-off-by: Christian König <christian.koenig@amd.com>
>> ---
>>   drivers/gpu/drm/ttm/ttm_bo.c    | 8 +++++++-
>>   include/drm/ttm/ttm_placement.h | 6 ++++++
>>   2 files changed, 13 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
>> index 0a3127436f61..c7034040c67f 100644
>> --- a/drivers/gpu/drm/ttm/ttm_bo.c
>> +++ b/drivers/gpu/drm/ttm/ttm_bo.c
>> @@ -834,6 +834,9 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
>>   		const struct ttm_place *place = &placement->placement[i];
>>   		struct ttm_resource_manager *man;
>>   
>> +		if (place->flags & TTM_PL_FLAG_BUSY)
>> +			continue;
>> +
>>   		man = ttm_manager_type(bdev, place->mem_type);
>>   		if (!man || !ttm_resource_manager_used(man))
>>   			continue;
>> @@ -860,6 +863,9 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
>>   		const struct ttm_place *place = &placement->busy_placement[i];
>>   		struct ttm_resource_manager *man;
>>   
>> +		if (place->flags & TTM_PL_FLAG_IDLE)
>> +			continue;
>> +
>>   		man = ttm_manager_type(bdev, place->mem_type);
>>   		if (!man || !ttm_resource_manager_used(man))
>>   			continue;
>> @@ -869,7 +875,7 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo,
>>   		if (likely(!ret))
>>   			return 0;
>>   
>> -		if (ret && ret != -EBUSY)
>> +		if (ret != -EBUSY)
>>   			goto error;
>>   	}
>>   
>> diff --git a/include/drm/ttm/ttm_placement.h b/include/drm/ttm/ttm_placement.h
>> index 8995c9e4ec1b..63f7217354c0 100644
>> --- a/include/drm/ttm/ttm_placement.h
>> +++ b/include/drm/ttm/ttm_placement.h
>> @@ -53,6 +53,12 @@
>>   /* For multihop handling */
>>   #define TTM_PL_FLAG_TEMPORARY   (1 << 2)
>>   
>> +/* Placement is only used when we are evicting */
>> +#define TTM_PL_FLAG_BUSY	(1 << 3)
>> +
>> +/* Placement is only used when we are not evicting */
>> +#define TTM_PL_FLAG_IDLE	(1 << 4)
> Using an enum for this (with BIT() macro or so) and then slapping
> kerneldoc on top would be nice. That way you can also use the same enum in
> parameters and structures and it's all a bit easier to find and connect.

I don't really like to define flags as enums since they are not really 
an enumeration.

But some more kerneldoc sounds like a good idea to me.

> Otherwise I think this series makes sense, but probably better for nouveau
> folks to do review/testing.

Yeah, agree completely. I can do some smoke testing with nouveau, but 
that's about it.

Christian.

> -Daniel
>
>> +
>>   /**
>>    * struct ttm_place
>>    *
>> -- 
>> 2.25.1
>>


  reply	other threads:[~2021-09-01  7:35 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-31 11:21 [PATCH 1/5] drm/ttm: cleanup ttm_resource_compat Christian König
2021-08-31 11:21 ` [PATCH 2/5] drm/ttm: add busy and idle placement flags Christian König
2021-08-31 13:18   ` Daniel Vetter
2021-09-01  7:35     ` Christian König [this message]
2021-09-02  9:19   ` Huang Rui
2021-08-31 11:21 ` [PATCH 3/5] drm/amdgpu: use new " Christian König
2021-08-31 11:21 ` [PATCH 4/5] drm/nouveau: switch to using " Christian König
2021-08-31 11:21 ` [PATCH 5/5] drm/ttm: remove busy placement handling Christian König
2021-09-02  8:45 ` [PATCH 1/5] drm/ttm: cleanup ttm_resource_compat Huang Rui

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=9d0a5eea-b35d-12af-1e38-2fbcdb807132@gmail.com \
    --to=ckoenig.leichtzumerken@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=ray.huang@amd.com \
    --cc=thomas.hellstrom@linux.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.