From: Sui Jingfeng <15330273260@189.cn>
To: Thomas Zimmermann <tzimmermann@suse.de>,
Lucas De Marchi <lucas.demarchi@intel.com>
Cc: David Airlie <airlied@linux.ie>, liyi <liyi@loongson.cn>,
linux-kernel@vger.kernel.org, Sui Jingfeng <15330273260@189.cn>,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm/fbdev-generic: optimize out a redundant assignment clause
Date: Thu, 30 Mar 2023 15:17:35 +0800 [thread overview]
Message-ID: <2e6ec82f-dfde-0f3a-7980-136cea161d6b@189.cn> (raw)
In-Reply-To: <f42d8ab8-c765-2517-7d25-6ce1dea320e8@suse.de>
Hi,
On 2023/3/30 14:57, Thomas Zimmermann wrote:
> Hi
>
> Am 30.03.23 um 06:17 schrieb Lucas De Marchi:
>> On Wed, Mar 29, 2023 at 11:04:17AM +0200, Thomas Zimmermann wrote:
>>> (cc'ing Lucas)
>>>
>>> Hi
>>>
>>> Am 25.03.23 um 08:46 schrieb Sui Jingfeng:
>>>> The assignment already done in drm_client_buffer_vmap(),
>>>> just trival clean, no functional change.
>>>>
>>>> Signed-off-by: Sui Jingfeng <15330273260@189.cn>
>>>> ---
>>>> drivers/gpu/drm/drm_fbdev_generic.c | 5 ++---
>>>> 1 file changed, 2 insertions(+), 3 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/drm_fbdev_generic.c
>>>> b/drivers/gpu/drm/drm_fbdev_generic.c
>>>> index 4d6325e91565..1da48e71c7f1 100644
>>>> --- a/drivers/gpu/drm/drm_fbdev_generic.c
>>>> +++ b/drivers/gpu/drm/drm_fbdev_generic.c
>>>> @@ -282,7 +282,7 @@ static int drm_fbdev_damage_blit(struct
>>>> drm_fb_helper *fb_helper,
>>>> struct drm_clip_rect *clip)
>>>> {
>>>> struct drm_client_buffer *buffer = fb_helper->buffer;
>>>> - struct iosys_map map, dst;
>>>> + struct iosys_map map;
>>>> int ret;
>>>> /*
>>>> @@ -302,8 +302,7 @@ static int drm_fbdev_damage_blit(struct
>>>> drm_fb_helper *fb_helper,
>>>> if (ret)
>>>> goto out;
>>>> - dst = map;
>>>> - drm_fbdev_damage_blit_real(fb_helper, clip, &dst);
>>>> + drm_fbdev_damage_blit_real(fb_helper, clip, &map);
>>>
>>> I see what you're doing and it's probably correct in this case.
>>>
>>> But there's a larger issue with this iosys interfaces. Sometimes the
>>> address has to be modified (see calls of iosys_map_incr()). That can
>>> prevent incorrect uses of the mapping in other places, especially in
>>> unmap code.
>>
>> using a initializer for the cases it's needed IMO would make these kind
>> of problems go away, because then the intent is explicit
>>
>>>
>>> I think it would make sense to consider a separate structure for the
>>> I/O location. The buffer as a whole would still be represented by
>>> struct iosys_map. And that new structure, let's call it struct
>>> iosys_ptr, would point to an actual location within the buffer's
>>
>> sounds fine to me, but I'd have to take a deeper look later (or when
>> someone writes the patch). It seems we'd replicate almost the entire
>> API to just accomodate the 2 structs. And the different types will lead
>> to confusion when one or the other should be used
>
> I think we can split the current interface onto two categories:
> mapping and I/O. The former would use iosys_map and the latter would
> use iosys_ptr. And we'd need a helper that turns gets a ptr for a
> given map.
>
> If I find the tine, I'll probably type up a patch.
>
Here i fix a typo, 'tine' -> 'time'
As far as i can see, they are two major type of memory in the system.
System memory or VRAM, for the gpu with dedicate video ram, VRAM is
belong to the IO memory category.
But there are system choose carveout part of system ram as video
ram(i915?, for example).
the name iosys_map and iosys_ptr have no difference at the first sight,
tell me which one is for mapping system ram
and which one is for mapping vram?
> Best regards
> Thomas
>
>>
>> thanks
>> Lucas De Marchi
>>
>>> memory range. A few locations and helpers would need changes, but
>>> there are not so many callers that it's an issue. This would also
>>> allow for a few debugging tests that ensure that iosys_ptr always
>>> operates within the bounds of an iosys_map.
>>>
>>> I've long considered this idea, but there was no pressure to work on
>>> it. Maybe now.
>>>
>>> Best regards
>>> Thomas
>>>
>>>> drm_client_buffer_vunmap(buffer);
>>>
>>> --
>>> Thomas Zimmermann
>>> Graphics Driver Developer
>>> SUSE Software Solutions Germany GmbH
>>> Maxfeldstr. 5, 90409 Nürnberg, Germany
>>> (HRB 36809, AG Nürnberg)
>>> Geschäftsführer: Ivo Totev
>>
>>
>>
>
next prev parent reply other threads:[~2023-03-30 7:17 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-25 7:46 Sui Jingfeng
2023-03-29 9:04 ` Thomas Zimmermann
2023-03-29 9:09 ` Thomas Zimmermann
2023-03-29 10:48 ` Sui Jingfeng
2023-03-30 4:17 ` Lucas De Marchi
2023-03-30 6:57 ` Thomas Zimmermann
2023-03-30 7:11 ` Lucas De Marchi
2023-03-30 7:17 ` Sui Jingfeng [this message]
2023-03-30 7:26 ` Thomas Zimmermann
2023-03-30 7:48 ` Sui Jingfeng
2023-03-31 3:47 ` Sui Jingfeng
2023-03-30 8:29 ` Sui Jingfeng
2023-03-30 9:01 ` Sui Jingfeng
2023-04-04 2:55 ` Sui Jingfeng
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=2e6ec82f-dfde-0f3a-7980-136cea161d6b@189.cn \
--to=15330273260@189.cn \
--cc=airlied@linux.ie \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=liyi@loongson.cn \
--cc=lucas.demarchi@intel.com \
--cc=tzimmermann@suse.de \
/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
all inboxes | Powered by JetHome®