From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <4AC65F5A.7040307@domain.hid> Date: Fri, 02 Oct 2009 22:15:22 +0200 From: Jan Kiszka MIME-Version: 1.0 References: <4AC61F57.2010404@domain.hid> <4AC62804.7090903@domain.hid> <4AC62B41.3050404@domain.hid> <4AC65172.8060900@domain.hid> <4AC65CEB.7080107@domain.hid> In-Reply-To: <4AC65CEB.7080107@domain.hid> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigEF682DD8148B9A5D3BD3C031" Sender: jan.kiszka@domain.hid Subject: Re: [Xenomai-core] RTDM fd support. List-Id: Xenomai life and development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gilles Chanteperdrix Cc: Xenomai core This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigEF682DD8148B9A5D3BD3C031 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Gilles Chanteperdrix wrote: > Jan Kiszka wrote: >> Gilles Chanteperdrix wrote: >>> Jan Kiszka wrote: >>>> Gilles Chanteperdrix wrote: >>>>> Hi Jan, >>>>> >>>>> from discussions on the mailing list, it seems that we are going to= need >>>>> that unified file descriptors thing. However, since everybody wants= >>>>> 2.5.0 to be released ASAP, we should try to think about any changes= for >>>>> this support which would break the ABI, do them now, and keep the r= est >>>>> for later. >>>>> >>>>> One such problem is the translation which currently exists between = rtdm >>>>> file descriptors and descriptors passed to the posix skin, by addin= g >>>>> 1024 - 128. So, I propose to fix this issue. >>>>> >>>>> The idea Philippe had, and which I tend to agree to, was, in case o= f >>>>> open/socket/accept, to open("/dev/null"), and use an association ta= ble >>>>> somewhere to associate with the kernel-space descriptor number. Sin= ce >>>>> we are at it, this association table could in fact be the file >>>>> descriptor table, which we would put in the core skin ppd. The actu= al >>>>> data structure should be sparse, a linked list does not scale, so, >>>>> probably a hash would do. (I could also propose a solution based on= avl >>>>> trees, but their implementation is not nearly as simple). >>>>> >>>>> Additionnally, this would allow our open/socket to conform to posix= >>>>> which states that open should return the lowest free file descripto= r. >>>>> >>>>> Should I propose a patch in that direction? Do you see any other >>>>> possible cause of ABI breakage when we migrate to an unified file >>>>> descriptors structure? >>>> Right now this sounds like a plan - but I don't feel 100% comfortabl= e to >>>> predict that we will get along with it. Converting some skin-specifi= c >>>> service to a generic one involves quite a lot of refactoring. It is = not >>>> really unlikely that we define some ABI now that will later turn out= to >>>> be insufficient for what we want to achieve. >>> For the posix skin, I can live with a two hops solution right now, an= d >>> implement the one-hop solution later. >>> >>> user-space fd >>> | >>> | core skin fd table >>> v >>> kernel-space fd >>> | >>> | posix skin registry >>> v >>> actual object >>> >>> If we do this, there is not much re-factoring involved. >>> >>> The question really boils down to whether you accept this solution fo= r >>> the rtdm skin too. >> Let me check if I got the idea: the first change would only modify the= >> librtdm and the rtdm part of libpthread_rt, right? >=20 > The idea was to also modify the kernel-space skins. Only make it > superficial: only modify the part which communicates the file > descriptors to user-space, to include a lookup through the fd table. >=20 > So, this means that when a user-space applications calls read() for > instance, the fd table is used to get the kernel-space RTDM descriptor,= > and then the internal functions of the RTDM skin, go through their own > lookup mechanim to get the actual object. >=20 > So, there are two lookups, that is the two hops I was talking about. I > was worried that you would not like the impact on performance. Yes, I'm a bit. And I do not get the significant advantage of this approach over the final one-hop approach anymore. Jan --------------enigEF682DD8148B9A5D3BD3C031 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkrGX14ACgkQitSsb3rl5xS/GACeP5Q+VupXpsFbLg0y8k1OtWkv MqAAoOkDuZDrnfKRcWr7PHr9LyLRDFHX =Ya9l -----END PGP SIGNATURE----- --------------enigEF682DD8148B9A5D3BD3C031--