Continuing the e-mail thread that never dies.... 

It appears as
though the dcache some how does the correct thing when a read request
comes into the l2 bus. Note that the dcache is snooping the request.

Listening for system connection on port 3456

 481100500:
system.cpu.dtb.walker: Begining table walk for address 0xc0200000,
TTBCR: 0, bits:0
 481100500: system.cpu.dtb.walker: - Selecting TTBR0

481100500: system.cpu.dtb.walker: - Descriptor at address
0x7008
481100500: system.tol2bus: recvAtomic: packet src 4 dest -1 addr
0x7008 cmd ReadReq
481100500: system.cpu.dcache: snooped a ReadReq
request for addr 7000, responding, new state is 13
481100500: system.l2:
rcvd mem-inhibited ReadReq on 0x7008: not responding
481100500:
system.cpu.dtb.walker: L1 descriptor for 0xc0200000 is 0x20040e

After
some work I managed to get a cache to work in this case too.... The
table walker has to kick off a sendStatusChange() otherwise the cache
below it doesn't get added to the snooping list of the tol2bus. 

Ali


On Tue, 23 Nov 2010 07:30:00 -0800, Steve Reinhardt  wrote:  

The
point is that connecting between the L1 and L2 induces the same problems
wrt the L1 that connecting directly to memory induces wrt the whole
cache hierarchy. You're just statistically more likely to get away with
it in the former case because the L1 is smaller.

Steve

On Tue, Nov 23,
2010 at 7:16 AM, Ali Saidi  wrote:

 Where are you connecting the table
walker? If it's between the l1 and l2 my guess is that it will work. if
it is to the memory bus, yes, memory is just responding without the help
of a cache and this could be the reason.

 Ali 

 On Tue, 23 Nov 2010
06:29:20 -0500, Gabe Black  wrote:
 I think I may have just now. I've
fixed a few issues, and am now getting
 to the point where something
that should be in the pagetables is causing
 a page fault. I found where
the table walker is walking the tables for
 this particular access, and
the last level entry is all 0s. There could
 be a number of reasons this
is all 0s, but since the main difference
 other than timing between this
and a working configuration is the
 presence of caches and we've
identified a potential issue there, I'm
 inclined to suspect the actual
page table entry is still in the L1 and
 hasn't been evicted out to
memory yet.

 To fix this, is the best solution to add a bus below the
CPU for all the
 connections that need to go to the L1? I'm assuming
they'd all go into
 the dcache since they're more data-ey and that keeps
the icache read
 only (ignoring SMC issues), and the dcache is probably
servicing lower
 bandwidth normally. It also seems a little strange that
this type of
 configuration is going on in the BaseCPU.py SimObject
python file and
 not a configuration file, but I could be convinced
there's a reason.
 Even if this isn't really a "fix" or the "right
thing" to do, I'd still
 like to try it temporarily at least to see if
it corrects the problem
 I'm seeing.

 Gabe

 Ali Saidi wrote:

 I
haven't seen any strange behavior yet. That isn't to say it's not
 going
to cause an issue in the future, but we've taken many a tlb miss
 and it
hasn't fallen over yet.

 Ali

 On Mon, 22 Nov 2010 13:08:13 -0800,
Steve Reinhardt 
 wrote:

 Yea, I just got around to reading this thread
and that was the point
 I was going to make... the L1 cache effectively
serves as a
 translator between the CPU's word-size read & write
requests and the
 coherent block-level requests that get snooped. If you
attach a
 CPU-like device (such as the table walker) directly to an L2,
the
 CPU-like accesses that go to the L2 will get sent to the L1s but
I'm
 not sure they'll be handled correctly. Not that they fundamentally

couldn't, this just isn't a configuration we test so it's likely that

there are problems... for example, the L1 may try to hand ownership
 to
the requester but the requester won't recognize that and things
 will
break.

 Steve

 On Mon, Nov 22, 2010 at 12:00 PM, Gabe Black > wrote:


What happens if an entry is in the L1 but not the L2?

 Gabe

 Ali Saidi
wrote:
 > Between the l1 and l2 caches seems like a good place to me.
The
 caches can cache page table entries, otherwise a tlb miss would
 be
even more expensive then it is. The l1 isn't normally used for
 such
things since it would get polluted (look why sparc has a
 load 128bits
from l2, do not allocate into l1 instruction).
 >
 > Ali
 >
 > On Nov
22, 2010, at 4:27 AM, Gabe Black wrote:
 >
 >
 >> For anybody waiting
for an x86 FS regression (yes, I know,
 you can
 >> all hardly wait, but
don't let this spoil your Thanksgiving)
 I'm getting
 >> closer to
having it working, but I've discovered some issues
 with the
 >>
mechanisms behind the --caches flag with fs.py and x86. I'm
 surprised
I
 >> never thought to try it before. It also brings up some
 questions
about
 >> where the table walkers should be hooked up in x86 and ARM.

Currently
 >> it's after the L1, if any, but before the L2, if any,
which
 seems wrong
 >> to me. Also caches don't seem to propagate
requests upwards to
 the CPUs
 >> which may or may not be an issue. I'm
still looking into that.
 >>
 >> Gabe
 >>
_______________________________________________
 >> m5-dev mailing list

>> m5-dev@m5sim.org [6] m5-dev@m5sim.org [7]>
 >>
http://m5sim.org/mailman/listinfo/m5-dev [8]
 >>
 >>
 >
 >
_______________________________________________
 > m5-dev mailing list

> m5-dev@m5sim.org [9] m5-dev@m5sim.org [10]>
 >
http://m5sim.org/mailman/listinfo/m5-dev [11]
 >


_______________________________________________
 m5-dev mailing list

m5-dev@m5sim.org [12] m5-dev@m5sim.org [13]>

http://m5sim.org/mailman/listinfo/m5-dev [14]


------------------------------------------------------------------------


_______________________________________________
 m5-dev mailing
list
m5-dev@m5sim.org [15]
http://m5sim.org/mailman/listinfo/m5-dev
[16]

 _______________________________________________
 m5-dev mailing
list
m5-dev@m5sim.org [17]
http://m5sim.org/mailman/listinfo/m5-dev
[18]

 _______________________________________________
 m5-dev mailing
list
m5-dev@m5sim.org [19]
http://m5sim.org/mailman/listinfo/m5-dev [20]
  

 

Links:
------
[1] mailto:sa...@umich.edu
[2]
mailto:gbl...@eecs.umich.edu
[3] mailto:ste...@gmail.com
[4]
mailto:gbl...@eecs.umich.edu
[5] mailto:gbl...@eecs.umich.edu
[6]
mailto:m5-dev@m5sim.org
[7] mailto:m5-dev@m5sim.org
[8]
http://m5sim.org/mailman/listinfo/m5-dev
[9]
mailto:m5-dev@m5sim.org
[10] mailto:m5-dev@m5sim.org
[11]
http://m5sim.org/mailman/listinfo/m5-dev
[12]
mailto:m5-dev@m5sim.org
[13] mailto:m5-dev@m5sim.org
[14]
http://m5sim.org/mailman/listinfo/m5-dev
[15]
mailto:m5-dev@m5sim.org
[16]
http://m5sim.org/mailman/listinfo/m5-dev
[17]
mailto:m5-dev@m5sim.org
[18]
http://m5sim.org/mailman/listinfo/m5-dev
[19]
mailto:m5-dev@m5sim.org
[20] http://m5sim.org/mailman/listinfo/m5-dev
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to