[so] [Tema 5][Linux][Offset io_prep_pread]

Razvan Crainea razvan.crainea at gmail.com
Tue May 22 14:08:54 EEST 2018


Salut, Costin!

Găsești răspunsurile mele inline.

Numai bine,
Răzvan

On Tue, May 22, 2018 at 1:41 PM Birlea Costin <costin.birlea at gmail.com>
wrote:

> Buna Ziua.
>
> Am incercat acuma sa folosesc io_set_eventfd inaintea fiecarui io_submit
> (impreuna cu io_prep_pread) si acuma a inceput sa citeasca mai departe,
> insa mai am 2 nelamuriri:
>
> 1. De unde stiu cat s-a citit la fiecare submit? observ ca io_getevents
> doar ofera informatii despre cate evenimente s-au terminat si la fel si
> read-ul folosit pentru asteptare.
>
io_getevents() returnează câte evenimente s-au terminat, în același timp
populează field-ul events cu informații despre job-urile terminate.


>
> 2. Nu-mi este clar dc secventa aceasta de cod(din laboratorul 11) este
> folosita pentru asteptarea terminarii operatiei.
>
> u_int64_t efd_val;if (read(efd, &efd_val, sizeof(efd_val)) < 0) {
>     /* handle error */}
>  printf <http://www.opengroup.org/onlinepubs/009695399/functions/printf.html>("%llu operations have completed\n", efd_val);
>
>
> efd este un file descriptor al unui eveniment; un apel read() pe acest
file descriptor va întoarce numărul de operații IO terminate. Din moment ce
el nu este marcat ca non-blocant, read-ul pe acest file descriptor se va
bloca până una (sau mai multe) operații vor fi terminate. Dacă mai ai
nelămuriri, te rog să ne spui.

Numai bine,
Răzvan

>
>
> 2018-05-22 6:55 GMT+03:00 Razvan Crainea <razvan.crainea at gmail.com>:
>
>> Salut, Costin!
>>
>> După ce se termină prim-ul job de read, citești de pe event, apoi aștepți
>> terminarea job-ului?
>> Ai încercat să setezi un event nou după fiecare operație?
>>
>> Numai bine,
>> Răzvan
>>
>> On Tue, May 22, 2018 at 5:15 AM Birlea Costin via so <
>> so at cursuri.cs.pub.ro> wrote:
>>
>>> Buna Seara.
>>>
>>> Nu-mi este clar cum ar trebuii schimbat offset-ul de unde citesc din
>>> fisier atunci cand folosesc io_submit si io_prep_pread. Problema mea este
>>> ca la fiecare submit se citeste aceeasi parte din fisier si banuiesc ca de
>>> la offset vine problema.
>>>
>>> Am incercat sa reapelez io_prep_pread (fiindca aici se specifica
>>> offset-ul) insa cand faceam asta, dupa aceea nu mai primeam deloc event-uri
>>> EPOLLIN pentru acest eventfd.
>>>
>>> Precizez ca am cate un eventfd si io_context pentru fiecare conexiune.
>>>
>>> Multumesc anticipat!
>>> _______________________________________________
>>> http://ocw.cs.pub.ro/courses/so/info/lista-discutii
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20180522/32a6aa79/attachment.html>


More information about the so mailing list