[so2] [Tema 3] Probleme de sincronizare
Valentina-Camelia BOJAN
valentina.bojan at cti.pub.ro
Sun Apr 12 20:23:45 EEST 2015
Buna!
Am o intrebare legata de o precizare din tema 3: "Exista riscul unor conditii de cursa in cazul bio-urile submise noi. Pentru a evita acest lucru lucrati cu un bio secvential (creare, populare, transmitere, asteptare) inainte de a lucra cu alt bio."
Acest lucru presupune folosirea unui mecanism de sincronizare? Intreb acest lucru pentru ca am incercat fara un astfel de mecanism, insa desi in handlerul inregistrat cu blk_queue_make_request() primesc numarul corect de bio-uri, dupa ce planific sarcina, in handlerul asociat workqueue-ului ajunge un numar mai mic de bio-uri. Acest lucru ma duce cu gandul ca apare o problema de sincronizare atunci atunci cand am secventa de operatii:
dev.bio = bio;
schedule_work(&dev.bio_work);
flush_scheduled_work();
Aceasta situatie apare la testul 41 din suita de _test-ng, test in care incearca sa se scrie 1MB de date; in testele normale nu apar probleme de acest gen.
Am rezolvat problema folosind un mutex pentru operatiile de mai sus, insa nu imi este clar daca este corect, intrucat am tot citit pe lista de discutii intrebarile din anii trecuti legate de tema 3 si in cateva
raspunsuri s-a mentionat ca nu ar exista probleme de sincronizare in tema.
Multumesc!
Valentina
More information about the so2
mailing list