[pso] [IxiaChallenge] struct proto & struct kmem_cache

Cosmin Ratiu cosminratiu at gmail.com
Sun May 8 04:52:59 EEST 2011


Salut,

Asigura-te ca ai o structura 'struct stp_sock' care sa contina ca
primul membru 'struct sock'. obj_size trebuie sa fie dimensiunea
structurii stp_sock.

Cosmin.


2011/5/8 Lavinia Petrache <lavinia.petrache at gmail.com>:
> Salut din nou!
> In continuare am probleme la struct sock . Cand apelez sk_alloc, crapa
> complet iar stack trace imi spune ca pica la functia
> kmem_cache_alloc_notrace, pe care nu am reusit sa o depistez. Am incercat sa
> ocolesc oarecum problema si am alocat sk folosind kmalloc, insa cand am
> apelat functia sock_init_data s-a intamplat la fel.
> De la ce ar putea sa fie problema? In struct proto am initializat campurile
> name, owner si obj_size. Mai trebuie adaugat si altceva pe langa acestea? La
> cat trebuie initializat obj_size? Presimt ca fac ceva fundamental gresit...
> In speranta ca poate mai exista lume treaza,
> Lavinia
>
> 2011/5/7 Lavinia Petrache <lavinia.petrache at gmail.com>
>>
>> Multumesc, intr-adevar de la asta era, nu m-am uitat prea bine pe unde o
>> lua functia de alocare :)
>>
>> Lavinia
>>
>> 2011/5/7 Vlad Dogaru <ddvlad at rosedu.org>
>>>
>>> On 5/7/2011 4:37 PM, Lavinia Petrache wrote:
>>> > Buna!
>>> >
>>> > Am inregistrat o structura struct proto pentru a putea avea intrarea
>>> > protocolului in tabela din /proc/net/protocols. In continuare, am
>>> > observat (sau cel putin presupun) ca imi trebuie aceasta structura in
>>> > functia create a structurii net_proto_family. Intampin insa urmatoarea
>>> > problema: cand aloc memorie pentru struct sock cu sk_alloc, aceasta
>>> > functie primeste ca parametru adresa structurii protocolului. Cum ar
>>> > trebui sa initializez restul campurilor din structura? Initial imi
>>> > crapa
>>> > deoarece nu aveam initializat campul slab din ea.
>>>
>>> Poți să nu declari un slab separat, se va folosi kmalloc dacă prot->slab
>>> e NULL [1]. S-ar putea să crape pentru că nu ai setat prot->obj_size (e
>>> folosit tot la [1]).
>>>
>>> [1] http://lxr.linux.no/#linux+v2.6.38/net/core/sock.c#L1043
>>>
>>> Vlad
>>> _______________________________________________
>>> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>
>
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>


More information about the pso mailing list