Port-mips archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Anyone working on Octeon SMP?
On 06/04/2026 10:49, Kevin Bowling wrote:
> On Sat, Mar 28, 2026 at 8:28 AM Andrew Parker <andrew%pmk1.net@localhost> wrote:
>>
>> On Thursday, 19 March 2026 23:31:36 EDT Kevin Bowling wrote:
>>> On Sun, Feb 2, 2025 at 6:52 AM Andrew Parker <andrew%pmk1.net@localhost> wrote:
>>>> On 1/29/25 06:23, Nick Hudson wrote:
>>>>> On 20/12/2024 22:01, Andrew Parker wrote:
>>>>>> Hi, I've been working towards getting a MULTIPROCESSOR build more
>>>>>> stable
>>>>>> on my ER4 and would like to know if anyone else may be working on the
>>>>>> same?
>>>>>>
>>>>>> I've found a few areas that were causing instability on my machine and
>>>>>> have some patches that help (but mostly just for debugging at this
>>>>>> point). If there's any interest in teaming up and exchanging ideas or
>>>>>> patches for SMP on Octeon please let me know.
>>>>>
>>>>> Sure.
>>>>>
>>>>> I've dropped the ball on this and said I had a couple of fixes in mind,
>>>>> but done nothing to share them. Hopefully we can make it stable.
>>>>>
>>>>> Nick
>>>>
>>>> Great! I'm curious about what you have in mind for improvement. I've
>>>> mostly been looking around TLB invalidation and perhaps a missing memory
>>>> barrier.
>>>>
>>>> Anyway, I'll work on getting some stuff cleaned up and contact directly
>>>> if that works for you.
>>>
>>> I'm interested in this as well, is there anything to share around
>>> current status or issues as well as if anything is pending out of
>>> tree?
>>
>> I hoped to spend more time on this over the winter but ended up moving and
>> some of my networking gear is still packed up.
>>
>> It's been a slow process getting my test environment setup again but it would
>> be great to pick this back up...especially if there's continued interest in
>> it.
>>
>> Give me a week or two to see what I can dig up and I'll be in touch.
> I've made some progress but it turned into a much deeper hole than I
> was anticipating. I can increase SMP stability with some changes in
> pmap_tlb.c to add some icache syncs
I have a change I'll commit soon to handle EXECness (more) correctly.
Am I right in thinking at least some octeon processors icaches are VIVT?
I've forgotten most of the mips stuff I knew... If so there will be more flushing
required for VIVT.
> and guarding around an assert that
> is easy to trigger
> @@ -735,7 +767,9 @@ pmap_tlb_shootdown_bystanders(pmap_t pm)
> * And best of all, we avoid an IPI.
> */
> KASSERT(!kernel_p);
> - pmap_tlb_pai_reset(ti, pai, pm);
> + if (pai->pai_asid > KERNEL_PID) {
> + pmap_tlb_pai_reset(ti, pai, pm);
> + }
you mean this KASSERT in pmap_tlb_pai_reset?
252 /*
253 * We must have an ASID but it must not be onproc (on a processor).
254 */
255 KASSERT(pai->pai_asid > KERNEL_PID);
> I think there are a variety of pmap changes needed. But I wonder if
> any MIPS SMP or other PMAP_TLB_NEED_SHOOTDOWN has been heavily
> exercised?
Almost certainly not.
> IPI and TLB stuff is probably "simpler" on ARM. On
> FreeBSD (13), OpenBSD, Linux the MIPS TLB shootdowns are synchronous.
No other NetBSD architecture (not sure of powerpc booke status actually) uses
the PMAP_TLB_NEED_SHOOTDOWN stuff.
I'm about to switch aarch64 to sys/uvm/pmap which uses architecture defined
broadcast TLB operations. RISC-V uses SBI remote fence operations.
> My test is iperf3 -P4 --bidir against the ER4 (4 cores). With my
> current changes I can get it to run about 900 seconds, where before it
> often would die in a few or a dozen seconds. I'm having trouble
> catching the ultimate source of the instability, whether it is TLB or
> something else.
I always use kernel build as my test fwiw.
Nick
Home |
Main Index |
Thread Index |
Old Index