[OpenAFS-devel] [REVIEW] Can haz Solaris 10 8/07 compatibility patch
Matt Kolb
mk@msu.edu
Thu, 27 Sep 2007 10:18:23 -0400
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.
mk@dev% 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.
mk@dev% 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)
mk@dev% pwd
/afs/msu.edu/user/m/k/mk/home
mk@dev% time rm -rf devhome
Real: 0.53s User: 0.00s System: 0.05s Percent: 9% Cmd: rm -rf devhome
mk@dev% du -h devhome.tar
111M devhome.tar
mk@dev% time tar -xf devhome.tar
Real: 161.00s User: 0.12s System: 9.13s Percent: 5% Cmd: tar -xf
devhome.tar
mk@dev% 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 <mk@msu.edu>
Academic Computing & Network Services
Michigan State University