Skip to content

Lab05 deferred work#5

Open
maranicolae wants to merge 6 commits intomasterfrom
lab05_deferred_work
Open

Lab05 deferred work#5
maranicolae wants to merge 6 commits intomasterfrom
lab05_deferred_work

Conversation

@maranicolae
Copy link
Owner

@maranicolae maranicolae commented Apr 2, 2022

Laborator 5

Exercițiul 1

Timer-ul a fost inițializat folosind timer_setup, unul din argumente va fi handler-ul care afișează mesajul; apoi a fost planificat folosind mod_timer.

Exercițiul 2

În handler-ul ce afișează mesajul am utilizat din nou funcția mod_timer pentru a replanifica timer-ul.

Exercițiul 3

În handler am afișat câmpurile pid și comm ale structurii current. Cu ajutorul variabilei booleene already_deleted_timer verific dacă timer-ul a fost deja oprit sau nu. Acesta este setata pe false atunci când timer-ul este intializat sau în funcția init a modulului.
Apoi aceasta este setata pe true atunci când timer-ul este oprit sau în funcția de exit a modulului.

root@qemux86:~# ./skels/deferred_work/3-4-5-deferred/ușer/test s 1
[deferred_open] Device opened
Set timer to 1 seconds
[deferred_ioctl] Command: Set timer
[deferred_release] Device released
Comm: swapper/0
PID: 0

Exercițiul 4

Câmpul boolean use_blocking_op va semnala dacă în handler se va apela funcția blocantă alloc_io sau se vor afișa informațiile din exercițiul precedent. În testarea task-ului am observat că se generează o eroare:

BUG: scheduling while atomic: swapper/0/0/0x00000102
1 lock held by swapper/0/0:

Exercițiul 5

Handler-ul a fost schimbat astfel încât să nu mai apeleze direct funcția alloc_io, aceasta va fi apelata prin intermediul schedule_work.

Signed-off-by: Mara-Ioana Nicolae  <maraioana9967@gmail.com>
Signed-off-by: Mara <maraioana9967@gmail.com>
Signed-off-by: Mara <maraioana9967@gmail.com>
Signed-off-by: Mara <maraioana9967@gmail.com>
Signed-off-by: Mara <maraioana9967@gmail.com>
Signed-off-by: Mara <maraioana9967@gmail.com>
@dbaluta
Copy link

dbaluta commented Apr 8, 2022

excellent work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants