From owner-freebsd-hackers@freebsd.org Tue Mar 14 09:47:32 2017 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5716ED0C413 for ; Tue, 14 Mar 2017 09:47:32 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E2EEEC72 for ; Tue, 14 Mar 2017 09:47:31 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id v2E9lQ5B077090 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 14 Mar 2017 11:47:27 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua v2E9lQ5B077090 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id v2E9lQr5077089; Tue, 14 Mar 2017 11:47:26 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 14 Mar 2017 11:47:26 +0200 From: Konstantin Belousov To: Manuel St?hn Cc: freebsd-hackers@freebsd.org Subject: Re: mmap device-drivers Message-ID: <20170314094726.GB16105@kib.kiev.ua> References: <20170314090905.GA94880@freebsd-t420.fritz.box> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170314090905.GA94880@freebsd-t420.fritz.box> User-Agent: Mutt/1.8.0 (2017-02-23) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Mar 2017 09:47:32 -0000 On Tue, Mar 14, 2017 at 10:09:05AM +0100, Manuel St?hn wrote: > Hi, > is it possible for a device driver to keep track if there are still > active mmap() pointers pointing to that device? > > Linux does have something like > > struct vm_operations_struct vm_ops = > { > .close = vm_close, > }; > > where vm_close gets called when any mmapped pointer goes out of scope and the > driver can refcount the mappers. > > Is there something similar in freebsd? Look at the OBJT_MGTDEVICE pager. It allows device drivers to use managed pages for mappings, which is exactly what you want from the FreeBSD VM. Managed device pagers are currently utilized by drm and xen code, read the source for examples.