bparent@sdcc6.ucsd.EDU (Brian Parent) (07/14/87)
Thanks for all the suggestions. Most of all, thanks to Mark Plotnick who writes: >If your sun-2 is using a 3com ethernet controller, >the sun-3 will flood it with packets faster than it can receive them. >use adb to patch the window size, ndclient_maxpacks, in >/pub.MC68020/vmunix to 1 or 2 (it's 6 by default). or use an ie >controller in the sun-2. This works. I'm currently using 2 and in ~4 days of use have seen not one message complaining about the nd disk server not responding. Let me add some details of the patching procedure for those not so familiar with kernel patching (myself included). (Wizards, please excuse the obvious.) To get the address of the variable in the kernel, I used: % nm vmunix | grep maxpacks 0f061dc8 D Then adb the kernel: % adb -w vmunix ask for the value at that address: 0f061dc8?D _ndclient_maxpacks: _ndclient_maxpacks: 6 change the value: .?W 2 _ndclient_maxpacks: 0x6 = 0x2 check value again: .?D _ndclient_maxpacks: _ndclient_maxpacks: 2 and you're done. Again, I'm thankful for your collective help. (Recently, I've found out that this is a known bug among the folks at Sun, but their database pointed to changing Maxpacks for the server via nd.local commands, not the ndclient_maxpacks variable in the client's kernel. After talking to Sun software support, I'm sure they'll update their database.) -Brian Parent
hedrick@topaz.rutgers.edu (Charles Hedrick) (07/14/87)
I thought that in current releases of Sun OS, the max packet size is set in /etc/nd.local. It's an extra argument that can go at the end of the line. Clearly it's better to do it just for the one host that needs it. I didn't think you needed to patch the kernel. Am I wrong?
bparent@sdcc6.ucsd.EDU (Brian Parent) (07/16/87)
In article <13315@topaz.rutgers.edu> hedrick@topaz.rutgers.edu (Charles Hedrick) writes: >I thought that in current releases of Sun OS, the max packet size is >set in /etc/nd.local. It's an extra argument that can go at the end >of the line. Clearly it's better to do it just for the one host that >needs it. I didn't think you needed to patch the kernel. Am I wrong? Yes, the max packet size can be set for the *server's* kernel using /etc/nd.local. However, this is not enough to keep the faster sun-3 client from drowning the sun-2's 3comm controller. (It doesn't work like hardware flow control as I also assumed at the start of my problem.) You definitely need to patch the *client's* kernel so that it doesn't send too many packets too quickly.