[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