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

Liviu Ioan liviu.andrei.ioan at gmail.com
Sun Apr 14 17:13:01 EEST 2013


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?

Î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ă?

2. Pentru o cerere de scriere, nu ne interesează validitatea unui CRC, 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.

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


Merci.

Liviu


More information about the so2 mailing list