Hi Rohit
Can we give vmalloced buffers to tcp_recvmsg() to get data from the
network
stack? Does the tcp_recv routine use this buffer passed to it for DMA?
or
Can we give vmalloced buffers to sock_recvmsg() to get data from the
network
stack? sock_recvmsg() calls sock->ops->recvmsg()which uses this buffer
....
the recvmsg call here is call to tcp_recvmsg() ? Does the tcp_recv
routine
use this buffer passed to it for DMA?
This is purely coming from my logic. If you use vmalloc(), then what you
get is just virtually contigous memory blocks, not necessarily
physically contigous memory block. And AFAIK, DMA doesn't like such
thing, unless DMA is capable to do something like scatter gather data
transfer or vector based data read (like readv() does).
Also, AFAIK too, vmalloc() is necessary if you need such a large memory
block. So, do you really need that big?
regards,
Mulyadi
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/