Whats so difficult about ISSU

Saku Ytti saku at ytti.fi
Sat Nov 10 13:17:49 UTC 2012


On (2012-11-10 10:43 +0200), Saku Ytti wrote:

> > > So each IOSd process 'show proc cpu' are separate threads to linux?
> > Yep. The "show platform software..." commands are used to look at things in
> 
> To be honest I'm very sceptical about this. I fully accept that IOSd is
> multithreaded. But I'm having difficulties accepting that each IOSd process
> would be own thread scheduled by Linux and that native/IOS
> run-to-completion scheduler isn't used at all. 

Someone who has ASR1004 just ran 'ps auxH' and it's running 3 threads. So
IOS XE control-plane is for most parts run-to-completion and relies on
classic IOS scheduler and memory-management.
I'm not saying this is inherently bad, it is least overhead way to do it,
but it also sets requirement for code quality unrealistically high.

I'm pretty sure it would be easier to start from scratch and loan IOS BGP,
ISIS, OSPF etc code to new project than to try to make IOS be pre-emptive
and SMP safe.
I'm also not saying IOS XE is bad, JunOS is same design and many consider
JunOS good design (I'm not one of them). I think XR and NX-OS are better,
more modern examples how to do things now, when we have some extra CPU time
in control-plane.

It would be interesting ti know what are the roles of these 3 threads. If
I'd have to guess, one is IOS control-plane, one is emulation of IOS
interrupts and one is abstraction for hardware forwarding. But this is
likely far off.

-- 
  ++ytti




More information about the NANOG mailing list