From owner-freebsd-current Fri Aug 31 10: 8:18 2001 Delivered-To: freebsd-current@freebsd.org Received: from zircon.seattle.wa.us (sense-sea-CovadSub-0-228.oz.net [216.39.147.228]) by hub.freebsd.org (Postfix) with SMTP id DC27137B408 for ; Fri, 31 Aug 2001 10:08:11 -0700 (PDT) Received: (qmail 12930 invoked by uid 1001); 31 Aug 2001 17:08:08 -0000 From: Joe Kelsey MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15247.50296.431624.991103@zircon.zircon.seattle.wa.us> Date: Fri, 31 Aug 2001 10:08:08 -0700 To: Maxim Sobolev Cc: current@freebsd.org Subject: Re: Junior Kernel Hacker task: Get rid of NCCD constant. In-Reply-To: <3B8F8194.1CC1DAE3@FreeBSD.org> References: <68364.998941145@critter> <3B8F8194.1CC1DAE3@FreeBSD.org> X-Mailer: VM 6.92 under Emacs 20.7.1 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Maxim Sobolev writes: > Poul-Henning Kamp wrote: > > > Assignment: > > > > There is no reason for the NCCD constant to exist anymore. > > > > The CCD driver already has cloning support but CCDs "softc" > > structure is statically allocated for NCCD devices. > > > > Change the CCD driver to dynamically allocate memory as needed, > > the MD driver can be used as example as the overall morphology > > of the two drivers are the same. > > See attached patch. Due to the fact that statically allocated array > was replaced with queue(9) list, it became big PITA to use kvm in the > ccdconfig(8) utility, so in addition I've replaced kvm with ioctl > interface, which simplifies things and allows to lift sugid bit from > it (I bet rwatson and other trusted folks would like that ;) Also > I've converted function prototypes into single style (deK&Rified > them), because most of them were affected by the my changes anyway. > > I would like to hear comments and suggestions. I only have one real suggestion. You added sc_vpp to ccd_s in order to store the vnodes to pass between the ioctl and the init procedures. This is a duplication of resources, since the init procedure merely copies the vnode into the appropriate info structure, and the vpp array is never used again. A better solution might be to simply pass the local vpp array as an extra argument to ccdinit (after cpaths, for instance). Then, after ccdinit is done, simply free the ioctl copy of vpp and you are done. It just seems like a lot of overhead carrying around that malloc'd sc_vpp for no purpose. Unless, of course, you can tell me the purpose for it! > Truly yours, > > Maxim "Jr. Kernel Hacker" Sobolev /Joe "The wanna-be Jr. Kernel Hacker" To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message