From owner-freebsd-hackers@FreeBSD.ORG Thu Jun 29 17:41:36 2006 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F3C2F16A40F for ; Thu, 29 Jun 2006 17:41:35 +0000 (UTC) (envelope-from CZander@nvidia.com) Received: from HQEMGATE02.nvidia.com (hqemgate02.nvidia.com [216.228.112.143]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6314E43D72 for ; Thu, 29 Jun 2006 17:41:31 +0000 (GMT) (envelope-from CZander@nvidia.com) Received: from hqemfe02.nvidia.com (Not Verified[172.16.227.92]) by HQEMGATE02.nvidia.com id ; Thu, 29 Jun 2006 10:43:26 -0700 Received: from nvidia.com ([172.16.228.84]) by hqemfe02.nvidia.com with Microsoft SMTPSVC(6.0.3790.1830); Thu, 29 Jun 2006 10:40:45 -0700 Date: Thu, 29 Jun 2006 19:41:00 +0200 From: Christian Zander To: Alexander Kabaev Message-ID: <20060629174100.GW692@wolf.nvidia.com> References: <20060629111231.GA692@wolf.nvidia.com> <44A3FD87.8000006@pbxpress.com> <20060629164910.GA4242@kan.dnsalias.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20060629164910.GA4242@kan.dnsalias.net> User-Agent: Mutt/1.4.2.1i X-NVConfidentiality: public X-OriginalArrivalTime: 29 Jun 2006 17:40:46.0383 (UTC) FILETIME=[270DD3F0:01C69BA3] Cc: freebsd-hackers@freebsd.org, Oleksandr Tymoshenko , Christian Zander Subject: Re: NVIDIA FreeBSD kernel feature requests X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Christian Zander List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Jun 2006 17:41:36 -0000 On Thu, Jun 29, 2006 at 12:49:10PM -0400, Alexander Kabaev wrote: > On Thu, Jun 29, 2006 at 09:32:42AM -0700, Kip Macy wrote: > > IIRC lack of per instance cdevs also limits Freebsd to one vmware instance. > > > > -Kip > > > > On 6/29/06, Oleksandr Tymoshenko wrote: > > >Christian Zander wrote: > > >> Hi all, > > >> # Task: implement mechanism to allow character drivers to > > >> maintain per-open instance data (e.g. like the Linux > > >> kernel's 'struct file *'). > > >> Motivation: allows per thread NVIDIA notification delivery; also > > >> reduces CPU overhead for notification delivery > > >> from the NVIDIA kernel module to the X driver and to > > >> OpenGL. > > >> Priority: should translate to improved X/OpenGL performance. > > >> Status: has not been started. > > > I've stumbled across this issue a while ago. Actually it can > > >be partially solved using EVENTHANDLER_REGISTER of dev_clone event with > > >keeping state structure in si_drv1 or si_drv2 fields. I'm not sure it's > > >the best solution but it works for me though it smells like hack, and > > >looks like hack :) Anyway, having legitimate per-open instance data > > >structures of cdevs is a great assistance in porting linux drivers to > > >FreeBSD. Just my $0.02. > > > > > WHY it smells like a hack? It was designed precisely to do that. I am > using cloned devices in our product with great success. Every client > opening 'magic' device gets its own exclusive cloned device instance > and everything works like a charm. I am yet to hear any single coherent > description of what Linux's approach has over device cloning in FreeBSD. > I wouldn't mind being educated on this. > Thanks for your feedback, I hadn't been aware of this interface, but it sounds promising. When was it first introduced? Are there any known problems with it and certain FreeBSD releases, or is it expected to work fine in FreeBSD >= 5.3? Thanks, > -- > Alexander Kabaev -- christian zander ch?zander@nvidia.com