[Click] Multi-threaded Traffic Generation

Adam Greenhalgh a.greenhalgh at cs.ucl.ac.uk
Fri Feb 4 03:20:17 EST 2011


Our presto paper describes some of the issues you might see with multi
core systems.

http://conferences.sigcomm.org/co-next/2010/Workshops/PRESTO/PRESTO_papers/03-Egi.pdf

Adam

On 4 February 2011 04:15, Joonwoo Park <joonwpark81 at gmail.com> wrote:
> Roman,
>
> It's true.  But since Ashok said that your config which doesn't have
> MQToDevice() doesn't work either.
> So I'm under the impression that his click version is doing something wrong.
>
> p.s. I guess MQToDevice is from RouteBricks project
> (http://routebricks.org/code.html)
>
> Joonwoo
>
> On Thu, Feb 3, 2011 at 8:10 PM, Roman Chertov <rchertov at cs.ucsb.edu> wrote:
>> Joonwoo,
>>
>> It is also unclear how the MQToDevice works, and if it does schedule a pull
>> on every run_task.
>>
>> Roman
>>
>> On 02/03/2011 07:47 PM, Joonwoo Park wrote:
>>>
>>> Hi Ashok,
>>>
>>> Hmm..   It sounds to me the version you're using is doing something
>>> differently.  Only different between yours and Roman's is click
>>> version.  Isn't it?
>>>
>>> By a chance, do you never see two threads are hogging?
>>> We had issues on linuxmodule multithreading before, the symptom was
>>> after starting multiple threads if they race very competitively, most
>>> of them never be scheduled again in few seconds.
>>> However, it seems to me 1.7.0rc1 has fixes for that issue (i.e.
>>> 7312a95decddc7c4f5043d29d622dc9efb99a547)
>>>
>>> Can you also check if all threads are actually being scheduled?
>>>
>>> Regards,
>>> Joonwoo
>>>
>>> On Thu, Feb 3, 2011 at 6:20 PM, Ashok Anand<ashok at cs.wisc.edu>  wrote:
>>>>
>>>> No, we did not see two threads hogging with Roman's config also. So it
>>>> might
>>>> be some compilation configuration issue.
>>>>
>>>> We have some code dependency to the old version, so we were trying to
>>>> work
>>>> with this version only.
>>>>
>>>> On Thu, Feb 3, 2011 at 6:34 PM, Joonwoo Park<joonwpark81 at gmail.com>
>>>>  wrote:
>>>>>
>>>>> Do you see hogging two threads with Roman's config (without MQToDevice)?
>>>>>
>>>>> p.s If you don't have special reason to stick with old version, I'd
>>>>> like to suggest latest version from git tree.
>>>>>
>>>>> Joonwoo
>>>>>
>>>>> On Thu, Feb 3, 2011 at 4:18 PM, Ashok Anand<ashok.anand at gmail.com>
>>>>>  wrote:
>>>>>>
>>>>>> We are using the following version
>>>>>>
>>>>>> wget http://read.cs.ucla.edu/click/click-1.7.0rc1.tar.gz
>>>>>> with patch
>>>>>> patch -p1 -b<  /usr/src/click/etc/linux-2.6.24.7-patch
>>>>>>
>>>>>> and running it in kernel mode
>>>>>>
>>>>>> We used, ./configure --enable-linuxmodule --enable-warp9
>>>>>> --enable-multithread=8 --disable-userlevel
>>>>>> and command line for running click was
>>>>>> click-install -t 8 gen2.conf
>>>>>>
>>>>>>
>>>>>> On Tue, Feb 1, 2011 at 7:21 PM, Roman Chertov<rchertov at cs.ucsb.edu>
>>>>>> wrote:
>>>>>>
>>>>>>> On Tue, 1 Feb 2011 19:14:15 -0600 Ashok Anand<ashok.anand at gmail.com>
>>>>>>> wrote
>>>>>>>
>>>>>>>> yeah, it uses multiple tx queues for a single device.
>>>>>>>>
>>>>>>>> Strangely, we did not see two kclick hogging up with the following
>>>>>>>> click
>>>>>>>> conf as well..
>>>>>>>>
>>>>>>>> What was the click compilation options you used, apart from what we
>>>>>>>> had..
>>>>>>>
>>>>>>> $ ./configure --enable-ip6 --enable-analysis --enable-user-multithread
>>>>>>> --enable-task-heap --enable-experimental --enable-multithread=4
>>>>>>> --enable-fixincludes
>>>>>>>
>>>>>>> I pulled the source last week.
>>>>>>>
>>>>>>> Roman
>>>>>>>
>>>>>>>>
>>>>>>>> ./configure --enable-linuxmodule --enable-warp9
>>>>>>>>>>>
>>>>>>>>>>> --enable-multithread=8 --disable-userlevel
>>>>>>>>>>> and command line for running click was
>>>>>>>>
>>>>>>>> On Tue, Feb 1, 2011 at 6:50 PM, Roman Chertov<rchertov at cs.ucsb.edu>
>>>>>>>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I am not sure what your MQToDevice element does (i assume it uses
>>>>>>>
>>>>>>> multiple
>>>>>>>>>
>>>>>>>>> tx
>>>>>>>>> queues for a single device).
>>>>>>>>>
>>>>>>>>> However, with the script below
>>>>>>>>> pd0 :: InfiniteSource(DATA \<00 00 c0 ae 67 ef  00 00 00 00 00 00
>>>>>>>>>  08
>>>>>>>
>>>>>>> 00
>>>>>>>>>
>>>>>>>>>       45 00 00 28  00 00 00 00  40 11 77 c3  01 00 00 01
>>>>>>>>>       02 00 00 02  13 69 13 69  00 14 d6 41  55 44 50 20
>>>>>>>>>       70 61 63 6b  65 74 21 0a  04 00 00 00  01 00 00 00
>>>>>>>>>       01 00 00 00  00 00 00 00  00 80 04 08  00 80 04 08
>>>>>>>>>       53 53 00 00  53 53 00 00  05 00 00 00  00 10 00 00
>>>>>>>>>       01 00 00 00  54 53 00 00  54 e3 04 08  54 e3 04 08
>>>>>>>>>       d8 01 00 00>, LIMIT -1, STOP true)
>>>>>>>>>    ->  q1 :: CPUQueue(1000)
>>>>>>>>>     ->  uq0 :: Unqueue2
>>>>>>>>>    ->  Discard;
>>>>>>>>>
>>>>>>>>> StaticThreadSched(pd0 0, uq0 0);
>>>>>>>>>
>>>>>>>>> pd1 :: RandomSource(1400)
>>>>>>>>>    ->  q2 :: CPUQueue(1000)
>>>>>>>>>     ->  uq1 :: Unqueue2
>>>>>>>>>    ->  Discard;
>>>>>>>>>
>>>>>>>>> When I run top, I can see to kclick hogging up two CPUs.
>>>>>>>>>
>>>>>>>>> Roman
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Tue, 1 Feb 2011 18:38:19 -0600 "Nilay"<nilay at cs.wisc.edu>  wrote
>>>>>>>>>
>>>>>>>>>> gen2.conf looks like
>>>>>>>>>>
>>>>>>>>>> pd0 :: InfiniteSource(DATA \<00 00 c0 ae 67 ef  00 00 00 00 00 00
>>>>>>>>>>  08
>>>>>>>
>>>>>>> 00
>>>>>>>>>>
>>>>>>>>>> 45 00 00 28  00 00 00 00  40 11 77 c3  01 00 00 01
>>>>>>>>>> 02 00 00 02  13 69 13 69  00 14 d6 41  55 44 50 20
>>>>>>>>>> 70 61 63 6b  65 74 21 0a  04 00 00 00  01 00 00 00
>>>>>>>>>> 01 00 00 00  00 00 00 00  00 80 04 08  00 80 04 08
>>>>>>>>>> 53 53 00 00  53 53 00 00  05 00 00 00  00 10 00 00
>>>>>>>>>> 01 00 00 00  54 53 00 00  54 e3 04 08  54 e3 04 08
>>>>>>>>>> d8 01 00 00>, LIMIT -1, STOP true) ->
>>>>>>>>>> q1 :: CPUQueue(1000) ->
>>>>>>>>>> td0 :: MQToDevice(eth1, QUEUE 0, BURST 32);
>>>>>>>>>> StaticThreadSched(pd0 0, td0 0);
>>>>>>>>>>
>>>>>>>>>> pd1 :: RandomSource(1400) ->
>>>>>>>>>> q2 :: CPUQueue(1000) ->
>>>>>>>>>> td1 :: MQToDevice(eth1, QUEUE 1, BURST 32);
>>>>>>>>>> StaticThreadSched(pd1 1, td1 1);
>>>>>>>>>>
>>>>>>>>>> ~
>>>>>>>>>>
>>>>>>>>>> On Tue, February 1, 2011 6:34 pm, Roman Chertov wrote:
>>>>>>>>>>>
>>>>>>>>>>> On Tue, 1 Feb 2011 18:26:12 -0600 Ashok Anand<
>>>>>>>
>>>>>>> ashok.anand at gmail.com>
>>>>>>>>>>>
>>>>>>>>>>> wrote
>>>>>>>>>>>
>>>>>>>>>>>> We used, ./configure --enable-linuxmodule --enable-warp9
>>>>>>>>>>>> --enable-multithread=8 --disable-userlevel
>>>>>>>>>>>> and command line for running click was
>>>>>>>>>>>> click-install -t 8 gen2.conf
>>>>>>>>>>>
>>>>>>>>>>> And how does gen2.conf look like?
>>>>>>>>>>>
>>>>>>>>>>> Roman
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Thu, Jan 20, 2011 at 7:54 PM, Cliff Frey<cliff at meraki.com>
>>>>>>>
>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> what configuration params did you build click with, and what
>>>>>>>
>>>>>>> command
>>>>>>>>>>>>
>>>>>>>>>>>> line
>>>>>>>>>>>>>
>>>>>>>>>>>>> are you running click with?  (both involve flags to enable
>>>>>>>>>>>>
>>>>>>>>>>>> multithreading)
>>>>>>>>>>>>>
>>>>>>>>>>>>> Cliff
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Thu, Jan 20, 2011 at 5:34 PM, Nilay Vaish
>>>>>>>>>>>>> <nilay at cs.wisc.edu
>>>>>>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> I am trying to generate traffic using Click in its
>>>>>>>
>>>>>>> multi-threaded
>>>>>>>>>>>>
>>>>>>>>>>>> mode.
>>>>>>>>>>>>>
>>>>>>>>>>>>> The
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> configuration file looks like following :
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> pd0 :: InfiniteSource(DATA \<00 00 c0 ae 67 ef  00 00 00
>>>>>>>>>>>>>> 00 00
>>>>>>>
>>>>>>> 00
>>>>>>>>>>>>
>>>>>>>>>>>> 08 00
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 45 00 00 28  00 00 00 00  40 11 77 c3  01 00 00 01
>>>>>>>>>>>>>> 02 00 00 02  13 69 13 69  00 14 d6 41  55 44 50 20
>>>>>>>>>>>>>> 70 61 63 6b  65 74 21 0a  04 00 00 00  01 00 00 00
>>>>>>>>>>>>>> 01 00 00 00  00 00 00 00  00 80 04 08  00 80 04 08
>>>>>>>>>>>>>> 53 53 00 00  53 53 00 00  05 00 00 00  00 10 00 00
>>>>>>>>>>>>>> 01 00 00 00  54 53 00 00  54 e3 04 08  54 e3 04 08
>>>>>>>>>>>>>> d8 01 00 00>, LIMIT 600000, STOP true) ->
>>>>>>>>>>>>>> td0 :: MQToDevice(eth1, QUEUE 0, BURST 32);
>>>>>>>>>>>>>> StaticThreadSched(pd0 0, td0 0);
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> It actually eight such descriptions. The router starts
>>>>>>>>>>>>>> with
>>>>>>>
>>>>>>> this
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> configuraion,
>>>>>>>>>>>>>> but I see only when active thread when I use the 'top'
>>>>>>>
>>>>>>> utility.
>>>>>>>>>
>>>>>>>>> Any
>>>>>>>>>>>>
>>>>>>>>>>>> idea
>>>>>>>>>>>>>
>>>>>>>>>>>>> as
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> to
>>>>>>>>>>>>>> what could be the reason for this?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks
>>>>>>>>>>>>>> Nilay
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> 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
>>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> 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
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Nilay
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> 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
>



More information about the click mailing list