Re: Direct SGA access problem because of structs' changing start addre
Date: Sun, 19 Jan 2014 15:53:29 +0100 (CET)
Message-ID: <trinity-d2c97305-50b1-4b80-869d-cad4ae547730-1390143209255_at_3capp-gmx-bs27>
Hi, thanks,
now I understand what Jonathan meant by "checking the right variables in x$ksmfsv" ;-) - this is the same address I get from querying
SQL> select ksmfsadr, ksmfstyp, ksmfsnam, ksmfssiz from x$ksmfsv where ksmfsnam like 'ksusga%'; KSMFSADR KSMFSTYP KSMFSNAM KSMFSSIZ
---------------- ------------------------------ ------------------------------ ----------000000006000A658 ksusg ksusga_ 1456
But then, it should be possible to find out the locations of individual pointers in that structure by reading that from location and comparing to the actual min(addr) of k$ksuse, x$ksupr etc., right? Now when I look in x$ksmmem (my direct access Haskell code having different problems still ;-)), shouldn't I see x$ksuse's min(addr) as a ksmmmval, somewhere between address 000000006000A658 and 000000006000A658 + 1456 bytes?
SQL> select (select min(addr) from x$ksuse), (select min(addr) from x$ksupr) from dual; (SELECTMIN(ADDR) (SELECTMIN(ADDR)
---------------- ----------------
00000000A21FC9B8 00000000A21CB4E8
[oracle_at_node4 ~]$ grep -e 00000000A21FC9B8 -e 00000000A21CB4E8 ksmmem.txt
000000006000A6A0 00000000A21CB4E8
000000006000ADB8 00000000A21CB4E8
[oracle_at_node4 ~]$
But there is a matching entry in the required range only for x$ksupr (the upper one), there's none for x$ksuse... Or are there additional layers of indirection ("pointers in the middle")?
One other thing, I was wondering if that approach could be used for x$ksmsp, too: SQL> select ksmfsadr, ksmfstyp, ksmfsnam, ksmfssiz from x$ksmfsv where ksmfsnam like 'ksmsp%'; KSMFSADR KSMFSTYP KSMFSNAM KSMFSSIZ
---------------- ------------------------------ ------------------------------ ----------000000006000CA78 struct ksmsst * ksmspst_ 8
[oracle_at_node4 ~]$ nm /oracle/base/product/12.1.0.1/dbhome_1/bin/oracle | grep ksmspst
000000006000ca78 A ksmspst_
But the ksmmmval at location 000000006000ca78 is "00"... so perhaps that structure is not the right one (though it's name sounded "closest" so to say)?
Thanks again,
greetings,
Sigrid
-- http://www.freelists.org/webpage/oracle-lReceived on Sun Jan 19 2014 - 15:53:29 CET