Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 22 Mar 2014 07:20:01 -0600
From:      Ian Lepore <ian@FreeBSD.org>
To:        Wojciech Macek <wma@semihalf.com>
Cc:        freebsd-arm@FreeBSD.org
Subject:   Re: arm SMP on Cortex-A15
Message-ID:  <1395494401.81853.34.camel@revolution.hippie.lan>
In-Reply-To: <CANsEV8f-Cyte-TO%2BCfWVcC_zw5dkYJT8Qfi92eH7yrfhqBvgjg@mail.gmail.com>
References:  <CANsEV8euHTsfviiCMP_aet3qYiK2T-oK%2B-37eay7zAPH2S2vaA@mail.gmail.com> <20131220125638.GA5132@mail.bsdpad.com> <20131222092913.GA89153@mail.bsdpad.com> <CANsEV8fSoygoSUyQqKoEQ7tRxjqDOwrPD8dU7O2V2PXRj35j4A@mail.gmail.com> <20131222123636.GA61193@ci0.org> <CANsEV8fWvUkFHi8DP6Nr807RwPDB1iZrO39fpfa44qOkJPidZA@mail.gmail.com> <1395149146.1149.586.camel@revolution.hippie.lan> <1395254911.80941.9.camel@revolution.hippie.lan> <CANsEV8c047SNF61EgP6AiMR2oY=ofcMuTWYZnd60bRmp2Sk9HA@mail.gmail.com> <1395320561.80941.13.camel@revolution.hippie.lan> <CANsEV8f-Cyte-TO%2BCfWVcC_zw5dkYJT8Qfi92eH7yrfhqBvgjg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2014-03-21 at 07:20 +0100, Wojciech Macek wrote:
> No, changing flushD to flushID did not make any difference, but I think it
> should be there - D-only flushing might not be sufficient.
> 

Olivier reminded me right after I posted that: last week I made a change
to cpufunc.c that makes flushD and flushID the same.  So of course it
made no difference.  :)  It really should be flushID though, in case
that ever changes.

You didn't say whether you have that change, which was r263251.

> Currently, I'm running pmap_kernel_internal attached below. It is doing
> unconditional flushID at the end, just like the old comment was saying :)
> SMP seems to be stable.
> 

That seems to say that somehow there is a valid TLB entry even though
the old pte for that entry is zero.  That means there's a problem
somewhere else in the code, but I don't see it.  It looks to me like we
do a TLB flush everywhere that we zero out a pte.

You said without the unconditional flush it panics at startup.  Where in
startup?  Early, or after init is launched or what?  Where does the
panic backtrace to?

If we've got some other pte/tlb maintenance problem, I'd hate to hide it
with this unconditional flush and have it appear as some other problem
later that will be even harder to track down.

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1395494401.81853.34.camel>