Unexpected errno from socket call on SPARC 1000 server

Unexpected errno from socket call on SPARC 1000 server

Post by Jerry L. Marc » Thu, 01 Dec 1994 06:30:27



  System: SPARC 1000 server, multi-processors, Solaris 2.3

Hi,

  I'm developing a client-server system which involves 48 clients and one
  server.  Each client uses about 8 file descriptors--some tcp/ip, some
  udp/ip.  Also, each client forks a child to do some special processing
  and eventually the child exits after completing the task.  The client
  repeats the forking as needed.

  The problem I'm running into is that the whole system comes up properly;
  one client successfully forks a child to do that special processing; which
  then completes and exits; and the next time the client forks again and try
  to get a socket (using socket(AF_INET, SOCK_STREAM, 0)), it gets an `errno'
  of ENOENT (No such file or directory).  This doesn't really make sense
  since if there aren't enough system resources, I would have expected to get
  an `errno' of EMFILE, ENOMEM, or ENOSR instead of ENOENT.  The ulimit of
  that process is set to a maximum of 512 open file descriptors.  Also, if
  I only have 8 clients instead of 24, the whole system works properly and
  repeatedly.

  I would be really appreciative if anyone has any insight on this problem.
  Please either post a response or mail directly to me.

  Thanks,

    Ed


 
 
 

1. Sparc Server 1000 slow to move memory

I finally tried to measure memory move speed on our Sparc Server 1000.
It has 4 50MHz cpu modules (TI,TMS390Z55 from prtconf) .

What I find is that when I use my own version of memcpy, (which I am
pretty proud of, a lot better on big transfers than the one in the C
library) I find that a Sparc 10 with a 40MHz (TI,TMS390Z50) runs 20%
faster.  With suns own memcpy the sparc 10 is about 30 % faster (its
speed is dependent on alignment and cache collisions).

Now I have read these white papers about this fantastic XDbus, with
throughput up to 250MB/s. I have also studied this magnificent cache
management.

I have also read about this bcopy/bzero accelerators. Where are they?
Not in the c library memcpy at least. But from my device writer
experience I have not seen anything very fast. Are they used somewhere
in the kernel under Solaris 2.2? Under Solaris 2.3 ?

Now doing memcpy of memory around is not very useful. But I have an
application that reads a lot of memory, does a lot of bitfickling,
checks the data a bit and demultiplexes the data (turns a big matrix
around). Now this application moves data around as fast as my own
very much tuned memcpy (I hope) !

 I also see that even though the cpu should be 25% faster, this
application only speeds up less that 15%. Seems like I have hit the
memory move barrier.

One thing more. When I do several processes to move memory in paralell
the speed fell with 25 %. We should be prety far from the 250MB/s
limit of the XDBUS.

Comments ?

The numbers:

Copying 2 MB 100 times:
        on Sparc Server 1000: 10.5 seconds 19 MB/s on the fastest
                              12.5 seconds 16 MB/s on the slowest

Very dependent on small differences. Proberly becauce of cache lengths and collisions.

        on Sparc 10:          8.1 seconds  24.7 MB/s

--
Thorbj?rn Willoch                      | Schlumberger Geco-Prakla
Phone: +47-67575548                     | Jongs?svn 4

2. XFree86.conf AutoRaise

3. Several keyboards on a Sparc Server 1000 ?

4. help with unix mail

5. automount problems with patch 101945-29 on sparc server 1000

6. Video problem with a Dell OptiPlex GL 575

7. console & sun sparc server 1000

8. Konqueror 2.2.1 Javascript isn't great

9. Sparc Server 1000 crashes with vn_rele: vnode ref count 0

10. RUNNING WABI FROM SPARC 1000 SERVER

11. Sparc Server 1000 HUNG?

12. SUN SPARC Server 1000 problem

13. Xfree 3.3.3 and Diamond Fire GL 1000 Pro,(errno 2) any ideas?