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

/dale
--
Dale Ghent
Specialist, Storage and UNIX Systems
UMBC - Office of Information Technology
ECS 201 - x51705



_______________________________________________
OpenAFS-info mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-info

Reply via email to