[P4] Slides
Péter Vörös
vopraai at caesar.elte.hu
Thu Jan 7 11:36:38 CET 2016
Sziasztok!
Megcsináltam a profilozást.
35.04% example_dpdk1 [.] crc32
13.13% example_dpdk1 [.] rx_recv_pkts
10.93% example_dpdk1 [.] packet_received
9.55% example_dpdk1 [.] rte_hash_lookup
8.96% example_dpdk1 [.] ixgbe_xmit_pkts_vec
7.96% example_dpdk1 [.] apply_table_smac
------CRC------
│ static uint32_t crc32(const void *data, uint32_t
data_len, uint32_t init_val) {
0.46 │ push %rbp
│ static inline uint32_t
│ rte_hash_crc(const void *data, uint32_t data_len,
uint32_t init_val)
│ {
│ unsigned i;
│ uint64_t temp = 0;
│ uintptr_t pd = (uintptr_t) data;
0.22 │ mov %rdi,%rax
│
│ for (i = 0; i < data_len / 8; i++) {
35.90 │ shr $0x3,%ecx
0.07 │ push %rbx
54.08 │ ┌──je 4e
│ │ movzbl crc32_alg,%eax
│ │ if (likely(crc32_alg == CRC32_SSE42_x64))
│ │ return crc32c_sse42_u64(data, init_val);
│ │#endif
│ │
│ │#if defined RTE_ARCH_I686 || defined RTE_ARCH_X86_64
--------packet_recieved--------
1.58 │ → callq handle_packet
│ mov 0x70(%rsp),%rax
1.67 │ mov 0xb0(%rsp),%rbx
│
│ /* Enqueue a single packet, and send burst if queue is filled */
│ static inline int
│ send_packet(packet_descriptor_t* pd)
│ {
│ int port = EXTRACT_EGRESSPORT(pd);
0.00 │ mov 0x6(%rax),%edi
23.73 │ mov %rbx,0x10(%rsp)
│ * Logical core ID (in EAL thread) or LCORE_ID_ANY (in
non-EAL thread)
│ */
│ static inline unsigned
│ rte_lcore_id(void)
│ {
│ return RTE_PER_LCORE(_lcore_id);
│ mov _DYNAMIC+0x228,%rbx
│ int inport = EXTRACT_INGRESSPORT(pd);
│ mov (%rax),%eax
│
│ /* Enqueue a single packet, and send burst if queue is filled */
│ static inline int
│ send_packet(packet_descriptor_t* pd)
│ {
│ int port = EXTRACT_EGRESSPORT(pd);
--------apply_table_smac------
│ EXTRACT_BYTEBUF(pd, field_instance_ethernet_srcAddr,
key)// sugar at 38
2.29 │ mov 0x28(%rdi),%rax
│ void apply_table_smac(packet_descriptor_t* pd,
lookup_table_t** tables)// sugar at 48
│ {// sugar at 49
│ //printf(" :::: EXECUTING TABLE smac\n");// sugar at 50
│ uint8_t* key[6];// sugar at 51
│ table_smac_key(pd, (uint8_t*)key);// sugar at 52
│ struct smac_action* res = (struct
smac_action*)exact_lookup(tables[TABLE_smac], (uint8_t*)key);//
sugar at 53
0.09 │ mov 0x0(%rbp),%rdi
│ mov %rsp,%rsi
│
│ __fortify_function void *
│ __NTH (memcpy (void *__restrict __dest, const void
*__restrict __src,
│ size_t __len))
│ {
│ return __builtin___memcpy_chk (__dest, __src, __len,
__bos0 (__dest));
0.04 │ mov 0x6(%rax),%edx
70.07 │ mov %edx,(%rsp)
2.48 │ movzwl 0xa(%rax),%eax
0.01 │ mov %ax,0x4(%rsp)
2.39 │ → callq exact_lookup
│ mov %rax,%r12
│ if(res == NULL) {// sugar at 54
0.20 │ test %rax,%rax
│ ↓ je 90
│ //printf(" :: NO RESULT, NO DEFAULT ACTION,
IGNORING PACKET...\n");// sugar at 55
│ return;// sugar at 56
│ }// sugar at 57
│ switch (res->action_id) {// sugar at 58
│ mov (%rax),%edx
2.40 │ test %edx,%edx
Üdv:
Peti
Péter Vörös <vopraai at caesar.elte.hu> írta (2016. január 6. 19:40):
> Szia,
>
> Amikor egyszer beszéltünk az SSE-ről egy Ericssonos meetingen, akkor
> direktbe beleírtam a kórba hogy használja (bár a doksi szerint ez a
> default), úgy emlékszem, hogy ettől nem lettünk gyorsabbak.
> Holnap újrafuttatom a profilozást, és megírom, hogy jelenleg mi ami
> lassú. Igen, mindenképp át kéne vinni a trunk-ba, én is arra vártam a
> dologgal, hogy átbeszéljük a változtatásaimat egy meetingen.
>
> Érdekes, én azt hittem bps-nél is csak azért használjuk néha az
> 1000-ret, hogy könnyebb legyen számolni. Na mindegy :)
>
> Üdv,
> Peti
>
> Sandor Laki <lakis at elte.hu> írta (2016. január 6. 19:30):
>> Szia,
>>
>> Ok, akkor megvan a különbség. bps-nél 1000 a váltószám, nem 1024!
>>
>> Üdv.
>> Sanyi
>>
>>
>> 2016.01.06. 19:20 keltezéssel, Péter Vörös írta:
>>>
>>> Szia,
>>>
>>> A tool a sebességet írta ki, a csomag/s-eket kézzel számoltam át.
>>> 3.5Gbps*1024*1024*1024/8 = 469762048 B/s
>>> 469762048/64 = 7340032 csomag/s
>>>
>>> Ez alapján a 256B-nál 5242880 csomag/s jön ki nekem.
>>> Mit számolok rosszul?
>>>
>>> Üdv:
>>> Peti
>>>
>>> Sandor Laki <lakis at elte.hu> írta (2016. január 6. 19:14):
>>>>
>>>> Szia Péter,
>>>>
>>>> ezeket a számok kézzel számoltad, vagy ezt írta ki mérő tool?
>>>>
>>>> 256B-nél mi volt a csomag/sec?
>>>>
>>>> Ha a csomagméret alapján átszámolom, akkor nekem magasabb ráták jönnek
>>>> ki,
>>>> kb. 0.2-0.6 Gbps-mal...
>>>> Üdv.
>>>> Sanyi
>>>>
>>>>
>>>>
>>>> 2015.12.29. 15:21 keltezéssel, Péter Vörös írta:
>>>>>
>>>>> Sziasztok,
>>>>>
>>>>> Visszajöttem Pestre és futtattam pár mérést:
>>>>> 64B nál - 3.5Gbps -- 7340032 csomag/s
>>>>> 128B-nál - 6.5Gbps -- 6815744 csomag/s
>>>>> 192B-nél - 8.3Gbps -- 5802120 csomag/s
>>>>> 256B-nál - Kimaxolja a 10Gbps-t ami a kártya teljesítménye
>>>>>
>>>>> Az SSL-ről nem találtam semmit a csomaggenerátor helpjében, és most
>>>>> nagyon kihalt az Ericsson szóval valószínű ezt csak januárban tudom
>>>>> kinyomozni.
>>>>>
>>>>> Peti
>>>>>
>>>>> Tejfel Máté <matej at caesar.elte.hu> írta (2015. december 21. 18:16):
>>>>>>
>>>>>> Sziasztok!
>>>>>>
>>>>>> Megkértem Leskó Danit, hogy írja át a "Danikat" is tanársegéddé és
>>>>>> elküldtem én is a diákat Pongrácz Gergőék felé...
>>>>>>
>>>>>> Köszi
>>>>>>
>>>>>> M.
>>>>>>
>>>>>>
>>>>>> 2015-12-20 22:30 keltezéssel, Sandor Laki írta:
>>>>>>>
>>>>>>> Hali,
>>>>>>>
>>>>>>> Frissítettem a slideokat! Fent van SVN-en.
>>>>>>>
>>>>>>> Holnap átküldöm a CNL-es belső kontaktunknak. Próbálok információkat
>>>>>>> is
>>>>>>> szerezni tőle a jövő évre vonatkozóan.
>>>>>>>
>>>>>>> Üdv.
>>>>>>> Sanyi
>>>>>>>
>>>>>>> 2015.12.19. 22:17 keltezéssel, Péter Vörös írta:
>>>>>>>>
>>>>>>>> Valamiért a Kb rémlett, de tényleg tutira hülyeség. Biztosan Byte-ról
>>>>>>>> van
>>>>>>>> szó.
>>>>>>>>
>>>>>>>> Sandor Laki <lakis at elte.hu> írta (2015. december 19. 18:02):
>>>>>>>>>
>>>>>>>>> Szia,
>>>>>>>>>
>>>>>>>>> Az a 64KB-os csomag inkább csak 64 Byte (ez a minimális Ethernet
>>>>>>>>> keretméret). Jumbo csomag max. mérete is messze a 64 KB alatt van
>>>>>>>>> (max.
>>>>>>>>> 9038
>>>>>>>>> Byte). Továbbá ha csak 7000 csomag/mp-et tudnánk az rég rossz lenne.
>>>>>>>>> Ennyit
>>>>>>>>> DPDK nélkül is tudni kellene.
>>>>>>>>>
>>>>>>>>> Ha feltehetjük, hogy 64 Byte-os csomagokat küldtél, akkor a 3.5
>>>>>>>>> Gbps-ból
>>>>>>>>> 6835937 csomag/mp jön ki, ami már egy sokkal szebb és a valós
>>>>>>>>> követelményekhez közeli szám.
>>>>>>>>>
>>>>>>>>> Üdv.
>>>>>>>>> Sanyi
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2015.12.19. 13:42 keltezéssel, Péter Vörös írta:
>>>>>>>>>>
>>>>>>>>>> Sziasztok!
>>>>>>>>>>
>>>>>>>>>> A helyzet az, hogy éppen tegnap utaztam haza Bajára, és csak 28.-án
>>>>>>>>>> megyek vissza, a céges gépet pedig nem hoztam haza, úgyhogy addig
>>>>>>>>>> sajnos nem tudok méréseket futtatni. Remélem nem gáz, csak úgy
>>>>>>>>>> emlékeztem, hogy elég január elején eladni a diákat.
>>>>>>>>>> Szerintem egyelőre ezt a részt hagyjatok ki és majd ha felmegyek
>>>>>>>>>> megcsinálom a hiányzó részt.
>>>>>>>>>>
>>>>>>>>>> Amit jelenleg tudok hogy 64KB-os csomagokat küldtem, ezekkel volt
>>>>>>>>>> 3.5Gbps a sebesség, ha jól számolom akkor ez 7168 csomag/sec.
>>>>>>>>>>
>>>>>>>>>> Peti
>>>>>>>>>>
>>>>>>>>>> Sandor Laki <lakis at elte.hu> írta (2015. december 18. 13:50):
>>>>>>>>>>>
>>>>>>>>>>> Sziasztok,
>>>>>>>>>>>
>>>>>>>>>>> Épp a slideok véglegesítésén dolgozom. A performancia futtatásról
>>>>>>>>>>> Molák
>>>>>>>>>>> kértek még adatot: a 3.5 Gbps mellett hány csomag/sec, mekkora
>>>>>>>>>>> mérettel,
>>>>>>>>>>> stb. Hogyan változik ez a méret variálásával? Továbbá SSL
>>>>>>>>>>> supporttal
>>>>>>>>>>> mit
>>>>>>>>>>> kapunk...
>>>>>>>>>>>
>>>>>>>>>>> Péter ezekről tudsz küldeni valamit?
>>>>>>>>>>>
>>>>>>>>>>> Üdv.
>>>>>>>>>>> Sanyi
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Sándor Laki, PhD
>>>>>>>>>>> Assistant professor
>>>>>>>>>>> Department of Information Systems
>>>>>>>>>>> Eötvös Loránd University
>>>>>>>>>>> Pázmány Péter stny. 1/C
>>>>>>>>>>> H-1117, Budapest, Hungary
>>>>>>>>>>> Room 2.506
>>>>>>>>>>> Web: http://lakis.web.elte.hu
>>>>>>>>>>> Phone: +36 1 372 2869 / 8477
>>>>>>>>>>> Cell: +36 70 374 2646
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> P4 mailing list
>>>>>>>>>>> P4 at plc.inf.elte.hu
>>>>>>>>>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> P4 mailing list
>>>>>>>>>> P4 at plc.inf.elte.hu
>>>>>>>>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Sándor Laki, PhD
>>>>>>>>> Assistant professor
>>>>>>>>> Department of Information Systems
>>>>>>>>> Eötvös Loránd University
>>>>>>>>> Pázmány Péter stny. 1/C
>>>>>>>>> H-1117, Budapest, Hungary
>>>>>>>>> Room 2.506
>>>>>>>>> Web: http://lakis.web.elte.hu
>>>>>>>>> Phone: +36 1 372 2869 / 8477
>>>>>>>>> Cell: +36 70 374 2646
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> P4 mailing list
>>>>>>>>> P4 at plc.inf.elte.hu
>>>>>>>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> P4 mailing list
>>>>>>>> P4 at plc.inf.elte.hu
>>>>>>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> _______________________________________________
>>>>>> P4 mailing list
>>>>>> P4 at plc.inf.elte.hu
>>>>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>>>>
>>>>> _______________________________________________
>>>>> P4 mailing list
>>>>> P4 at plc.inf.elte.hu
>>>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>>>
>>>>
>>>>
>>>> --
>>>> Sándor Laki, PhD
>>>> Assistant professor
>>>> Department of Information Systems
>>>> Eötvös Loránd University
>>>> Pázmány Péter stny. 1/C
>>>> H-1117, Budapest, Hungary
>>>> Room 2.506
>>>> Web: http://lakis.web.elte.hu
>>>> Phone: +36 1 372 2869 / 8477
>>>> Cell: +36 70 374 2646
>>>>
>>>> _______________________________________________
>>>> P4 mailing list
>>>> P4 at plc.inf.elte.hu
>>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>>
>>> _______________________________________________
>>> P4 mailing list
>>> P4 at plc.inf.elte.hu
>>> https://plc.inf.elte.hu/mailman/listinfo/p4
>>
>>
>>
>> --
>> Sándor Laki, PhD
>> Assistant professor
>> Department of Information Systems
>> Eötvös Loránd University
>> Pázmány Péter stny. 1/C
>> H-1117, Budapest, Hungary
>> Room 2.506
>> Web: http://lakis.web.elte.hu
>> Phone: +36 1 372 2869 / 8477
>> Cell: +36 70 374 2646
>>
>> _______________________________________________
>> P4 mailing list
>> P4 at plc.inf.elte.hu
>> https://plc.inf.elte.hu/mailman/listinfo/p4
More information about the P4
mailing list