Sometimes I face with negative P1 value from the 10046 trace output of some sessions. The output like below
WAIT #9: nam=’latch: cache buffers chains’ ela= 1 p1=-4611686000696528624 p2=116 p3=0
When I try to convert this value to hexadecimal to use as an input to find the hot block (metalink note id 163424.1) . I searched internet, metalink but I couldn’t find any answer, till Ogun Heper, one of the members of Turkish Oracle Users (DBA & Developers), answered the reason of my problem.
The reason was simple, the sign bit of the p1 value was 1 and this causes to get negative value when using 64 bit OS.
If you want to convert it to hexadecimal value by using Glenn Fawcetts useful convertion script, you must first add 2 to the power 64 to the p1 value then convert the value to module 16.
You can find the modified script of Glenn Fawcett here