<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 23, 2021 at 11:39 AM Max Lapshin <<a href="mailto:max.lapshin@gmail.com">max.lapshin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I've checked it without lcnt and situation is the same.<br>
<br>
I have NIF  ERL_NIF_DIRTY_JOB_IO_BOUND  that uses enif_select to read<br>
data with function read from DVB card.<br>
<br>
I've seen that this pause instruction is somewhere nearby   driver_entry@....<br>
<br>
I've checked: one process that reads data from DVB card gets about 350<br>
  ready_input messages per second.<br>
<br>
Maybe I don't need to use ERL_NIF_DIRTY_JOB_IO_BOUND flag if I know<br>
that socket is ready for reading and non-blocked?<br></blockquote><div><br></div><div>We do not use dirty schedulers for reading from sockets, so if DVB cards behave similarly to sockets then you can skip using a dirty scheduler.</div><div><br></div><div>Rapidly scheduling processes in between normal and dirty schedulers could cause a lot of time to be spent in erts_schedule.</div><div><br></div><div>Lukas</div></div></div>