Thanks!  I've deprecated Unqueue2; it will be removed in a later version.

E


On 6/23/11 7:51 PM, R H wrote:
> Either way works for me.
>
> Thanks,
> Raja
>
>
> ________________________________
> From: Eddie Kohler<koh...@cs.ucla.edu>
> To: R H<rajamha...@yahoo.com>
> Cc: "cl...@pdos.csail.mit.edu"<click@amsterdam.lcs.mit.edu>
> Sent: Thursday, June 23, 2011 7:15 PM
> Subject: Re: [Click] click 1.8.0 Unqueue2 ->  100% CPU usage
>
> BTW, I checked in a change that should make Unqueue2 listen to notifiers --
> but I still think it might be better to just remove Unqueue2 altogether.
>
> Eddie
>
>
> On 06/23/2011 07:11 PM, R H wrote:
>> Hi Lars,
>>
>> The same script works fine when replacing Unqueue2 with Unqueue without 
>> changing the InfiniteSource configurations.  So I don't think it is a timer 
>> issue.  As Beyers pointed out and looking at the source code, Unqueue2 does 
>> not listen to queue empty signals sent from the NotifierQueue and keeps 
>> checking for packets.
>>
>> Regards,
>> Raja
>>
>>
>> ________________________________
>> From: Lars Bro<lars...@gmail.com>
>> To: R H<rajamha...@yahoo.com>
>> Cc: cl...@pdos.csail.mit.edu
>> Sent: Thursday, June 23, 2011 1:51 AM
>> Subject: Re: [Click] click 1.8.0 Unqueue2 ->   100% CPU usage
>>
>> Hello, Raja
>>
>> I think, this is because of the way Click timers work. A Click timer
>> is *very* precise, and this is achieved by so to say "spinning on
>> gettimeofday()" For example, if You want to sleep 753.332 milisecond,
>> it wil sleep normally for the first 750 miliseconds, and then
>> busy-wait on the timer for the last three miliseconds. I dont know the
>> threshold, but you are requesting something to take place every
>> 1000/75 = 13 miliseconds, which may mean that the process is
>> busy-waiting all the time, using all of the CPU. You can try changing
>> the 75 to below 50, I guess the limit is 20 msec.
>>
>> You must remember that all other timers in Click are still just as
>> precise, so the only effect is that the Click process uses CPU. Click
>> itself does fine. You must also remember that the time-sharing
>> scheduler on your system will soon find out that the Click process can
>> easily be scheduled out in favor of other user processes.
>>
>> You can try to do the same when a heavy compilation is also running on
>> that processor, and then watch the accuracy of the Click process. You
>> should come to the result that even when compiling, the Click process
>> is very accurate.
>>
>> yours,
>> Lars Bro
>>
>>
>> On Thu, Jun 23, 2011 at 2:41 AM, R H<rajamha...@yahoo.com>   wrote:
>>> Hi,
>>>
>>> Using the following sample configuration, I get 100% CPU usage even after 
>>> the InfiniteSource finishes sending the 100 packets; but if I replace 
>>> Unqueue2 with Unqueue everything works well.  Looked at the documentation 
>>> and they both default to pulling 1 packet when scheduled until there is 
>>> nothing to pull.  What am I missing?
>>>
>>> s :: InfiniteSource(\<0800>, RATE 75, LIMIT 100, STOP false); //random 
>>> numbers as long as it does not stop!
>>>
>>> q :: NotifierQueue(200);
>>> uq :: Unqueue2();
>>> p :: Print();
>>>
>>> d :: Discard;
>>>
>>> s->q->uq->p->d;
>>>
>>> Thanks,
>>> Raja
>>> _______________________________________________
>>> click mailing list
>>> click@amsterdam.lcs.mit.edu
>>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>>>
>> _______________________________________________
>> click mailing list
>> click@amsterdam.lcs.mit.edu
>> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
> _______________________________________________
> click mailing list
> click@amsterdam.lcs.mit.edu
> https://amsterdam.lcs.mit.edu/mailman/listinfo/click
_______________________________________________
click mailing list
click@amsterdam.lcs.mit.edu
https://amsterdam.lcs.mit.edu/mailman/listinfo/click

Reply via email to