[OpenAFS-devel] Re: progress... sortof...

Neulinger, Nathan nneul@umr.edu
Wed, 28 Apr 2004 20:36:49 -0500


> I'd be very surprised if the call/return you incur by not=20
> inlining these
> calls is amounting to any noticeable amount of overhead...

Maybe not... but if you take a look at some of the call counts with
xstat_cm_test on some of my machines - even if the improvement is
negligable, shrinking the code path on something executed so many times
has got to have some improvement. The below numbers are from one of my
machines that has been up for 4 days.=20

           1456177 afs_open
           1543772 osi_Free
           1554317 osi_Alloc
           1601603 afs_close
           2225818 osi_Read
           2468900 afs_newslot
           2468900 FixupBucket
           2901946 osi_Close
           2901947 osi_UFSOpen
           2998982 osi_FreeLargeSpace
           2998983 osi_AllocLargeSpace
           5288368 afs_inactive
           6788037 DVOffset
           8112868 afs_GetVCache
          10254372 afs_lookup
          11085536 afs_GetDCache
          11833633 afs_UFSGetDSlot
          13718420 afs_FindVCache
          13754548 afs_CheckCode
          30356351 afs_PutDCache
          33980702 DRelease
          34441831 DRead
          53935533 afs_GetVolume
          59459894 afs_PutVCache
          60593994 afs_access
          71869043 afs_AccessOK
          71869043 afs_GetAccessBits
         122447789 afs_get_pag_from_groups
         131328561 afs_InitReq
         131397954 PagInCred
         135742910 afs_CopyOutAttrs

> > Also seems like there is some serious room for optimization of the
> > xcache lock when doing lots of putvcache ops in a row... Another
> > time...
>=20
> Similarly, under GLOCK, obtaining and releasing locks is just a simple
> increment or decrement operation..  And infact, these lock calls _are_
> being inlined, although I'd rather they were real functions (this may
> actually speed up things, on modern CPUs).

-- Nathan