Hello Mulyadi!
Many Thanks for your fast answer!!!
Sounds like it's due to context switch latency..or at least the
interval between your workqueue getting queued into runnable list and
actually running. Thus, it leads to ~1 ms...a.k.a the HZ
interval...assuming you're using 1000 MHz
Yes, HZ is 1000.
May we ask? what preemption model do you use now? try full preemption
instead of voluntary preemption.
The preemption is off, because we have a Kerrighed (kerrighed.org)
patched kernel and I believe it doesn't work correctly with preemption
(at present) but I'll try that.
Other than that....maybe you need to think about better asynchronous
communication. Something like AIO or callback based trigger.
I don't know AIO but the hint with callbacks I also got somewhere else
and I think that would be a nice solution.
The problem is that I know nothing about the functionality of the socket
callbacks.
Yesterday I only set sock->sk->sk_data_ready to an own function to see
if it will be called when a message comes in but I don't know how to
write my own callback at all... :-(
I've many questions - for example:
How can I read the received data from the socket, what should I do after
reading, what must be locked and when...?
And what has to be done if I want send through a socket without the
sock_sendmsg() function which can't be called in interrupt context?
Do you know any sources (books or something else) where I can read more
about socket callbacks? Because I've looked into the kernel sources
where these callbacks will be set but there are completely no comments...
Regards,
Lukas
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ