<p dir="ltr"><br>
2017-03-24 21:38 GMT+02:00 Iulian Matesica <<a href="mailto:iulian.matesica@gmail.com">iulian.matesica@gmail.com</a>>:<br>
> Salut Adrian,<br>
><br>
> Mulțumesc pentru hint - nu încercasem cu un ring mai mic.<br>
> Prin calibrarea parametrilor te referi la configurarea NIC-ului?</p>
<p dir="ltr">Dimensiunea ring-urilor și a elementelor componente. Să vezi pentru ce dimensiune ai cea mai mare viteză, să vezi de ce alocarea mai multor resurse nu ajută (locking-ul are un impact mai mare?).</p>
<p dir="ltr">> Încă o întrebare, la ce se referă când mai primesc mesajul acesta în dmesg?<br>
>> NOHZ: local_softirq_pending 08</p>
<p dir="ltr">Warning-ul e aruncat din [1]. softirq 08 este NET_RX_SOFTIRQ [2]. Din ce înțeleg procesorul este idle deși ar putea să trateze întreruperea pentru Rx. Faci ack întreruperii pe device?</p>
<p dir="ltr">><br>
> Pe 24 martie 2017, 21:20, Adrian Stanciu <<a href="mailto:adrian.stanciu.pub@gmail.com">adrian.stanciu.pub@gmail.com</a>> a scris:<br>
>> 2017-03-24 17:37 GMT+02:00 Iulian Matesica via so2 <<a href="mailto:so2@cursuri.cs.pub.ro">so2@cursuri.cs.pub.ro</a>>:<br>
>>> Salut,<br>
>>><br>
>>> Întâlnesc o problemă la transmisie căreia nu îi găsesc o soluție.<br>
>>> Am realizat atât partea de transmisie cât și partea de recepție, pot<br>
>>> da ping dintr-o parte în alta, totul ok - comunicația funcționează<br>
>>> (RTT de aproximativ 1ms).<br>
>>><br>
>>> Problema este că am o viteză de transfer foarte mică când vreau să<br>
>>> transmit din qemu ceva mai multe date (cum ar fi cei câțiva MB pe care<br>
>>> îi transmite nttcp). În momentul când pornesc transmisia, tool-ul îmi<br>
>>> dă impresia că se blochează, dar de fapt el transmite în continuu câte<br>
>>> 1514 bytes (analizat cu wireshark). Pentru a termina transferul<br>
>>> trebuie să aștept peste 10 minute. Am observat că într-o secundă îmi<br>
>>> transmite in jur de 4-5 astfel de pachete de dimensiunea 1514 bytes.<br>
>>><br>
>>> Este exclusă posibilitatea să trimit același pachet de mai multe ori<br>
>>> la rând, am analizat cu wireshark pachetele consecutive.<br>
>>><br>
>>> Recepția cu nttcp funcționează însă bine, problema de latență la TX nu<br>
>>> pare să influențeze RX când trimite ACK-uri (poate pentru că pachetele<br>
>>> au dimensiune mică).<br>
>>><br>
>>> Care ar putea fi cauzele unei viteze de transmisie așa mică? Menționez<br>
>>> că nu folosesc întreruperile pentru confirmarea trimiterii prin DMA<br>
>>> către NIC, pentru fiecare frame.<br>
>>><br>
>><br>
>> Salut,<br>
>><br>
>> Am investigat ultima versiune submisă pe vmchecker. Reducând<br>
>> dimensiunea ring-ului de Tx la 16 elemente, testul cu nttcp transmit<br>
>> se termină în mai puțin de două secunde. Poți să continui tu<br>
>> debugging-ul de aici (e posibil să fie o problemă de calibrare a<br>
>> parametrilor)?<br>
>><br>
>></p>
<p dir="ltr">[1] <a href="http://lxr.free-electrons.com/source/kernel/time/tick-sched.c?v=4.9#L884">http://lxr.free-electrons.com/source/kernel/time/tick-sched.c?v=4.9#L884</a><br>
[2] <a href="http://lxr.free-electrons.com/source/include/linux/interrupt.h?v=4.9#L440">http://lxr.free-electrons.com/source/include/linux/interrupt.h?v=4.9#L440</a></p>
<p dir="ltr">Adrian</p>