From owner-freebsd-current@FreeBSD.ORG Sat Mar 22 02:59:51 2008 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C4D0D106564A for ; Sat, 22 Mar 2008 02:59:51 +0000 (UTC) (envelope-from barney_cordoba@yahoo.com) Received: from web63906.mail.re1.yahoo.com (web63906.mail.re1.yahoo.com [69.147.97.121]) by mx1.freebsd.org (Postfix) with SMTP id 6901F8FC1B for ; Sat, 22 Mar 2008 02:59:51 +0000 (UTC) (envelope-from barney_cordoba@yahoo.com) Received: (qmail 96096 invoked by uid 60001); 22 Mar 2008 02:59:50 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:Date:From:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=DZRraApf0bpacbqpNUqDkkoHvSWuRzMA6ei9tIXrD6nLqp8FrV0SgHbsPfy0s8JUfny8vUhqKAWfflFRlKB01UfdjdIhmMgLCCXUaguAoxZUTlvzekMg1eKn8dxPOmV8WSFjb+yYvoE7SrygKeDu7jyGgV1GGqueBaPVIsk0xHE=; X-YMail-OSG: 8jwbsZ0VM1k_BnMaT6Y8H.FzTDTBjMa8GMc9NiupiHDoMp_rlO5yUcWihG1LJcZ7_9imlzicXa.IdTMDDormesupWrhYi4AQ5fIDMiOnmRB1tLpUKZU- Received: from [24.45.195.185] by web63906.mail.re1.yahoo.com via HTTP; Fri, 21 Mar 2008 19:59:50 PDT Date: Fri, 21 Mar 2008 19:59:50 -0700 (PDT) From: Barney Cordoba To: Julian Elischer In-Reply-To: <47E46682.4020403@elischer.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Message-ID: <494618.95957.qm@web63906.mail.re1.yahoo.com> Cc: current@freebsd.org Subject: Re: kvm_read() vs ioctl performance X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Mar 2008 02:59:51 -0000 --- Julian Elischer wrote: > Barney Cordoba wrote: > > --- Julian Elischer wrote: > > > >> Barney Cordoba wrote: > >>> I have an app which reads stats from the kernel > >>> periodically, and there can be a lot of > >> iterations, > >>> sometimes 20,000 or more. I'm thinking of > >> converting > >>> from an ioctl method to kvm_read(). KVM is > >> certainly > >>> simpler, but its not clear what overhead is > >> involved, > >>> since kvm_read() likely has to call the kernel > >> also. > >>> Does anyone have a handle on the difference in > >>> overhead, assuming that the ioctl call is to a > >> module > >>> which does nothing more than copy the data and > >> return? > >> > >> tried a shared memory page? > > > > No, but I built a test and kvm_read is 70 times > > faster, in > > case anyone is interested. > > cool.. > the only downside is that we are trying to get away > from kvm direct > access. (which is why a shared page might give the > same result with a > stable API which is not libkvm... BTW on an SMP > machine you have > no way to ensure that your stats are coherent if you > use libkvm. The app is portable, and I'd prefer not to have different methods for LINUX and FreeBSD. When you say "coherent", what exactly do you mean? Barney ____________________________________________________________________________________ Never miss a thing. Make Yahoo your home page. http://www.yahoo.com/r/hs