Skip site navigation (1)Skip section navigation (2)
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>