On Fri, Nov 9, 2012 at 4:00 PM, Saku Ytti <saku@ytti.fi> wrote:
For IOS-XE we have Linux in charge of the scheduler with a multi-threaded IOSd process responsible for the control plane. I'm
I'm sceptical if this means there isn't normal IOS run-to-completion scheduler, certainly not all ios processes are separate threads to linux kernel? But I guess this is moving target. Would be interesting to hear how many threads, what are threads relative priorities, what runs in each thread etc. But anyhow just to hear it is threaded, is good news. Does this mean, IOSd can capitalize on multiple cores? (Something JunOS cannot do today)
I do not believe that the linux scheduler is run to completion, but to be honest I'm not 100% certain. I know a big reason for IOS-XE was to be able to operate in multicore environments. From a high level you have IOSd as a process with each traditional process (BGP, OSPF, IP Input) as a thread within IOSd. Overall IOS-XE is Linux managing a few processes: IOSd, FMan-RP, CMan-RP (and a few others) FMan deals with adjacencies and CMan deals with modules/cards and IOSd all the interesting stuff. Since Linux is the piece actually running the show IOS-XE gets all the memory management and scheduling benefits that linux has.