From: "Menyhart, Zoltan" <Zoltan.Menyhart@free.fr>
To: linux-ia64@vger.kernel.org
Subject: Re: flush_icache_range
Date: Thu, 02 Jun 2005 21:37:36 +0000 [thread overview]
Message-ID: <429F7C20.1090508@free.fr> (raw)
In-Reply-To: <4236D7B5.8050408@bull.net>
David Mosberger wrote:
>The changes to the assembly-file look mostly OK, except for the usual
>white-space issues (trailing whitespace, introduction of new, useless
>blank lines).
>
>
Well, if I add just 1 or 2 lines, as I did in my first patch, I respect
the original way of
whitespace usage.
I wanted to make it more easy to read, otherwise, some silly errors can
slip in more easily.
>More importantly, it looks to me like there is an off-by-one bug:
>ar.lc needs to be initialized to loop_count-1. Which raises the
>question: how well has this been tested? Or am I missing something?
>
>
It is calculated as:
loop_counter = ( end_address - start_address - 1 ) / stride_size
Most of the cases we flush entire pages.
In these cases, "loop_counter" seems to be correct.
Otherwise, if at least "start_address" is stride size aligned,
(ELF loader: text size is N * 16), we are still safe.
Otherwise, if only "end_address" is stride size aligned,
(not of very much interest), we are still safe.
Otherwise, if none of them is stride size aligned,
(e.g. a debugger may request to flush 2 bundles spanning over a
stride border), we will miss to flush the 2nd stride.
I propose to round down "start_address" to be stride size aligned.
>As for setup.c: I'd get rid of LOG_2_I_CACHE_STRIDE_SIZE and just
>initialize log_2_i_cache_stride_size to 5 (there is no point in
>initializing it with a random & useless value).
>
>
"log_2_i_cache_stride_size" is not initialized to any stride size, it
calculates the min. value.
Should "pal_cache_config_info" fail, you need something useful to be
able to boot up.
I 'd rather keep "LOG_2_I_CACHE_STRIDE_SIZE", I like speaking names.
Perhaps "LOG_2_DEFAULT_I_CACHE_STRIDE_SIZE" would be even better :-)
>Also, I think you should do take the minimum of _all_ cache-levels,
>not just level 1 (yes, I also have a hard time imagining a system
>where the higher level has a smaller stride, but I don't think there
>is anything that prevents such a system).
>
>
Well, things are getting complicated :-) I can add it...
I've got a concern about the "unique_caches" returned by
"pal_cache_summary()".
Let's assume that
unique_caches - cache_levels = 2
I could not find anything making sure that we've got in this case L1I
and L2I, and not
L1I and L3I (feeding through the unified L2). Yes, I know there is no
such a CPU
(at the moment) but the PAL spec. does not exclude it :-)
Thanks,
Zoltan
next prev parent reply other threads:[~2005-06-02 21:37 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-03-15 12:40 flush_icache_range Zoltan Menyhart
2005-03-15 18:21 ` flush_icache_range David Mosberger
2005-03-16 10:58 ` flush_icache_range Zoltan Menyhart
2005-03-16 11:19 ` flush_icache_range Duraid Madina
2005-03-16 18:31 ` flush_icache_range David Mosberger
2005-05-20 14:17 ` flush_icache_range Zoltan Menyhart
2005-05-20 15:03 ` flush_icache_range David Mosberger
2005-05-23 13:43 ` flush_icache_range Zoltan Menyhart
2005-05-26 17:21 ` flush_icache_range David Mosberger
2005-05-26 17:39 ` flush_icache_range Seth, Rohit
2005-05-27 15:45 ` flush_icache_range Zoltan Menyhart
2005-05-27 15:56 ` flush_icache_range David Mosberger
2005-05-27 16:45 ` flush_icache_range Zoltan Menyhart
2005-05-27 16:55 ` flush_icache_range David Mosberger
2005-05-27 18:27 ` flush_icache_range Grant Grundler
2005-05-27 19:00 ` flush_icache_range Russ Anderson
2005-05-29 20:23 ` flush_icache_range Menyhart, Zoltan
2005-06-01 23:50 ` flush_icache_range David Mosberger
2005-06-02 3:00 ` flush_icache_range Jim Hull
2005-06-02 12:12 ` flush_icache_range Zoltan Menyhart
2005-06-02 14:25 ` flush_icache_range Zoltan Menyhart
2005-06-02 17:36 ` flush_icache_range David Mosberger
2005-06-02 18:28 ` flush_icache_range David Mosberger
2005-06-02 18:31 ` flush_icache_range David Mosberger
2005-06-02 19:00 ` flush_icache_range Jim Hull
2005-06-02 21:37 ` Menyhart, Zoltan [this message]
2005-06-02 22:23 ` flush_icache_range David Mosberger
2005-06-02 22:55 ` flush_icache_range Menyhart, Zoltan
2005-06-02 23:07 ` flush_icache_range David Mosberger
2005-06-03 12:35 ` flush_icache_range Zoltan Menyhart
2005-06-03 21:09 ` flush_icache_range David Mosberger
2005-06-13 11:20 ` flush_icache_range Zoltan Menyhart
-- strict thread matches above, loose matches on Subject: below --
2000-07-23 1:07 flush_icache_range Kanoj Sarcar
2000-07-23 18:36 ` flush_icache_range Ralf Baechle
2000-07-24 16:10 ` flush_icache_range Kanoj Sarcar
2000-07-25 0:06 ` flush_icache_range Ralf Baechle
2000-07-25 1:11 ` flush_icache_range Kanoj Sarcar
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=429F7C20.1090508@free.fr \
--to=zoltan.menyhart@free.fr \
--cc=linux-ia64@vger.kernel.org \
/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.