[j-nsp] Multi Core on JUNOS?

Raphael Mazelier raph at futomaki.net
Fri Oct 9 07:12:58 EDT 2015



Le 08/10/15 18:46, Saku Ytti a écrit :
> On 8 October 2015 at 18:45, Giuliano (WZTECH) <giuliano at wztech.com.br> wrote:
>

> It's the step#1, they can get the underlaying OS to support SMP.
>

> But rpd is still 100% flat, run-to-completion. You can almost think of
> FreeBSD as hypervisor and rpd as virtual pc on top of it, it has own
> scheduler, memory management etc.
> IOS-XE is almost same architecture, Linux with flat ios as process.
> Otoh iosd is already slightly distributed and runs like 5 threads (but
> no meaningful routing work is distributed).
>
> Easy step#2 would be to give rpd affinity to push it on its own dedicated core.

I think we are close to this step.

>
> Hard step#3 is to make rpd use multiple cores. JNPR seems to choose to
> DIY inside rpd and just launch threads. I personally would like to see
> rpd distributed to multiple OS processes, and capitalise more on
> FreeBSD's memory management and scheduling. But I'm not sure how to
> handle the IPC efficiently without large cost in data duplications
> across processes.
>

In my opinion rpd should also be split in several process. I know there 
was a lot of interprocess communication/synchonisation, but this can be 
rethink. For example arista propose a central/fast db called sysdb to 
handle communication/sync to other process (see : 
https://www.arista.com/assets/data/pdf/EOSWhitepaper.pdf for detail). I 
don't know if was a good/viable approach, but on the paper it seems 
promising.


-- 
Raphael Mazelier


More information about the juniper-nsp mailing list