-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I'm currently trying to optimize my multicast UDP streaming application
as much as I can, and was wondering if there is a way to read() multiple
pending packets from the socket layer. I'm trying to squeeze every last
bit of performance out of the machine (Netra 240), since I'm trying to
receive a stream of several hundred Mbit/s worth of TV channels for
integrity monitoring.

Currently I top out at ~640Mbit/s and ~57000 packets/s. However, due to
me only being able to read() on a per-packet basis, the machine ends up
doing roughly 60000 syscalls every second. Between every read cycle I do
a usleep(50000) to make sure that there are several packets waiting for
me in the kernel buffers (to avoid extensive context switching).

Also, I can see that all interrupts from the NIC (bge1) are hitting
CPU0, which is significantly more loaded as a result (mpstat):

CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
  0    0   0    5 11145 11038  213   31   34   78    0  1455    0  92
0   7
  1    0   0    5   293  286  229   35   36   66    0 59380    7  64   0  29

Even though my app supports running in multiple threads, currently CPU0
is completely occupied by interrupt handling from the NIC. Is there a
way to load-balance interrupts from a single NIC between both CPUs, or
do I have to connect another NIC to the network and try to load-balance
the bitrates at a higher level? (e.g. request half of the channels
through one NIC, and half through the other) Currently I'm running S10
on the machine (Generic_137111-08), but if OSol supported this kind of
functionality, I'd happily reinstall it.

Thanks in advance for any advice.

Regards,
- --
Saso
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAktJClQACgkQRO8UcfzpOHBUEQCgjB7EMjIV7E8KzpIyt/p6756+
YHkAoKqbOHZuQx5lPRG4+mZ9+5Bf8ynf
=wxY3
-----END PGP SIGNATURE-----
_______________________________________________
networking-discuss mailing list
networking-discuss@opensolaris.org

Reply via email to