Gilles Chanteperdrix wrote:
> Jan Kiszka wrote:
>  > Gilles Chanteperdrix wrote:
>  > > stats:
>  > >  include/rtdm/rtdm.h        |    4 ++
>  > >  include/rtdm/rtdm_driver.h |   30 +++++++++++++++-
>  > >  ksrc/skins/rtdm/core.c     |   84 
> +++++++++++++++++++++++++++++++--------------
>  > >  ksrc/skins/rtdm/device.c   |   10 +++++
>  > >  ksrc/skins/rtdm/drvlib.c   |   76 
> ++++++++++++++++++++++++++++++++++++----
>  > >  5 files changed, 170 insertions(+), 34 deletions(-)
>  > > 
>  > 
>  > /me thinks that going for inline patches on this list is overdue...
>  > 
>  > > @@ -1148,8 +1208,8 @@ int rtdm_sem_timeddown(rtdm_sem_t *sem, 
>  > >  
>  > >          if (testbits(sem->synch_base.status, RTDM_SYNCH_DELETED))
>  > >                  err = -EIDRM;
>  > > -        else if (sem->value > 0)
>  > > -                sem->value--;
>  > > +        else if (sem->value > 0 && !--sem->value)
>  > > +                        xnselect_signal(&sem->select_block, 0);
>  > >          else if (timeout < 0) /* non-blocking mode */
>  > >                  err = -EWOULDBLOCK;
>  > >          else {
>  > 
>  > Uuuh, this doesn't look equivalent (for --sem->value < 0).
>  > 
>  > Otherwise it's OK with me.
> 
> After testing, it appears that the "owner" of a file descriptor changed from 
> current->mm 
> to
> container_of(xnshadow_ppd_get(__rtdm_muxid), struct rtdm_process, ppd)

Yes, indeed, forgot about it. We have a full-blown owner structure now
to track comm and pid.

> 
> So, I now need a ppd hash lookup in __rtdm_context_get.
> 

You could add mm to rtdm_process. This means another indirection and
makes things worse (more cache misses in the worst case...). Could you
live without the check until we have per-process fd tabled, or was it
essential for the select thing?

Jan

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Xenomai-core mailing list
Xenomai-core@gna.org
https://mail.gna.org/listinfo/xenomai-core

Reply via email to