[so2] [Tema 2] Vmchecker vs local, comportament bizar

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Fri May 18 00:03:36 EEST 2018


Cotet Teodor Mihai via so2 <so2 at cursuri.cs.pub.ro> writes:
> Buna,
>
> Am intampinat o problema cu tema2 probabil legata de vmchecker.
> La testul 5 checkerul se agata pe vmchecker. Am investighat un pic si
> problema ar fi urmatoarea: pe vmchecker, cand sunt folosite ambele porturi
> seriale, se genereaza intreruperea care zice ca device-ul e gata sa
> citeasca date doar pentru unul dintre ele (com2), si astfel se agata pentru
> ca modulul meu nu scrie niciodata pe celalat port serial, crezand ca nu e
> gata sa citeasca.
>
> Ca sa fie mai clar o sa pun aici o mica simulare de pe local vs vmchecker:
>
> local:
>
> [init] enter
> [open] 1016
> [interrupt] com1 4 1016 1
> [interrupt] com1 1016 fifo empty
> [open] 760
> [interrupt] com2 3 760 1
> [interrupt] com2 760 fifo empty
>
> aici se observa ca se genereaza interuperi pentru ambele com-uri
>
> vmcecker:
>
> [init] enter
> [open] 1016
> [open] 760
> [interrupt] com2 3 760 1
> [interrupt] com2 760 fifo empty
> [ioctl] enter 760
> [ioctl] exit 760
> [ioctl] enter 1016
> [ioctl] exit 1016
> [read] enter 760 128
> [write] enter 1016 128 0
> [write] exit 1016 128
> [write] enter 1016 60 0
> [write] exit 1016 60
>
> Dupa care se agata. Se observa ca nu se genereaza interupere niciodata
> pentru com1.
> Pe local tot timpul merge, 9/9.
>
> Ca idee, am schimbat un pic codul ca modulul meu sa credea ca deviceul e
> gata sa primeasca date initial (chiar daca nu a primit intreruperea de la
> device care ii zice explicit ca e gata) si pica doar ultimul test asa.

Am văzut că toate testele trec acum[1]. Care era problema, care a fost
soluția?

[1] https://vmchecker.cs.pub.ro/ui/#SO2

Răzvan


More information about the so2 mailing list