[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