On 01/09/2020 05:31, Ian Caddy wrote:

On 1/09/2020 10:48 am, Chris Johns wrote:
On 1/9/20 6:14 am, Cudmore, Alan P. (GSFC-5820) wrote:
I am having problems using the “select” call with an RTEMS + LibBSD network socket.

I’m trying to use “select” to check the socket (using a timeout of zero), but
when I call select I get a -1 return code with EBADF errno.
I suspect you have hit the FD set size limit.

The fd in this instance is 77 and I have RTEMS setup for 200 file descriptors. Are there any other LibBSD configuration parameters I should be aware of? When I build a SPARC/LEON3 BSP with the RTEMS legacy network stack, the select call seems to work. Admittedly I am just doing this on the loopback interface on QEMU since I do not have a real or simulated ethernet device to use. But the
select call seems to work as I would expect in this instance.
What is the fd for that stack? I suspect the fd is less than 64.

I can confirm what Chris is saying and that the RTEMS4.10 stack has a FD setsize of 64 as well, but the old network stack gets the fd's from the bottom, so as long as you have less than 64 files and sockets open you will be OK.

With LIBBSD, it seems much more random and even getting one of more sockets can get you over the default 64 limit, as you are seeing with the fd=77.

In RTEMS 5.1 the file descriptor list is a LIFO in contrast to previous versions where it was a FIFO. This means if an application regularly opens and closes files (or sockets) it sees the whole range of file descriptors. The reason for this change was to increase the time before file descriptors are reused to more likely catch a file descriptor use after close.

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to