It is widely known that the Oracle server uses kslgetl – Kernel Service Lock Management Get Latch function to acquire the latch. In 2006 Tanel Poder first demonstrated that oradebug call kslgetl/kslfre can be used to acquire the latch manually. This is very useful to simulate latch related hangs and contention.
For several years it was commonly supposed that kslgetl() has two parameters – latch address and wait. But on AIX 5L we have unique procstack tool. This tool shows the actual number of parameters for function. It occurs that kslgetl has four parameters:
... sskgpwwait(??, ??, ??, ??, ??) + 0x38 skgpwwait(??, ??, ??, ??, ??) + 0xbc kslges(??, ??, ??, ??, ??) + 0x54c kslgetl(??, ??, ??, ??) + 0x33c ksfglt(??, ??, ??, ??, ??) + 0x198 ...
We do know the meaning the first two of parameters. What about the others? (more…)