[so2] [Tema 4] free blocks, free inodes

Oana Stroie mail.oana.stroie at gmail.com
Fri Apr 29 14:50:38 EEST 2016


Again :))

Mai exact, cand sa aloc noi blocuri, ce este chemat la cp?
Minix face in get_block (cand create este setat) sau pot in set_attr ( cand
noul size este diferit).
Probleme:
- get_block este apelat mai tarziu (am presupus ca se tine cont si de cache)
- set_attr pune in attr->ia_size, insa nu reusesc sa lucrez cu ea (poate de
la tipul loff_t pe care il are). daca fac conversie la int da mereu 0. cum
iau size-ul corect?

2016-04-29 14:08 GMT+03:00 Oana Stroie <mail.oana.stroie at gmail.com>:

> Momentan e ok, am diferente la free blocks (dar arata ok 3734 = 3752).
> Caut locul unde uit sa scad numarul de blocuri.
>
> Nu inteleg de unde pot lua noua dimensiune la care sa trunchez un fisier.
> Mai exact, setattr imi este apelat (fie daca scriu intr-un fisier, fie la
> cp din teste) si eu apelez pitix_truncate (care aloca sau dealoca blocuri
> in fc de i_size). Doar ca spre deosebire de truncate (din fs unde spunea ca
> i_size va avea noua dimensiune), setattr nu imi seteaza i_size (il lasa cum
> era).
>
> Cum accesez noua dimensiune dorita a fisierului pt a ii face truncate
> corect? [cred ca de aici este problema cu bfree]
>
> Mersi,
> Oana
>
> 2016-04-29 13:54 GMT+03:00 Razvan Deaconescu via so2 <
> so2 at cursuri.cs.pub.ro>:
>
>> Daniel Baluta via so2 <so2 at cursuri.cs.pub.ro> writes:
>> > 2016-04-29 13:35 GMT+03:00 Oana Stroie via so2 <so2 at cursuri.cs.pub.ro>:
>> >> 2016-04-29 12:23 GMT+03:00 Oana Stroie <mail.oana.stroie at gmail.com>:
>> >>> 2016-04-29 11:17 GMT+03:00 Oana Stroie <mail.oana.stroie at gmail.com>:
>> >>>> Buna ziua,
>> >>>>
>> >>>> Imi pica toate testele cu check free blocks si check free inodes cu o
>> >>>> diferenta destul de mare intre valori (exemplu check free blocks --
>> test
>> >>>> 12643 = 4082). In plus, punand afisari in pitix_get_block (
>> parametru pus in
>> >>>> readpage si writepage la apel block_read_full_page) nu pare ca
>> aceasta ar fi
>> >>>> apelata in rularea testelor.
>> >>>>
>> >>>> Precizez ca imi trec rmajoritatea din restul testelor (inclusiv cele
>> de
>> >>>> uid, gid, data, size, unlink, rmdir, mkdir) insa niciunul de free
>> blocks si
>> >>>> free inodes.
>> >>>>
>> >>>> In plus, testat de mana, functiile se comporta cum ar trebui (cat
>> reusesc
>> >>>> sa testez) ex mkdir urmat de rmdir, sau touch urmat de unlink
>> modifica pe
>> >>>> rand corespunzator ffree si bfree.
>> >>>>
>> >>>> Poate fi de la setattr (implementat si setat insa la fel nu e
>> apelat)?
>> >>>> Sau nu setez ceva corect?
>> >>>> Cum pot fi read-urile (test check data) corecte si get_block sa nu
>> fie
>> >>>> apelat la testare?
>> >>>
>> >>> Update:
>> >>> Cand testez de mana: stat -f /mnt/pitix (montat si functionabil cu
>> >>> celelalte functii) primesc intr-adevar valorile default (block size
>> 4096 si
>> >>> restul valorilor 0), daca fac stat -f /dev/sdb (unde este montat)
>> primesc
>> >>> valorile (gresite) din teste (ex 14084, 12673 etc).
>> >>>
>> >>> Am setat .statfs si am implementat asemanator cu minix_statfs, insa la
>> >>> rulare stat, pitix_statfs nu este apelata si nu imi dau seama de ce
>> nu, ea
>> >>> fiind setata in super_operations.
>> >>>
>> >>> Help?
>> >>
>> >> Update [again]
>> >> Am rezolvat :)
>> >>
>> >> Din neatentie nu testam cu .statfs setat. Dupa setarea
>> corespunzatoare, si
>> >> copierea directorului _test pe qemu (testele ruleaza si daca nu
>> gaseste)
>> >> functioneaza corect.
>> >
>> > https://en.wikipedia.org/wiki/Rubber_duck_debugging
>>
>> Oana, să ne spui în ce stadiu ești acum cu tema, că e mai dificil să ne
>> prindem, după ultimele mesaje :-), de ce probeme mai ai.
>>
>> Răzvan
>> _______________________________________________
>> http://ocw.cs.pub.ro/courses/so2/resurse/lista-discutii
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20160429/cf49471c/attachment.html>


More information about the so2 mailing list