* Preload engine in ARMv7 (cortex A8)
@ 2010-06-01 17:27 Vinayak Pane
2010-06-07 9:04 ` Catalin Marinas
0 siblings, 1 reply; 3+ messages in thread
From: Vinayak Pane @ 2010-06-01 17:27 UTC (permalink / raw)
To: linux-arm-kernel
Hi Reader,
I am planning to utilize the PreLoad Engine for L2 cache. In past, I have
played with cache locking with line by line in ARM9. There I could recall
that tags and indexes are generated on basis of physical address of the
data. Now in case of PLE we have the start address and number of lines to
fill with. Does the PLE operation will leave some indexes empty ? Or does
the PLE populate all the lines in that way with the source data address ? Do
I need to start PLE for the block of size equal to that of way-size ? To
ensure no lines remain empty and to ensure no line gets overwriten by other
line.
Appreciate your comments.
Thanks
vinayak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20100601/42348758/attachment-0001.htm>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Preload engine in ARMv7 (cortex A8)
2010-06-01 17:27 Preload engine in ARMv7 (cortex A8) Vinayak Pane
@ 2010-06-07 9:04 ` Catalin Marinas
2010-06-07 23:09 ` Måns Rullgård
0 siblings, 1 reply; 3+ messages in thread
From: Catalin Marinas @ 2010-06-07 9:04 UTC (permalink / raw)
To: linux-arm-kernel
On Tue, 2010-06-01 at 18:27 +0100, Vinayak Pane wrote:
> I am planning to utilize the PreLoad Engine for L2 cache. In past, I
> have played with cache locking with line by line in ARM9. There I
> could recall that tags and indexes are generated on basis of physical
> address of the data. Now in case of PLE we have the start address and
> number of lines to fill with. Does the PLE operation will leave some
> indexes empty ? Or does the PLE populate all the lines in that way
> with the source data address ? Do I need to start PLE for the block of
> size equal to that of way-size ? To ensure no lines remain empty and
> to ensure no line gets overwriten by other line.
I couldn't fully understand your question. It looks more like
hardware-related (you could try support at arm.com).
Anyway, in general you should not make any assumptions about which lines
are present or not in the cache. With speculative loads on newer cores,
you can get other lines in the cache than what you were expecting and
they may evict some the you explicitly tried to preload.
Catalin
^ permalink raw reply [flat|nested] 3+ messages in thread
* Preload engine in ARMv7 (cortex A8)
2010-06-07 9:04 ` Catalin Marinas
@ 2010-06-07 23:09 ` Måns Rullgård
0 siblings, 0 replies; 3+ messages in thread
From: Måns Rullgård @ 2010-06-07 23:09 UTC (permalink / raw)
To: linux-arm-kernel
Catalin Marinas <catalin.marinas@arm.com> writes:
> On Tue, 2010-06-01 at 18:27 +0100, Vinayak Pane wrote:
>> I am planning to utilize the PreLoad Engine for L2 cache. In past, I
>> have played with cache locking with line by line in ARM9. There I
>> could recall that tags and indexes are generated on basis of physical
>> address of the data. Now in case of PLE we have the start address and
>> number of lines to fill with. Does the PLE operation will leave some
>> indexes empty ? Or does the PLE populate all the lines in that way
>> with the source data address ? Do I need to start PLE for the block of
>> size equal to that of way-size ? To ensure no lines remain empty and
>> to ensure no line gets overwriten by other line.
>
> I couldn't fully understand your question. It looks more like
> hardware-related (you could try support at arm.com).
>
> Anyway, in general you should not make any assumptions about which lines
> are present or not in the cache. With speculative loads on newer cores,
> you can get other lines in the cache than what you were expecting and
> they may evict some the you explicitly tried to preload.
Locking a cache way before loading it with the PLE would avoid
unrelated loads, speculative or otherwise, evicting the preloaded data
early. This of course gets complicated quickly, so it's generally
better to not assume anything. Cache is not TCM and should not be
treated as such.
--
M?ns Rullg?rd
mans at mansr.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-06-07 23:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-01 17:27 Preload engine in ARMv7 (cortex A8) Vinayak Pane
2010-06-07 9:04 ` Catalin Marinas
2010-06-07 23:09 ` Måns Rullgård
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).