I definitely agree that putting a bus between the CPU and L1 and plugging
the table walker in there is the best way to figure out if this is really
the problem (and I expect it is).

I'm not sure if it's the long-term right answer or not.  We also need to
consider how this works with Ruby.

Steve

On Tue, Nov 23, 2010 at 3:29 AM, Gabe Black <gbl...@eecs.umich.edu> 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 <ste...@gmail.com>
> > 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 <gbl...@eecs.umich.edu
> >> <mailto:gbl...@eecs.umich.edu>> 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 <mailto:m5-dev@m5sim.org>
> >>     >> http://m5sim.org/mailman/listinfo/m5-dev
> >>     >>
> >>     >>
> >>     >
> >>     > _______________________________________________
> >>     > m5-dev mailing list
> >>     > m5-dev@m5sim.org <mailto:m5-dev@m5sim.org>
> >>     > http://m5sim.org/mailman/listinfo/m5-dev
> >>     >
> >>
> >>     _______________________________________________
> >>     m5-dev mailing list
> >>     m5-dev@m5sim.org <mailto:m5-dev@m5sim.org>
> >>     http://m5sim.org/mailman/listinfo/m5-dev
> >>
> >>
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > m5-dev mailing list
> > m5-dev@m5sim.org
> > http://m5sim.org/mailman/listinfo/m5-dev
> >
>
> _______________________________________________
> m5-dev mailing list
> m5-dev@m5sim.org
> 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