Hi, all. I'm writing a lib to build 9P200 file servers for x86-class embedded systems under RTEMS. Testing the same server under FreeBSD and RTEMS with one Plan9 or FreeBSD p9p client I noted some things that I don't understand. Config: Server = adri (FreeBSD 6.2+fuse+p9p) or leo (RTEMS 4.6.5), same behaviour Client = dria (Plan9 or FreeBSD 6.0+fuse+p9p) 1) Different use of Fids in Plan9 and p9p Plan9% srv tcp!adri!12000 adri Plan9% mount /srv/adri /n/adri Plan9% lc /n/adri (several times) Plan9% unmount /n/adri FrBSD% srv 'tcp!adri!12000' adri FrBSD% 9 mount NS/adri /n/adri FrBSD% lc /n/adri (several times) FrBSD% 9 unmount /n/adri The log of the two sessions above are in the the attached files. I see that the FreeBDS "lc" command allocates a lot of Fids while Plan9 reuse them issuing Tclunk messages as soon as possible. My server use a static Fid table (FidTab=/ in the logs). The number of allocated Fids grows (until the unmount) so a larger table (or malloc-ed Fids) is not a solution. 2) Different use of Fids in Plan9 and p9p The Unix "ls" reuse the Fids as the "lc" does. 3) Tread >[ 23] Tread: tag=4, fid=201, offset=0, count=8192 <[292] Rread: tag=4, count=281 E\0\0\0\0\0\0\0\0\0\0\0\0\32\1\0\0\0\0\0\0\37777777666\1\0\0\0 \0\0\0\0\0\0\0\20\0\0\0\0\0\0\0\7\0file_0a\7\0adriano\7\0adr >[ 23] Tread: tag=4, fid=201, offset=281, count=8192 <[ 11] Rread: tag=4, count=0 Why the client always sends a second Tread request ? If the Rread returned 281/8192 bytes and the msize is > 8192 it should be clear that there is no other data to read. Thanks in advance A. Verardo