[pso] [IxiaChallenge] struct proto & struct kmem_cache

Lavinia Petrache lavinia.petrache at gmail.com
Sun May 8 13:25:16 EEST 2011


Am copiat gresit din codul meu: in stp_sock este "struct sock sk;". Problema
e in continuare valabila.

2011/5/8 Lavinia Petrache <lavinia.petrache at gmail.com>

> Buna,
>
> Aveam initial sizeof(struct sock). Am inlocuit cum mi-ai sugerat, iar acum
> primesc kernel bug "unable to handle the kernel". Postez aici fragmentul de
> cod pentru ca nici nu mai stiu ce indicii sa dau referitoare la problema:
>
> struct stp_sock {
> struct sock;
> int extra;
> };
>
> static struct proto stp_prot = {
> .name = STP_PROTO_NAME,
> .owner = THIS_MODULE,
>  .obj_size = sizeof(struct stp_sock),
> };
>
> sk = sk_alloc(net, PF_STP, GFP_KERNEL, &stp_prot);
>
> In stp_sock ar trebui sa pun ceva mai util inca de la inceput ca sa
> functioneze?
>
> Lavinia
>
> 2011/5/8 Cosmin Ratiu <cosminratiu at gmail.com>
>
>> 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<http://lxr.linux.no/#linux+v2.6.38/net/core/sock.c%23L1043>
>> >>>
>> >>> Vlad
>> >>> _______________________________________________
>> >>> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>> >
>> >
>> > _______________________________________________
>> > http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>> >
>> _______________________________________________
>> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20110508/554a3a19/attachment.htm>


More information about the pso mailing list