[so2] [IXIA Challange] Initializare transfer

Călin Cruceru crucerucalincristian at gmail.com
Fri Mar 24 14:06:43 EET 2017


2017-03-24 13:58 GMT+02:00 Călin Cruceru <crucerucalincristian at gmail.com>:
> Salut,
>
> 2017-03-19 14:38 GMT+02:00 Stefan Alexandru Aldoiu via so2
> <so2 at cursuri.cs.pub.ro>:
>> Salut,
>>
>> Am probleme cu intializarea CU-ului, si anume reusesc sa il pornesc(intrucat
>> CU-status devine Active-lpq) dar nu resesc sa transmit nici un pachet.
>>
>> Fazele de initializare abordate:
>> (Dupa ce am intializat netdevice,am  alocat csr in spatiul io , am alocat
>> spatiu consistent
>> pentru toate tcb -pasul 1 si 2 din checker functioneaza):
>> 1. load_cu_base
>> 2. cu_start
>> 3. creare tcb pentru config(un pachet gol cu comanda config)
>> (la toate am initializat genereal pointer conform manual developer)
>>
>> Dupa ceva teste observ ca CU-ul nu reuseste sa citeasca comanda din tcb,
>> intrucat am plasat bitul de suspent in ea, dar CU-ul ramane Active multi
>> timp dupa (>10 sec).
>>
>
> Ai rezolvat problema?  Ai putea spune de la ce a fost în cazul tău?
> Am aceleași simptome.
>
>> Deci, intrebarile ar fi urmatoarele:
>>
>> 1. Fazele de intializare sunt corecte?
>> 2. Am  nedumeriri in legatura cu structura unui TCB. Eu am abordat fix
>> structura  descrisa in
>> lab6 MIT. Am observat ca in manual developer se precizeaza ca sa se tina
>> cont de aliniere.
>> Alinierea este un element critic in implementarea noastra?
>> 3. Tot in legatura cu structura TCB din 100.c, observ folosirea unei
>> structuri config,care este
>> actualizata la plasarea un CB de configurare. Deasemenea, folosirea,si
>> configurarea unei astfel de structuri este critica pentru CB-ul de tip
>> config?. Trebuie obligatoriu trimis un astfel de CB inainte de  send-ul
>> efectiv de pachete TCB?
>> 4. Pentru alocarea ring-ului DMA, am folosit pci_alloc_consistent si aloc
>> liniar TCB la dimensiunea maxima(ethernet). Este o abordare ok, sau mai
>> trebuie facut ceva ca CU/RU sa aiba access la acceasta zona de memorie ?
>> (mentionez ca ma folosesc de spatiul de adresa intors de dma_handler -
>> dma_addr).
>> 5. Nu am inteles exact problemele de sincronizare la care ar trebui sa fim
>> atenti.
>>
>
> Am adaptat [1] self-test-ul din e100.c [2] și îmi pică, ceea ce ar
> insemna că... device-ul nu reușește să facă DMA?  Nu prea știu ce să
> mai încerc de aici.
>
> [1]: http://lxr.free-electrons.com/source/drivers/net/ethernet/intel/e100.c#L676
> [2]: https://paste.kde.org/pfu37ypps
>

Am rezolvat, uitam să apelez pci_set_master în probe().

Mersi,
Călin


More information about the so2 mailing list