Le 08/10/15 18:46, Saku Ytti a écrit :
On 8 October 2015 at 18:45, Giuliano (WZTECH) <[email protected]> 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
_______________________________________________
juniper-nsp mailing list [email protected]
https://puck.nether.net/mailman/listinfo/juniper-nsp

Reply via email to