Glad to hear it works for you :) — Damjan
> On 16.12.2020., at 17:51, bjerem...@gmail.com wrote: > > In dispatch_node, before we call node->function any accumulated clock cycles > are counted toward idle, after the node->function returns if ( > (VLIB_NODE_TYPE_PRE_INPUT || VLIB_NODE_TYPE_INPUT) && number of packets > processed == 0) then we count it as idle, else we count it as busy. > > > From: Ramkumar B <ramukmar1...@gmail.com <mailto:ramukmar1...@gmail.com>> > Sent: Wednesday, December 16, 2020 10:27 AM > To: bjerem...@gmail.com <mailto:bjerem...@gmail.com> > Cc: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> > Subject: Re: [vpp-dev] Core Load Calculation > > The processing of the rx queue is counted toward IDLE > Please explain what kind of processing. We are not doing any such rx > processing separately. For us, the ring_dequeue_burst's cycles is negligible > compared to processing cycles. > > On Wed, Dec 16, 2020 at 8:54 PM <bjerem...@gmail.com > <mailto:bjerem...@gmail.com>> wrote: > Nope… the math works out… nothing goes to 0… we are incrementing both IDLE > and BUSY. The processing of the rx queue is counted toward IDLE… In a > completely idle system, the cpu usage falls to 0… as traffic ramps up it will > go further positive based on pps, and as it goes to idle again it will go > down to 0… > > > From: Damjan Marion <dmar...@me.com <mailto:dmar...@me.com>> > Sent: Wednesday, December 16, 2020 3:00 AM > To: bjerem...@gmail.com <mailto:bjerem...@gmail.com> > Cc: Nick Zavaritsky <nick.zavarit...@emnify.com > <mailto:nick.zavarit...@emnify.com>>; ramukmar1...@gmail.com > <mailto:ramukmar1...@gmail.com>; vpp-dev@lists.fd.io > <mailto:vpp-dev@lists.fd.io> > Subject: Re: [vpp-dev] Core Load Calculation > > > > > On 16.12.2020., at 05:45, bjerem...@gmail.com <mailto:bjerem...@gmail.com> > wrote: > > What we did was to count clock cycles (timestamps) spent processing the > nodes, call this busy, and count the clock cycles spent elsewhere, call this > idle. And then simply output (busy/(busy + idle). We did this per thread and > stored the calculations globally. We then outputted the calculations on the > ‘vppctl show thread’ cli. > > This doesnt make lot of sense. Each input node is spending cycles to process > rx queue, and out of that processing there may be zero or non-zero packets. > So in completelly idle system according to your math result will be far away > from 0. > > > > > This created a nice cpu usage metric that seems pretty accurate for io and > worker threads… > > What do you mean by io threads? > > > We compared this to something like htop for the worker threads and its within > ~1%, the io cores seem the same as we can see the usage go to about 80-90% > when we start dropping packets. We are able to calculate the approx. PPS for > a given system configuration. > > It actually wasn’t a lot of effort. I think only three files were touched. 1. > A new header file o create the global data structure to hold the clock cycle > counts and associated macros to init and update the structures. 2. > Vlib/main.c to instrument the main loop and collect the busy/idle clock > cycles 3. Vlib threads_cli.c as show threads fn was used to output the cpu > usage per thread. > > From: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> <vpp-dev@lists.fd.io > <mailto:vpp-dev@lists.fd.io>> On Behalf Of Nick Zavaritsky > Sent: Tuesday, December 15, 2020 1:38 PM > To: ramukmar1...@gmail.com <mailto:ramukmar1...@gmail.com> > Cc: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> > Subject: Re: [vpp-dev] Core Load Calculation > > We’ve been using flamegraphs quite successfully to see how much leeway is > there. > > Ex: > https://gist.githack.com/mejedi/d5d094df63faba66d413a677fcef26e3/raw/95294d36c4b180ba6741d793bf345041b00af48e/g.svg > > <https://gist.githack.com/mejedi/d5d094df63faba66d413a677fcef26e3/raw/95294d36c4b180ba6741d793bf345041b00af48e/g.svg> > > > On 15 Dec 2020, at 19:53, Ramkumar B via lists.fd.io <http://lists.fd.io/> > <ramukmar1998=gmail....@lists.fd.io > <mailto:ramukmar1998=gmail....@lists.fd.io>> wrote: > > Hello All, > > I'm trying to calculate VPP core's load. I completely understand about the > polling cores' 100% CPU usage. My requirement is different where I need to > calculate the core's load based on how much more PPS it can handle before a > packet drop occurs in the queue. > > The vec/call is a good indicator of load, but it does not increase linearly > with PPS. This is because of the VPP's self balancing behaviour where the > cost per packet reduces as load increases. It would be a great help if anyone > can point out factors to calculate load. > > Thanks and regards, > Ramkumar Balu > > > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#18373): https://lists.fd.io/g/vpp-dev/message/18373 Mute This Topic: https://lists.fd.io/mt/78980301/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-