On Sep 26, 2007, at 7:35 PM, Dale Ghent wrote:
Here's a candidate patch for those of you running any version of
Solaris 10, or have hopes of running OpenAFS on Solaris 10 8/07
(update 4);
This patch removes use of the non-Public ILL structures by OpenAFS
to gather network interface information in order to make RX packet
size and server locality decisions. I replaced it with a Solaris
taskq(9f) that executes a function which polls the network
interfaces on the machine and populates a global array with
collected information. Network information consumers then walk this
array to gain the info they require. This polling function, by
default, runs every 30 seconds.
I made a design change from previous versions in that I dispensed
with the while(1) loop for the polling mechanism. The
osi_NetIfPoller function now chains itself.
The interval between polls may be adjusted either by /etc/system or
in real time by the use of mdb:
Set afs interface poll interval to 15 seconds using /etc/system:
set afs:afs_if_poll_interval=15
Get current poll interval using mdb:
# echo afs_if_poll_interval/D | mdb -k
afs_if_poll_interval:
afs_if_poll_interval: 30
Set a new poll interval to 15 seconds (in hex):
# echo "afs_if_poll_interval/W 0f" | mdb -kw
afs_if_poll_interval: 0x1e = 0xf
You may see if the poller is doing its job by watching the
"executed" line of the afs_taskq kstat:
# kstat -n afs_taskq
module: unix instance: 0
name: afs_taskq class: taskq
crtime 141.142208577
executed 126
maxtasks 1
nactive 2
nalloc 0
priority 60
snaptime 2286.25972396
tasks 126
threads 2
totaltime 28790720
The following patch applies against OpenAFS 1.4.4. I urge that it
be tested on any version of Solaris that you may have at your
disposal, not just 10u4. Please discuss any issues on the -devel list.
http://elektronkind.org/outbox/afs/openafs-s10u4-compat.patch
I am working on a Sun X4600 with 16 AMD64 cores.
[EMAIL PROTECTED] uname -a
SunOS dev 5.10 Generic_120012-14 i86pc i386 i86pc
I've applied this patch to a fresh download of the 1.4.4 source. It
applied cleanly. I built the source with the Sun Studio 11, and made
dest. I installed the userland binaries and the kernel modules.I did
not tweak afs_if_poll_interval. I only tested the client; I do not
run our server instances.
[EMAIL PROTECTED] modinfo |grep afs
161 ffffffffef697000 b26c0 65 1 afs (afs syscall interface)
161 ffffffffef697000 b26c0 65 1 afs (afs syscall interface(32 bit))
161 ffffffffef697000 b26c0 23 1 afs (afs filesystem)
[EMAIL PROTECTED] pwd
/afs/msu.edu/user/m/k/mk/home
[EMAIL PROTECTED] time rm -rf devhome
Real: 0.53s User: 0.00s System: 0.05s Percent: 9% Cmd: rm -rf devhome
[EMAIL PROTECTED] du -h devhome.tar
111M devhome.tar
[EMAIL PROTECTED] time tar -xf devhome.tar
Real: 161.00s User: 0.12s System: 9.13s Percent: 5% Cmd: tar -xf
devhome.tar
[EMAIL PROTECTED] sudo kstat -n afs_taskq
module: unix instance: 0
name: afs_taskq class: taskq
crtime 512.726134758
executed 50
maxtasks 1
nactive 2
nalloc 0
priority 60
snaptime 2003.716393381
tasks 50
threads 2
totaltime 10678353
Everything seems to be fine at this point. Thank you very much for
your work Dale. My team relies on AFS for homedirs and other uses,
so we will all be testing it over the coming weeks. I will certainly
speak up if we have trouble.
Thanks again,
./mk
--
Matt Kolb <[EMAIL PROTECTED]>
Academic Computing & Network Services
Michigan State University
_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel