Hi,

On 10-Feb-06, at 16:39, dima wrote:

The second CPU wouldn't help you for sure. There's only one [swi1: net] kernel thread which deals with all the kernel traffic. The option of per-CPU [swi: net] threads was discussed on freebsd-arch@ several months ago, but it wouldn't be implemented soon.
 So, the only hardware option is installing the fastest CPU possible.

Ok, the statement above answers my first question clearly and concisely (although I must confess I am a bit confused after reading Robert Watson's message).



There are several software (FreeBSD specific) options though:
1. You should surely try polling(4). 50kpps mean 50000 interrupts and the same amount of context switches, which are quite expensive. 2. FastForwarding. It's the most suitable for you. As I know, Quagga inserts its dynamic routes to the system routing table. And FastForwarding is aware of routing table and firewall rules. And the most exciting: you can switch it on/off without reboot:
# sysctl net.inet.ip.fastforwarding=1

This morning a tried suggestion number 2.

I had HOST-A running a ping session to HOST-B. Between hosts A and B there was the heavily loaded FreeBSD machine in question. As soon as I entered 'sysctl net.inet.ip.fastforwarding=1' the ping session died. Switching fastforwarding back to 0 resumed the session.

It's very unfortunate we can't afford to have that machine down, even for a couple of minutes, during daytime. I guess I'll have to read more about polling and the net.inet.ip.fastforwarding option, before giving it another try (probably around 3 a.m.)

Thanks for your reply.

Regards,

--
Marcos

_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to