From: Pedro Alves <palves@redhat.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [PATCH 05/10] Invalidate or shrink dcache when setting is changed.
Date: Tue, 19 Nov 2013 11:52:00 -0000 [thread overview]
Message-ID: <528B4DCA.8090404@redhat.com> (raw)
In-Reply-To: <528AFE6E.9000009@codesourcery.com>
On 11/19/2013 06:00 AM, Yao Qi wrote:
> On 11/18/2013 11:56 PM, Pedro Alves wrote:
>> On 11/03/2013 05:54 AM, Yao Qi wrote:
>>> Nowadays, when cache size or line size is changed by command,
>>> 'target_dcache' is invalidated. It is too conservative. We can
>>> optimize in the following ways,
>>>
>>> - Don't have to invalidate dcache immediately after cache size or
>>> line size is changed. We can postpone the invalidation to the moment
>>> using 'target_dcache'.
>>> - Don't have to invalidate dcache if the cache size is changed. If
>>> cache size is changed to the value which is still greater than
>>> dcache's size, nothing should be done. If change to the value
>>> which is less than dcache's size, just evict cache lines.
>>>
>>> This is what this patch does.
>>
>> Actually, my "My thoughts exactly." comment in the other patch was
>> originally directed at this patch. Do we really need this extra
>> complication? What's the use case that needs this?
>>
>
> Here are three use cases,
>
> 1) target dcache has 16 cache lines, and dcache size is 4096. User
> types command "set dcache size 32" or "set dcache size 4160".
> 2) target dcache has 16 cache lines. User types command "set dcache
> size 8".
> 3) line size of target dcache is 32. User types commands
>
> "set dcache line-size 16" // change line-size to 16.
> // change it back.
> "set dcache line-size 32"
Sure, OK, I guess I did the wrong question then. I really mean,
why should we care about preserving the cache when the user
changes cache size? What makes this a use case users actually
care about? I don't think users going to be doing this
sort of thing in a loop? At most a couple times to check which
size might be better for then, and then stick it in .gdbinit,
forever after forgotten.
Actually, if I was probing for the ideal size, I think I'd be
annoyed that GDB didn't flush the cache, as I'd try
disassembling/backtracing with different cache sizes, and
always want to start from a cold cache.
> This "extra complication" looks natural or reasonable to a software
> cache.
It's always a complication/necessity/usefulness balance.
It doesn't look so reasonable if the complication it adds
isn't useful in practice, because more code usually means more
chances of getting things wrong. The question is then what is
the real use case that makes this necessary, as opposed to keeping
it simple.
> We are using cache, and we'd like to do as few invalidations as
> possible.
--
Pedro Alves
next prev parent reply other threads:[~2013-11-19 11:39 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-03 5:57 [PATCH 00/10 V2] Cache code access for disassemble Yao Qi
2013-11-03 5:56 ` [PATCH 02/10] Don't update target_dcache if it is not initialized Yao Qi
2013-11-17 20:09 ` Doug Evans
2013-11-03 5:56 ` [PATCH 07/10] Associate target_dcache to address_space Yao Qi
2013-11-03 16:48 ` Eli Zaretskii
2013-11-17 21:22 ` Doug Evans
2013-11-20 7:54 ` Yao Qi
2013-11-20 13:23 ` Yao Qi
2013-11-03 5:56 ` [PATCH 05/10] Invalidate or shrink dcache when setting is changed Yao Qi
2013-11-03 16:50 ` Eli Zaretskii
2013-11-17 20:55 ` Doug Evans
2013-11-18 14:31 ` Yao Qi
2013-11-18 15:59 ` Pedro Alves
2013-11-19 6:16 ` Yao Qi
2013-11-19 11:52 ` Pedro Alves [this message]
2013-11-19 13:12 ` Yao Qi
2013-11-03 5:56 ` [PATCH 03/10] Move target-dcache out of target.c Yao Qi
2013-11-17 20:15 ` Doug Evans
2013-11-18 15:53 ` Pedro Alves
2013-11-03 5:56 ` [PATCH 08/10] Don't invalidate dcache when option stack-cache is changed Yao Qi
2013-11-17 22:02 ` Doug Evans
2013-11-18 14:12 ` Yao Qi
2013-11-18 15:51 ` Pedro Alves
2013-11-19 6:43 ` Yao Qi
2013-11-19 12:14 ` Pedro Alves
2013-11-19 14:06 ` Yao Qi
2013-11-03 5:56 ` [PATCH 09/10] set/show code-cache Yao Qi
2013-11-03 16:58 ` Eli Zaretskii
2013-11-18 8:23 ` Doug Evans
2013-11-03 5:56 ` [PATCH 01/10] Remove last_cache Yao Qi
2013-11-17 19:52 ` Doug Evans
2013-11-03 5:57 ` [PATCH 04/10] Don't stress 'remote' in "Data Caching" in doc Yao Qi
2013-11-03 16:55 ` Eli Zaretskii
2013-11-06 7:56 ` Yao Qi
2013-11-06 10:28 ` Eli Zaretskii
2013-11-17 20:34 ` Doug Evans
2013-11-17 21:44 ` Eli Zaretskii
2013-11-20 2:41 ` Doug Evans
2013-11-20 4:01 ` Eli Zaretskii
2013-11-22 1:17 ` Doug Evans
2013-11-20 3:58 ` Yao Qi
2013-11-03 5:57 ` [PATCH 06/10] Add REGISTRY for struct address_space Yao Qi
2013-11-17 21:09 ` Doug Evans
2013-11-20 4:46 ` Yao Qi
2013-11-11 9:38 ` [PATCH 00/10 V2] Cache code access for disassemble Yao Qi
2013-11-17 17:03 ` Yao Qi
2013-11-18 8:39 ` [PATCH 10/10] Use target_read_code in disassemble Yao Qi
2013-11-18 17:12 ` Doug Evans
2013-11-20 4:46 ` [PATCH 00/10 V2] Cache code access for disassemble Yao Qi
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=528B4DCA.8090404@redhat.com \
--to=palves@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=yao@codesourcery.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox