[Click] devirtualize for an embedded system

Eddie Kohler kohler at cs.ucla.edu
Mon Mar 10 11:05:09 EDT 2008


You are using devirtualized elements.

It looks like you need to do some profiling to figure out where the problem 
is.  There are a lot of your own elements in there.  In the user-level config, 
perhaps the CPU usage problem is due to the device elements not being smart or 
something -- you could see, for example, how often they are scheduled.

Good luck!
Eddie


Giovanni Di Stasi wrote:
> --- Eddie Kohler <ohler at cs.ucla.edu> ha scritto:
> 
>> Hi Giovanni,
>>
>> First off, I've changed Click to not check for
>> click-buildtool unless 
>> something really needs to be compiled.  The previous
>> code required buildtool 
>> even if nothing needed to be compiled.
>>
> ok!
> 
>> To see if your configuration was really using the
>> devirtualized elements, try 
>> something like
>>
>> click CLICKFILE -h flatconfig -q
>>
> This is the output of the output ot that command:
> 
> forwarder :: FCCAForwarder@@forwarder(IP
> 192.168.3.100,TIMER 60, FLOODER flooder, DEBUG no, 
> GESLINKS geslinks,  NUM_PACKETS 5);
> flooder :: FCCAFlooder(DEBUG no, GESLINKS geslinks);
> fccaCheckHeader ::
> FCCACheckHeader@@fccaCheckHeader(CHECKSUM false, DEBUG
> no);
> fccaencap :: FCCAEncap2@@fccaencap(MHC_COEFF 230,
> FLOODER flooder);
> stripHeader :: FCCAStripHeaderKer@@stripHeader;
> geslinks :: FCCAGesLinks(ath0 00:80:48:41:4F:4C, ath1
> 00:80:48:41:4F:74);
> host/toHost :: ToHost(fcca);
> host/FromHost at 2 :: FromHost@@host/FromHost at 2(fcca,
> 192.168.3.100/255.255.255.0, ETHER 22:22:22:22:22:22);
> host/fromhost_cl ::
> Classifier@@host/fromhost_cl(12/0806, 12/0800);
> host/FCCAArpResponder at 4 ::
> FCCAArpResponder@@host/FCCAArpResponder at 4(0.0.0.0/0
> 1:1:1:1:1:1);
> ath0/WifiEncap at 1 :: WifiEncap@@ath0/WifiEncap at 1(0,
> 11:11:11:11:11:11 );
> ath0/FullNoteQueue at 2 :: Queue(10);
> ath0/ToDevice at 3 :: ToDevice@@ath0/ToDevice at 3(ath0);
> ath0/FromDevice at 4 ::
> FromDevice@@ath0/FromDevice at 4(ath0);
> ath0/Paint at 5 :: Paint@@ath0/Paint at 5(0);
> ath0/FilterTX at 6 :: FilterTX@@ath0/FilterTX at 6;
> ath0/WifiDecap at 7 :: WifiDecap@@ath0/WifiDecap at 7;
> ath0/HostEtherFilter at 8 ::
> HostEtherFilter@@ath0/HostEtherFilter at 8(00:80:48:41:4F:4C,
> DROP_OTHER true, DROP_OWN false);
> ath1/WifiEncap at 1 :: WifiEncap@@ath0/WifiEncap at 1(0,
> 11:11:11:11:11:11 );
> ath1/FullNoteQueue at 2 :: Queue(10);
> ath1/ToDevice at 3 :: ToDevice@@ath0/ToDevice at 3(ath1);
> ath1/FromDevice at 4 ::
> FromDevice@@ath0/FromDevice at 4(ath1);
> ath1/Paint at 5 :: Paint@@ath0/Paint at 5(1);
> ath1/FilterTX at 6 :: FilterTX@@ath0/FilterTX at 6;
> ath1/WifiDecap at 7 :: WifiDecap@@ath0/WifiDecap at 7;
> ath1/HostEtherFilter at 8 ::
> HostEtherFilter@@ath0/HostEtherFilter at 8(00:80:48:41:4F:74,
> DROP_OTHER true, DROP_OWN false);
> 
> forwarder [2] -> ath1/WifiEncap at 1                     
>                                                       
>          
> 
> It seems that I'm using devirtualized elements, am I
> correct?
> 
>> It's been a long time since anyone has TESTED the
>> performance of devirtualized 
>> code.  I wouldn't be surprised if the
>> devirtualization transformation wasn't 
>> very important on embedded systems.
>>
> In fact the first tests I've done show the same
> performace in both cases (and the proc usage is near
> 100%). Any hints?
>  
> Click kernel module, without devirtualization, has a
> little better performaces, and the cpu is idle most of
> the time (in this case I don't understand why the
> processor is idle and throughput is low).
>  
> 
> 
> 
>       Inviato da Yahoo! Mail.
> La web mail più usata al mondo. http://it.docs.yahoo.com/mail/overview/index.html
> 
> _______________________________________________
> click mailing list
> click at amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click



More information about the click mailing list