Date: Thu, 1 Jul 1999 19:06:54 -0400 (EDT) From: Zhihui Zhang <zzhang@cs.binghamton.edu> To: freebsd-hackers@freebsd.org Subject: reason for slow user-user memory copy Message-ID: <Pine.GSO.3.96.990701185753.3735A-100000@sol.cs.binghamton.edu>
next in thread | raw e-mail | index | archive | help
A graduate student here implements a mmap() interface to a TCP/IP network card. He notices that it takes much longer time to copy from mmapp()'ed area to another user area than it takes to copy the same amount of data from kernel space to user space. The students here have no idea why this could be possible. I hope someone on this list can give us a hint. Below is a part of his original email. He uses rdtsc instruction to do the timing. ------------------------------------------------------------------------ Well I have implemented a memory mapped interface for the user in Linux using the DEC 21140 Tulip ethernet card. Thus the user has access to the buffers, but when I did a memcpy from the RX buffer to the user variable, it took an extraordinary amount of time, approx 70 microsec for 1460 btyes... where as the original scheme takes 25 microsec for the same data when it does a memcpy_to_iovec in tcp_recvmsg(). I am confused by this unexpected timings. More than 80% of the time is spent doing the memcpy. ----------------------------------------------------------------------- Thanks for your help. -------------------------------------------------- Zhihui Zhang. Please visit http://www.freebsd.org -------------------------------------------------- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.3.96.990701185753.3735A-100000>