Re: howto sendpages over network

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

 



It is two different concept.

Pages, is recognized as 1024 bytes or 4096 bytes, depends on the Intel
PAGESIZE u set in the CPU.   It is a CPU feature, such that the memory
MMU always treats all memory access at the multiple of PAGESIZE level,
when it does its translation from pagetable to virtual address.

But network buffer, and going down into the hardware DMA, has a
different concept of byte alignment.   TCP/IP will wrap around that
data with its header, and then DMA-mapped into the network devices.
There is no need for any PAGESIZE alignment.

But LOGICALLY, it is always possible to modify the kernel to recognize
all these boundaries.   For eg, get the actual pages in memory for the
specific buffer pointer, and then squeeze the entire PAGESIZE down the
network, and on the receiving side, just receive the entire PAGESIZE
and then pump that PAGESIZE data into one physical memory page.   And
most important - update the pagetable to recognize this change.

Sound really complicated, as there are alternative ways possible - eg,
just implement some means of updating the pagetable remotely (one PTE
is just 8 bytes), and then just transfer THE SINGLE BYTE of data (over
the network) to be store in the physical memory.

The two implementations described above, are purely my guess of how
memory virtualization (over the network) worked:

http://www.rnanetworks.com/cache-architecture#what-is-memory-virtualization
http://en.wikipedia.org/wiki/Memory_virtualization

But the cons of high network latency, plus privacy concerns (u want to
share your memory with others - not forgetting that they are peeping
at you all the time?) plus the high complexities of managing hardware
MMU transition logic (pagetable management) and plus the low costs of
memory chips - I think this area is a bit of challenging at the moment
:-).   (All references I can find indicated this is a theoretical area
of study right now).

Feel free to disagree and share your thoughts.   Apologized if I had
veered off-course in the question.   (someone asked me similar
questions though).

On Fri, Aug 21, 2009 at 2:13 PM, krushnaal pai<krisonearth@xxxxxxxxx> wrote:
> by converting the char *buffer  into pages i want to send pages over the
> network thru socket. how to?
>



-- 
Regards,
Peter Teoh

--
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