[so2] [SO2] [Tema3] [Linux] Nelămuriri - CRC, locking, checker

Vlad Dogaru ddvlad at herebedragons.ro
Fri Apr 19 00:56:26 EEST 2013


On 4/14/2013 5:13 PM, Liviu Ioan wrote:
> Salut,
> 
> 1. La blk_queue_make_request, al doilea argument îl reprezintă un
> "handler" prin care noi tratăm fiecare cerere de tip bio.
> O cerere de tip "bio" corespunde mai multor segmente de tip bio_vec,
> toate grupate în același sector și după aceeași
> direcție(citire/scriere).
> 
> Să zicem că primim în handler o cerere bio de citire. Pentru a putea
> îndeplini cererea, trebuie să verificăm CRC-ul. CRC-ul este la nivel
> de *sector*.
> 
> Așadar, pentru fiecare cerere, noi trebuie să verificăm validitatea
> sectorului? Adică avem nevoie să citim întreg sectorul, calculăm CRC,
> după care citim CRC de pe disc și comparăm valorile, nu?

Corect.

> În acest moment, mai facem o cerere de citire către disc pentru a citi
> efectiv ce se dorea în bio sau ne folosim de citirea deja făcută?

Pentru fiecare bio de citire, va trebui să citești sectoarele de pe cele
două discuri, precum și CRC-urile asociate.  Nu înțeleg ce înseamnă să
folosești citirea deja făcută.

> 2. Pentru o cerere de scriere, nu ne interesează validitatea unui CRC, nu?

Nu.

> Primim în handler un bio. Trimitem mai departe cererea către
> dispozitiv. Apoi citim sectorul modificat, calculăm CRC și scriem noul
> CRC la locația corespunzătoare.
> 
> 3. Există probleme de sincronizare pe care trebuie să le avem în
> vedere? Momentan, nu am identificat.

Nu, în afară de locking la nivel de request queue.

> 4. Ca idee, am implementat doar înregistrări și un handler gol pentru
> cereri, iar checker-ul e foarte binevoitor. Trec majoritatea testelor.

Checkerul e ca să vă ajute pe voi (well, și pe noi) să vă asigurați că
tema merge (pentru unele valori ale cuvântului "merge").  Dar nu e
singurul mod de a ne asigura de asta.  Cine corectează tema se uită și
pe cod și vă va depuncta dacă trimiteți o dudă cu "tema implementează
tot" în readme.  This does not work for SO2, am înțeles că pe la alte
cursuri "se spune" că merge și așa :)

Vlad


More information about the so2 mailing list