From owner-freebsd-hackers Thu Jul 1 16:37:52 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from implode.root.com (root.com [209.102.106.178]) by hub.freebsd.org (Postfix) with ESMTP id 098DB1586A for ; Thu, 1 Jul 1999 16:37:15 -0700 (PDT) (envelope-from root@implode.root.com) Received: from implode.root.com (localhost [127.0.0.1]) by implode.root.com (8.8.8/8.8.5) with ESMTP id QAA07652; Thu, 1 Jul 1999 16:37:11 -0700 (PDT) Message-Id: <199907012337.QAA07652@implode.root.com> To: Zhihui Zhang Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: reason for slow user-user memory copy In-reply-to: Your message of "Thu, 01 Jul 1999 19:06:54 EDT." From: David Greenman Reply-To: dg@root.com Date: Thu, 01 Jul 1999 16:37:11 -0700 Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG >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. >----------------------------------------------------------------------- If the mapping is being done via a device mapping, then the region will be marked non-cacheable. -DG David Greenman Co-founder/Principal Architect, The FreeBSD Project - http://www.freebsd.org Creator of high-performance Internet servers - http://www.terasolutions.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message