Has anyone figured it out how to do Kernel bypass in Java? Any hello world somewhere or this is rocket science?
If you are using solarflare, you can use their API to do kernel bypass (I am not using it directly, so can't provide more details). You can also use a messaging broduct like 29West LBM or IBM LLM which support rich functionality over various hardware.
As @eSniff mentioned, the JRE has transferFrom()
/ transferTo()
API which right now is used to expose the sendfile(2)
equivalent for the systems that support it. The semantics of the API is defined so it can be transparently implemented to support DMA transfers between any 2 channels.
Search for "Java Zero-Copy Buffers" or "Java NIO" or "Java Netty".
Here is a slide show about Netty and zero-copy : http://www.slideshare.net/danbim/zerocopy-eventdriven-servers-with-netty . Here is an example project with Netty.
Or you can go lower level and use the java.nio.channels classes, which you can read about here http://www.ibm.com/developerworks/linux/library/j-zerocopy/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With