Re: Ethernet over Kernel Sockets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux