From owner-freebsd-net Thu Oct 24 7:13:27 2002 Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3985537B401 for ; Thu, 24 Oct 2002 07:13:26 -0700 (PDT) Received: from mail.sandvine.com (sandvine.com [199.243.201.138]) by mx1.FreeBSD.org (Postfix) with ESMTP id B499F43E75 for ; Thu, 24 Oct 2002 07:13:25 -0700 (PDT) (envelope-from ddolson@sandvine.com) Received: by mail.sandvine.com with Internet Mail Service (5.5.2653.19) id <42S9VHKM>; Thu, 24 Oct 2002 10:13:25 -0400 Message-ID: From: Dave Dolson To: freebsd-net@FreeBSD.ORG Subject: Method to share kernel mbufs with a user process? Date: Thu, 24 Oct 2002 10:13:24 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Until the multi-threaded kernel becomes stable... (I'm using 4.6) Is there a quick & dirty way of sharing mbufs with a user process? The objective is to get the advantages of multi-processors yet avoid the syscall overhead for each packet. E.g., a netgraph node could queue mbufs in memory shared with a user process. One idea is to write a device with which I can mmap the entire kernel memory space. A problem with this is that it doesn't seem to be legal to mmap to the same virtual addresses (0xc0000000) used by the kernel, so all pointers would have to be translated. I'm hoping someone knows of a better mechanism which I haven't found yet. (Obviously multi-threading of the kernel will meet the needs eventually, so I don't want to do any major kernel hacking.) Thanks for any suggestions, David Dolson To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message