You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@nuttx.apache.org by Michael Jung <mi...@gmx.net> on 2022/02/01 11:26:53 UTC

Re: Right way to start a lightweight kernel thread without copying open file descriptors?

Hello Xiang,

you wrote:
> Michael, could you try it?

Sorry for the delayed response. I was away from my computer for some time.

I realized that the fix already went upstream.  I tested the current tip of
the master branch and the fix works fine for me.

Thanks a lot for your help,
Michael

Am So., 30. Jan. 2022 um 19:21 Uhr schrieb Xiang Xiao <
xiaoxiang781216@gmail.com>:

> It's better to let kernel thread skip the duplication of caller's file
> handler, here is the patch:
> https://github.com/apache/incubator-nuttx/pull/5379
> Michael, could you try it?
>
>
> On Mon, Jan 31, 2022 at 12:59 AM Michael Jung <mi...@gmx.net> wrote:
>
> > Hi Xiang, Hi Matthew,
> >
> > Thanks for your responses.
> >
> > Matthew wrote:
> > > Creating a kernel thread in an ioctl "lower-half" would probably cause
> > the file descriptors from the calling task to get copied.
> >
> > Yes, that is exactly what is happening.  The started kernel thread
> actively
> > polls for an event to happen and terminates afterwards, calling close on
> > all the copied file descriptors (which includes the one the ioctl was
> > called on). Currently I made my device driver more robust via reference
> > counting, but I tend to agree with the referenced issues that kernel
> > threads should not maintain file descriptors.
> >
> > Thanks!
> > Michael
> >
> > Am Fr., 28. Jan. 2022 um 23:38 Uhr schrieb Matthew Trescott <
> > matthewtrescott@gmail.com>:
> >
> > > On Fri, Jan 28, 2022 at 7:43 PM Michael Jung <mi...@gmx.net> wrote:
> > > >  specific ioctl command implementation
> > >
> > > Creating a kernel thread in an ioctl "lower-half" would probably cause
> > > the file descriptors from the calling task to get copied. Might this
> > > be another case of
> > > https://github.com/apache/incubator-nuttx/issues/1108 and
> > > https://github.com/apache/incubator-nuttx/issues/2663 ?
> > >
> >
>