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

Cotet Teodor Mihai teodor.cotet at gmail.com
Mon Apr 23 14:31:43 EEST 2018


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.

Teo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20180423/3671323c/attachment.html>


More information about the so2 mailing list