[so2] pointer din userspace

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Fri Apr 17 19:57:25 EEST 2015


Razvan Deaconescu via so2 <so2 at cursuri.cs.pub.ro> writes:
> Vali Ghita <valx92 at gmail.com> writes:
>> Salut,
>>
>> Dar din ce am inteles de la curs, cand se face switch la un kernel
>> thread nu se mai schimba registrul cu adresa directorului de pagini,
>> deci maparile ar trebui sa ramana cele ale procesului precedent si asa
>> nu ar rezulta neaparat un page fault de fiecare data. Am inteles eu
>> gresit?
>
> Este posibil să mă înșel eu. Un test poate valida rapid asta :-)
> Într-adevăr, întrucât un kernel thread nu are un mm_struct asociat
> atunci nu are nici un pointer de tip pdt al său și ar avea sens sa
> folosescă pe cel al procesului pe care l-a preemptat. O să fac și eu un
> test pentru asta.

Salutare.

Vali are dreptate. Rămâne pointer-ul la table de pagini a procesului
anterior. Am creat progamul de test de aici[1] și am testat pe mașina
virtuală QEMU[2]. În fișierul README găsiți concluziile.

[1] https://github.com/razvand/snippets/tree/master/kernel/kthread-access-userspace
[2] http://ocw.cs.pub.ro/courses/so2/resurse/masini-virtuale

Răzvan


More information about the so2 mailing list