[Click] Queue: overflow blocks click

Frederic Van Quickenborne frederic.vanquickenborne at intec.ugent.be
Fri Oct 15 05:17:44 EDT 2004


Eddie,

I tested a new configuration with one queue per output (the other queues 
are going to discard elements) and still the overflow occurs (in the queue1 
connected to the ToDevice and not in the other queues, however an equal 
amount of packets is sent to those queues). Once queue1 overflows, click 
blocks and not one packet gets out of queue1.

But I can see that the calls in the ToDevice to run_task() are still going 
up, without any result.

Frederic.

At 11:36 14/10/2004 -0700, you wrote:
>Frederic,
>
>What happens if you get rid of the PrioScheds?  Please try that and let us 
>know.  (That is, have one Queue per output device.)
>
>Eddie
>
>
>On Oct 14, 2004, at 9:26 AM, Frederic Van Quickenborne wrote:
>
>>Hi all,
>>
>>Im testing click, especially the PrioSchedulers and Queues in combination 
>>with the vlan-prio classes (CoS classes).
>>
>>This is the used config file: (I left out the EthernetSwitch elements 
>>because I thought that element could be the reason of my problem)
>>
>>PollDevice1 :: PollDevice(eth1,1);
>>PollDevice2 :: PollDevice(eth2,1);
>>ToHostSniffer1 :: ToHostSniffers(eth1); // used for GVRP support - not 
>>relevant
>>ToHostSniffer2 :: ToHostSniffers(eth2);
>>ToDevice1 :: ToDevice(eth1);
>>ToDevice2 :: ToDevice(eth2);
>>Classifier1 :: Classifier(0/0180C2000000,0/0180C2000020%111111111110, -); 
>>// used for GVRP support - not relevant
>>Classifier2 :: Classifier(0/0180C2000000,0/0180C2000020%111111111110, -);
>>w0 :: Queue();
>>w1 :: Queue();
>>in :: Suppressor();
>>out :: Suppressor();
>>Classifiereth1_prios :: Classifier(14/00%E0,14/20%E0,-);
>>Classifiereth2_prios :: Classifier(14/00%E0,14/20%E0,-);
>>qeth1_prio0 :: Queue();
>>qeth1_prio1 :: Queue();
>>qeth1_prio2 :: Queue();
>>qeth2_prio0 :: Queue();
>>qeth2_prio1 :: Queue();
>>qeth2_prio2 :: Queue();
>>PrioSchedeth1 :: PrioSched();
>>PrioSchedeth2 :: PrioSched();
>>PollDevice1[0] -> [0]Classifier1;
>>PollDevice2[0] -> [0]Classifier2;
>>Classifier1[0] -> [0]w0;
>>Classifier1[1] -> [0]ToHostSniffer1;
>>Classifier1[2] -> [0]in;
>>Classifier2[0] -> [0]w1;
>>Classifier2[1] -> [0]ToHostSniffer2;
>>Classifier2[2] -> [1]in;
>>w0[0] -> [0]PrioSchedeth1;
>>w1[0] -> [0]PrioSchedeth2;
>>in[0] -> [1]out;
>>in[1] -> [0]out;
>>out[0] -> [0]Classifiereth1_prios;
>>out[1] -> [0]Classifiereth2_prios;
>>Classifiereth1_prios[0] -> [0]qeth1_prio0;
>>Classifiereth1_prios[1] -> [0]qeth1_prio1;
>>Classifiereth1_prios[2] -> [0]qeth1_prio2;
>>Classifiereth2_prios[0] -> [0]qeth2_prio0;
>>Classifiereth2_prios[1] -> [0]qeth2_prio1;
>>Classifiereth2_prios[2] -> [0]qeth2_prio2;
>>qeth1_prio0[0] -> [1]PrioSchedeth1;
>>qeth1_prio1[0] -> [2]PrioSchedeth1;
>>qeth1_prio2[0] -> [3]PrioSchedeth1;
>>qeth2_prio0[0] -> [1]PrioSchedeth2;
>>qeth2_prio1[0] -> [2]PrioSchedeth2;
>>qeth2_prio2[0] -> [3]PrioSchedeth2;
>>PrioSchedeth1[0] -> [0]ToDevice1;
>>PrioSchedeth2[0] -> [0]ToDevice2;
>>
>>When I send a flow of about 70Mbit/s through this machine (from eth1 to 
>>eth2), several (due to the several CoS classes) queues overflows: (from syslog)
>>
>>Oct 14 18:08:53 nike7 kernel: chatter: qeth2_prio1 :: Queue: overflow
>>Oct 14 18:08:53 nike7 kernel: chatter: qeth2_prio2 :: Queue: overflow
>>Oct 14 18:08:53 nike7 kernel: chatter: qeth2_prio0 :: Queue: overflow
>>
>>And click blocks completely, I have to quit it and restart it (by 
>>removing the config file, rmmod click and back insmod click). When click 
>>blocks, I can see that the ToDevices don't pull any packet anymore.
>>
>>While quiting, I get the following in the syslog:
>>
>>Oct 14 18:09:25 nike7 kernel: device eth2 left promiscuous mode
>>Oct 14 18:09:25 nike7 kernel: device eth1 left promiscuous mode
>>Oct 14 18:09:25 nike7 kernel: click: stopping router thread pid 162
>>Oct 14 18:09:25 nike7 kernel: poll d0937540: 2947/1676447 freed, 
>>3040/1676354 allocated
>>Oct 14 18:09:25 nike7 kernel: click module exiting
>>Oct 14 18:09:30 nike7 kernel: NETDEV WATCHDOG: eth2: transmit timed out
>>
>>How can I prevent that an overflow blocks the system? Is this a bug or do 
>>I just have to make the queues bigger?
>>
>>(click used as a linuxmodule and using the tulip driver for the polldevices)
>>
>>Many regards,
>>Frederic.
>>
>>
>>==================================================================
>>Frederic Van Quickenborne
>>Department of Information Technology (INTEC)
>>Ghent University - IMEC
>>Sint-Pietersnieuwstraat 41, B-9000 Gent, Belgium
>>tel.: +32 (0)9-264 9957; tel. secr.: +32 (0)9-264 9970
>>fax: +32 (0)9-264 9960
>>Frederic.VanQuickenborne at intec.ugent.be
>>http://www.ibcn.intec.ugent.be
>>_______________________________________________
>>click mailing list
>>click at amsterdam.lcs.mit.edu
>>https://amsterdam.lcs.mit.edu/mailman/listinfo/click
>
>_______________________________________________
>click mailing list
>click at amsterdam.lcs.mit.edu
>https://amsterdam.lcs.mit.edu/mailman/listinfo/click

==================================================================
Frederic Van Quickenborne
Department of Information Technology (INTEC)
Ghent University - IMEC
Sint-Pietersnieuwstraat 41, B-9000 Gent, Belgium
tel.: +32 (0)9-264 9957; tel. secr.: +32 (0)9-264 9970
fax: +32 (0)9-264 9960
Frederic.VanQuickenborne at intec.ugent.be
http://www.ibcn.intec.ugent.be



More information about the click mailing list