Date: Mon, 13 Jun 2005 12:50:26 -0700 From: Julian Elischer <julian@elischer.org> To: Scott Long <scottl@samsco.org> Cc: Daniel Eischen <deischen@freebsd.org>, Apache Xie <apachexm@hotmail.com>, freebsd-hackers@freebsd.org Subject: Re: contigmalloc() and mmap() Message-ID: <42ADE382.4010403@elischer.org> In-Reply-To: <42ADD253.4020606@samsco.org> References: <Pine.GSO.4.43.0506131332380.23852-100000@sea.ntplx.net> <42ADC762.6010801@elischer.org> <20050613181435.GA3096@infradead.org> <42ADD253.4020606@samsco.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Scott Long wrote: > Christoph Hellwig wrote: > >> On Mon, Jun 13, 2005 at 10:50:26AM -0700, Julian Elischer wrote: >> >>> Several times in the past we've seen people complainign that Linux >>> allows a device driver to know >>> who called it and somehow it seems to store somewhere some >>> information about who >>> openned the device.. thos somehow allows linux to store an arbitrary >>> structure >>> for each openning process. I thin from the sond of it that he wants >>> to do something >>> similar. From the sond of it he wants to have a different buffer be >>> used depending on >>> who is calling. This would partly work but would not work when >>> processes fork etc. >>> >>> I think Linux must do some extra housekeeping in this case. >> >> >> >> What Linux does is pretty simple. The driver has access to the file >> structure, and this structure has a field for driver private data. >> It can store private data in open and free it again in the release >> callback. >> > > How does linux handle the implications of fork(2) in this scenario? both processes get the same field.. I don't think there is any special handling.. that would require a "forking" handler in each driver. In practice it seems ot not be a problem. > > Scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?42ADE382.4010403>