[so2] [IXIA Challenge] Viteză mică de transfer la TX

Adrian Stanciu adrian.stanciu.pub at gmail.com
Sat Mar 25 06:50:31 EET 2017


2017-03-24 21:38 GMT+02:00 Iulian Matesica <iulian.matesica at gmail.com>:
> Salut Adrian,
>
> Mulțumesc pentru hint - nu încercasem cu un ring mai mic.
> Prin calibrarea parametrilor te referi la configurarea NIC-ului?

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?).

> Încă o întrebare, la ce se referă când mai primesc mesajul acesta în
dmesg?
>> NOHZ: local_softirq_pending 08

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?

>
> Pe 24 martie 2017, 21:20, Adrian Stanciu <adrian.stanciu.pub at gmail.com> a
scris:
>> 2017-03-24 17:37 GMT+02:00 Iulian Matesica via so2 <so2 at cursuri.cs.pub.ro
>:
>>> Salut,
>>>
>>> Întâlnesc o problemă la transmisie căreia nu îi găsesc o soluție.
>>> Am realizat atât partea de transmisie cât și partea de recepție, pot
>>> da ping dintr-o parte în alta, totul ok - comunicația funcționează
>>> (RTT de aproximativ 1ms).
>>>
>>> Problema este că am o viteză de transfer foarte mică când vreau să
>>> transmit din qemu ceva mai multe date (cum ar fi cei câțiva MB pe care
>>> îi transmite nttcp). În momentul când pornesc transmisia, tool-ul îmi
>>> dă impresia că se blochează, dar de fapt el transmite în continuu câte
>>> 1514 bytes (analizat cu wireshark). Pentru a termina transferul
>>> trebuie să aștept peste 10 minute. Am observat că într-o secundă îmi
>>> transmite in jur de 4-5 astfel de pachete de dimensiunea 1514 bytes.
>>>
>>> Este exclusă posibilitatea să trimit același pachet de mai multe ori
>>> la rând, am analizat cu wireshark pachetele consecutive.
>>>
>>> Recepția cu nttcp funcționează însă bine, problema de latență la TX nu
>>> pare să influențeze RX când trimite ACK-uri (poate pentru că pachetele
>>> au dimensiune mică).
>>>
>>> Care ar putea fi cauzele unei viteze de transmisie așa mică? Menționez
>>> că nu folosesc întreruperile pentru confirmarea trimiterii prin DMA
>>> către NIC, pentru fiecare frame.
>>>
>>
>> Salut,
>>
>> Am investigat ultima versiune submisă pe vmchecker. Reducând
>> dimensiunea ring-ului de Tx la 16 elemente, testul cu nttcp transmit
>> se termină în mai puțin de două secunde. Poți să continui tu
>> debugging-ul de aici (e posibil să fie o problemă de calibrare a
>> parametrilor)?
>>
>>

[1] http://lxr.free-electrons.com/source/kernel/time/tick-sched.c?v=4.9#L884
[2]
http://lxr.free-electrons.com/source/include/linux/interrupt.h?v=4.9#L440

Adrian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20170325/65ccea0e/attachment.html>


More information about the so2 mailing list