579 lines
15 KiB
Plaintext
579 lines
15 KiB
Plaintext
Performance Co-Pilot and IRIX
|
|
=============================
|
|
|
|
This document describes all the interfaces used by:
|
|
|
|
- irix/lib/libirixpmda
|
|
- eoe/cmd/pmdas/proc
|
|
|
|
to extract metrics from IRIX. Note that the same source tree can be used to
|
|
export metrics in 6.2, 6.3, 6.4 and 6.5. The macros IRIX6_X are used to
|
|
isolate code specific to one or more versions of IRIX.
|
|
|
|
----------------------------------------------------------------------------
|
|
The main functions used are:
|
|
|
|
sysmp()
|
|
syssgi()
|
|
sysget()
|
|
sysinfo()
|
|
attrget()
|
|
ioctl()
|
|
kmemread()
|
|
|
|
The less common functions used are:
|
|
|
|
getinvent()
|
|
scaninvent()
|
|
swapctl()
|
|
nftw()
|
|
setutent()
|
|
getutent()
|
|
mmap()
|
|
----------------------------------------------------------------------------
|
|
|
|
Use of the functions:
|
|
|
|
sysmp():
|
|
MP_SAGET: MPSA_BUFINFO, MPSA_EFS, MPSA_TCPIPSTATS, MPSA_LPGSTATS, MPSA_MINFO,
|
|
MPSA_NCSTATS, MPSA_CLSTAT3, MPSA_SVSTAT3, MPSA_CLSTAT, MPSA_SVSTAT,
|
|
MPSA_NODEINFO, MPSA_RCSTAT, MPSA_RSSTAT, MPSA_SOCKSTATS, MPSA_SERR,
|
|
MPSA_SINFO, MPSA_RMINFO, MPSA_VOPINFO, MPS_XFSSTATS
|
|
MP_SAGET1: MPSA_SINFO
|
|
MP_NPROCS
|
|
MP_NUMNODES
|
|
MP_KERNADDR: MPKA_MSGINFO, MPKA_MSG, MPKA_SEMINFO, MPKA_SEM, MPKA_SHMINFO,
|
|
MPKA_SHM, MPKA_AVENRUN, MPKA_VAR
|
|
MP_SASZ: MPSA_NODE_INFO
|
|
MP_SHMSTAT
|
|
MP_PGSIZE
|
|
|
|
syssgi():
|
|
SGI_DBA_GETSTATS
|
|
SGI_KAIO_STATS
|
|
SGI_EVENTCTR: HWPERF_GET_SYSCNTRS, HWPERF_GET_SYSEVCTRL
|
|
SGI_NUMA_STATS_GET
|
|
SGI_XLV_ATTR_CURSOR
|
|
SGI_XLV_ATTR_GET
|
|
SGI_XLV_ATTR_SET
|
|
|
|
(in hinv-* files)
|
|
SGI_GET_EVCONF
|
|
SGI_IO_SHOW_AUX_INFO
|
|
|
|
sysget():
|
|
SGT_SINFO
|
|
SGT_MSGQUEUE
|
|
SGT_KSYM: KSYM_VAR, KSYM_AVENRUN, KSYM_MSGINFO,
|
|
KSYM_VN_VNUMBER, KSYM_VN_EPOCH, KSYM_VN_NFREE
|
|
(uses SGT_COOKIE_SET_KSYM to get KSYM variants)
|
|
|
|
sysinfo():
|
|
_MIPS_SI_PROCESSORS
|
|
|
|
attrget():
|
|
INFO_LBL_DKIOTIME
|
|
INFO_LBL_DETAIL_INVENT
|
|
|
|
(in hinv-* files)
|
|
INFO_LBL_NIC
|
|
INFO_LBL_DETAIL_INVENT
|
|
|
|
ioctl():
|
|
SNODRV_GET_HUBINFO
|
|
GETSTRUCTSIZE
|
|
ROUTERINFO_GETINFO
|
|
XB_GET_VERSION
|
|
XB_ENABLE_MPX_MODE
|
|
XB_START_TIMER
|
|
XB_STOP_TIMER
|
|
|
|
(in proc files)
|
|
PIOCACINFO
|
|
PIOCNMAP
|
|
PIOCMAP_SGI
|
|
PIOCCRED
|
|
PIOCPSINFO
|
|
PIOCSTATUS
|
|
PIOCUSAGE
|
|
|
|
----------------------------------------------------------------------------
|
|
|
|
irix/lib/libirixpmda/aio.c
|
|
--------------------------
|
|
|
|
irix.kaio.*
|
|
syssgi(SGI_DBA_GETSTATS, &kaio_statbuf, sizeof(kaio_statbuf), -1);
|
|
-- -1 => summed accross all of the per CPU structure instances
|
|
- IRIX 6.5
|
|
|
|
syssgi(SGI_KAIO_STATS, &kaio_statbuf, sizeof(kaio_statbuf));
|
|
- other IRIXs
|
|
|
|
Note: kaio_statbuf is defined in aio.c as irix/kern/sys/kaio.h
|
|
is not exported in ROOT
|
|
|
|
Gets values for async I/O metrics directly out of dba_stat_t
|
|
record (<sys/dbacc.h> in IRIX 6.5).
|
|
|
|
irix/lib/libirixpmda/alldk.c
|
|
----------------------------
|
|
|
|
irix.disk.all.*
|
|
See spindle.c
|
|
|
|
|
|
irix/lib/libirixpmda/cntrl.c
|
|
----------------------------
|
|
|
|
irix.disk.cnt.*
|
|
See spindle.c
|
|
|
|
|
|
irix/lib/libirixpmda/disk.c
|
|
---------------------------
|
|
|
|
irix.disk.dev.*
|
|
irix.xpc.disk.dev.*
|
|
hinv.map.disk
|
|
hinv.disk_sn
|
|
See spindle.c
|
|
|
|
irix/lib/libirixpmda/engr.c
|
|
---------------------------
|
|
|
|
irix.engr.*
|
|
No longer supported, was kmem read of kernsymb[KS_ENGR]
|
|
|
|
irix/lib/libirixpmda/evctr.c
|
|
----------------------------
|
|
|
|
hw.r10kevctr.*
|
|
sysinfo(_MIPS_SI_PROCESSORS, buf, sizeof(buf));
|
|
- Determine the type of CPUs
|
|
- Is it r10K or not
|
|
syssgi(SGI_EVENTCTR, HWPERF_GET_SYSCNTRS, (void *)&Count));
|
|
- Retrieve counts
|
|
syssgi(SGI_EVENTCTR, HWPERF_GET_SYSEVCTRL, &evctr_args_get));
|
|
- Get global counter state <sys/hwperfmacros.h>
|
|
|
|
irix/lib/libirixpmda/filesys.c
|
|
------------------------------
|
|
|
|
irix.filesys.*
|
|
statfs();
|
|
|
|
irix/lib/libirixpmda/getblkstats.c
|
|
----------------------------------
|
|
|
|
irix.resource.buffer_cache.*
|
|
sysmp(MP_SAGET, MPSA_BUFINFO, &getblkstats, sizeof(struct getblkstats));
|
|
|
|
irix/lib/libirixpmda/hinv.c
|
|
---------------------------
|
|
|
|
hinv.* (majority)
|
|
getinvent();
|
|
|
|
irix/lib/libirixpmda/hubstat.c
|
|
------------------------------
|
|
|
|
irix.hub.*
|
|
ioctl(np->hubfd, SN0DRV_GET_HUBINFO, &(np->hub));
|
|
-- np->hub is of type hubstat_t <sys/SN0/hubstat.h>[6.4]
|
|
<sys/SN/SN0/hubstat.h>[6.5]
|
|
|
|
|
|
irix/lib/libirixpmda/hwrouter.c
|
|
-------------------------------
|
|
|
|
hinv.nrouter
|
|
hinv.map.router.*
|
|
hinv.nrport
|
|
hinv.map.rport
|
|
hinv.interconnect
|
|
hw.router.*
|
|
ioctl(fd, GETSTRUCTSIZE);
|
|
ioctl(fd, ROUTERINFO_GETINFO, r->stats);
|
|
r->stats of type router_info_t <sys/SN0/router.h>[6.4]
|
|
<sys/SN/router.h>[6.5]
|
|
|
|
irix/lib/libirixpmda/if.c
|
|
-------------------------
|
|
|
|
irix.network.interface.*
|
|
kmemread(offset, &ifp, sizeof(struct ifnet *));
|
|
- kernsymb[KS_IFNET]
|
|
|
|
irix/lib/libirixpmda/igetstats.c
|
|
--------------------------------
|
|
|
|
irix.resource.efs.*
|
|
sysmp(MP_SAGET, MPSA_EFS, &igetstats, sizeof(struct igetstats));
|
|
|
|
irix/lib/libirixpmda/irix.c
|
|
---------------------------
|
|
sysget(SGT_SINFO, (char *)&info, sizeof(info), SGT_INFO, &ck)
|
|
-- get the number of cells (_pm_numcells = info.si_num)
|
|
|
|
irix/lib/libirixpmda/kna.c
|
|
--------------------------
|
|
|
|
irix.network.tcp.*
|
|
irix.network.icmp.*
|
|
irix.network.igmp.*
|
|
irix.network.ip.*
|
|
irix.network.udp.*
|
|
irix.network.mbuf.*
|
|
irix.network.mcr.*
|
|
sysmp(MP_SAGET, MPSA_TCPIPSTATS, &kna, sizeof(struct kna));
|
|
|
|
irix/lib/libirixpmda/lpage.c
|
|
----------------------------
|
|
|
|
irix.mem.lpage.*
|
|
sysmp(MP_SAGET, MPSA_LPGSTATS, &lpage, sizeof(lpage));
|
|
|
|
irix/lib/libirixpmda/minfo.c
|
|
----------------------------
|
|
|
|
irix.mem.* (other than those exported by lpage.c and sysmp.c)
|
|
sysmp(MP_SAGET, MPSA_MINFO, &minfo, sizeof(minfo));
|
|
|
|
irix/lib/libirixpmda/msg.c
|
|
--------------------------
|
|
|
|
irix.ipc.msg.*
|
|
sysmp(MP_KERNADDR, MPKA_MSGINFO));
|
|
kmemread(msginfo_addr, &msginfo, (int)sizeof(msginfo));
|
|
sysmp(MP_KERNADDR, MPKA_MSG);
|
|
kmemread(msgds_addr, msgds, msginfo.msgmni * (int)sizeof(struct msqid_ds *));
|
|
- IRIX 6.2, 6.3, 6.4
|
|
SGT_COOKIE_INIT(&ck);
|
|
SGT_COOKIE_SET_KSYM(&ck, KSYM_MSGINFO);
|
|
sysget(SGT_KSYM, (char *)&msginfo, (int)sizeof(msginfo), SGT_READ, &ck);
|
|
-- msginfo of type msginfo <sys/msg.h>
|
|
sysget(SGT_MSGQUEUE, (char *)msgds_instance, msginfo.msgmni * (int)sizeof(struct msqid_ds *), SGT_READ, &ck);
|
|
- IRIX 6.5
|
|
|
|
irix/lib/libirixpmda/ncstats.c
|
|
------------------------------
|
|
|
|
irix.resource.name_cache.*
|
|
sysmp(MP_SAGET, MPSA_NCSTATS, &ncstats, sizeof(struct ncstats));
|
|
|
|
irix/lib/libirixpmda/nfs3_client.c
|
|
----------------------------------
|
|
|
|
irix.nfs3.client.*
|
|
sysmp(MP_SAGET, MPSA_CLSTAT3, &clstat, sizeof(clstat));
|
|
|
|
irix/lib/libirixpmda/nfs3_server.c
|
|
----------------------------------
|
|
|
|
irix.nfs3.server.*
|
|
sysmp(MP_SAGET, MPSA_SVSTAT3, &svstat, sizeof(svstat));
|
|
|
|
irix/lib/libirixpmda/nfs_client.c
|
|
---------------------------------
|
|
|
|
irix.nfs.client.*
|
|
sysmp(MP_SAGET, MPSA_CLSTAT, &clstat, sizeof(clstat));
|
|
|
|
|
|
irix/lib/libirixpmda/nfs_server.c
|
|
---------------------------------
|
|
|
|
irix.nfs.server.*
|
|
sysmp(MP_SAGET, MPSA_SVSTAT, &svstat, sizeof(svstat));
|
|
|
|
irix/lib/libirixpmda/nodeinfo.c
|
|
-------------------------------
|
|
|
|
irix.node.*
|
|
sysmp(MP_NUMNODES);
|
|
-- get number of nodes
|
|
sysmp(MP_SASZ, MPSA_NODE_INFO);
|
|
-- get node-info record size
|
|
-- allocate n_nodes*node_infosz
|
|
sysmp(MP_SAGET, MPSA_NODE_INFO, (char *)node_info, num_info * node_infosz);
|
|
-- get node-info records
|
|
|
|
irix/lib/libirixpmda/numa_node.c
|
|
--------------------------------
|
|
|
|
irix.numa.*
|
|
syssgi(SGI_NUMA_STATS_GET, node->hwgname, &node->numa);
|
|
-- gets num_stats_t record <sys/numa_stats.h>
|
|
|
|
irix/lib/libirixpmda/rpc_client.c
|
|
---------------------------------
|
|
|
|
irix.rpc.client.*
|
|
sysmp(MP_SAGET, MPSA_RCSTAT, &rcstat, sizeof(rcstat));
|
|
|
|
irix/lib/libirixpmda/rpc_server.c
|
|
---------------------------------
|
|
|
|
irix.rpc.server.*
|
|
sysmp(MP_SAGET, MPSA_RSSTAT, &rsstat, sizeof(rsstat));
|
|
|
|
irix/lib/libirixpmda/sem.c
|
|
--------------------------
|
|
|
|
irix.ipc.sem.*
|
|
sysmp(MP_KERNADDR, MPKA_SEMINFO);
|
|
kmemread(seminfo_addr, &seminfo, (int)sizeof(seminfo));
|
|
sysmp(MP_KERNADDR, MPKA_SEM);
|
|
kmemread(semds_addr, semds, seminfo.semmni * (int)sizeof(struct semid_ds *))
|
|
- IRIX 6.2, 6.3, 6.4
|
|
SGT_COOKIE_INIT(&ck);
|
|
SGT_COOKIE_SET_KSYM(&ck, KSYM_SEMINFO);
|
|
sysget(SGT_KSYM, (char *)&seminfo, (int)sizeof(seminfo), SGT_READ, & ck);
|
|
sysget(SGT_SEM, (char *)semds_instance, seminfo.semmni * (int)sizeof(struct semid_ds *), SGT_READ, &ck);
|
|
- IRIX 6.5
|
|
|
|
irix/lib/libirixpmda/shm.c
|
|
--------------------------
|
|
|
|
irix.ipc.shm.*
|
|
see shm_kmem.c
|
|
|
|
irix/lib/libirixpmda/shm_kmem.c
|
|
-------------------------------
|
|
|
|
sysmp(MP_KERNADDR, MPKA_SHMINFO);
|
|
-- get shminfo_addr
|
|
kmemread(shminfo_addr, &shminfo, (int)sizeof(shminfo));
|
|
|
|
sysmp(MP_KERNADDR, MPKA_SHM)
|
|
-- get shmds_addr (shm seg table)
|
|
kmemread(shmds_addr, shmds, max_shm_inst * (int)sizeof(struct shmid_ds *));
|
|
|
|
kmemread((off_t)shmds[i], &probe, (int)sizeof(struct shmid_ds));
|
|
- IRIX 6.2 and 6.3
|
|
sysmp(MP_SHMSTAT, &shmstat, sizeof(struct shmstat));
|
|
- IRIX 6.4 and 6.5
|
|
|
|
|
|
irix/lib/libirixpmda/socket.c
|
|
-----------------------------
|
|
|
|
irix.network.socket.*
|
|
sysmp(MP_SAGET, MPSA_SOCKSTATS, &sockinfo, sizeof(sockinfo));
|
|
|
|
irix/lib/libirixpmda/spindle.c
|
|
------------------------------
|
|
|
|
dsopen(sname, O_RDONLY);
|
|
fillg0cmd(dsp, (uchar_t *)CMDBUF(dsp), G0_INQU, 0, 0, 0, B1(sizeof(inqbuf)), B1(0));
|
|
filldsreq(dsp, (uchar_t *)inqbuf, sizeof(inqbuf), DSRQ_READ|DSRQ_SENSE);
|
|
doscsireq(getfd(dsp), dsp);
|
|
dsclose(dsp);
|
|
- ALL versions of IRIX
|
|
|
|
kmemread(s[i].s_iotime_addr, &iotim, sizeof(iotim));
|
|
kmemread(kernsymb[KS_DKSCINFO].n_value, &dkscinfo, sizeof(dkscinfo));
|
|
kmemread(kernsymb[KS_DKIOTIME].n_value, dksciotime, dksciotimesz);
|
|
kmemread((__psunsigned_t)dksciotime[c], &thisiot, sizeof(thisiot));
|
|
kmemread(kernsymb[KS_USRAID_SOFTC].n_value, usraid_softc, sizeof(usraid_softc));
|
|
kmemread(kernsymb[KS_USRAID_INFO].n_value, &usraid_info, sizeof(usraid_info));
|
|
- IRIX 6.2 and 6.3
|
|
|
|
attr_get((char *)s[i].s_hwgname, INFO_LBL_DKIOTIME, (char *)&iotim, &dkiotimesz, 0);
|
|
-- gets the the disk metrics out of the iotime struct <sys/elog.h>.
|
|
scaninvent((int (*)()) spindle_volume_filter, (void *)NULL);
|
|
- IRIX 6.4 and 6.5
|
|
|
|
|
|
|
|
irix/lib/libirixpmda/swap.c
|
|
---------------------------
|
|
|
|
irix.swapdev.*
|
|
irix.swap.{free,length,maxswap,vlength,alloc,reserve,used,unused}
|
|
swapctl(SC_LIST, swaptable);
|
|
swapctl(SC_GETNSWP, (int *)NULL);
|
|
|
|
irix/lib/libirixpmda/syserr.c
|
|
-----------------------------
|
|
|
|
irix.resource.fileovf
|
|
irix.resource.procovf
|
|
sysmp(MP_SAGET, MPSA_SERR, &syserr, sizeof(struct syserr));
|
|
|
|
irix/lib/libirixpmda/sysinfo.c
|
|
------------------------------
|
|
|
|
irix.swap.* (other than those exported in swap.c)
|
|
irix.kernel.all.* (except load and users)
|
|
irix.xpc.kernel.all.*
|
|
sysmp(MP_SAGET, MPSA_SINFO, &sysinfo, sizeof(sysinfo));
|
|
|
|
irix/lib/libirixpmda/sysinfo_mp.c
|
|
---------------------------------
|
|
|
|
irix.kernel.percpu.*
|
|
irix.xpc.kernel.percpu.*
|
|
sysmp(MP_NPROCS);
|
|
|
|
getinvent()
|
|
- IRIX 6.2 and 6.3
|
|
attr_get((char *)p, INFO_LBL_DETAIL_INVENT, info, &len, 0);
|
|
-- info typecast to (invent_generic_t *)info) to get ig_invclass
|
|
and (invent_cpuinfo_t *) to get cpu_invent fields
|
|
nftw(_PATH_HWGFS, percpu_filter, MAX_WALK_DEPTH, FTW_PHYS);
|
|
- IRIX 6.4 and 6.5
|
|
sysmp(MP_SAGET1, MPSA_SINFO, &sysinfo, sizeof(sysinfo), physcpu);
|
|
- All IRIX versions
|
|
|
|
sysmp(MP_SAGET1, MPSA_SINFO, &cpus[c].sysinfo, sizeof(sysinfo), cpus[c].map)
|
|
-- fetch the cpus info
|
|
|
|
irix/lib/libirixpmda/sysmp.c
|
|
----------------------------
|
|
|
|
irix.kernel.all.load
|
|
sysmp(MP_KERNADDR, MPKA_AVENRUN);
|
|
kmemread(addr, &load, sizeof(load));
|
|
- IRIX 6.2, 6.3, 6.4
|
|
SGT_COOKIE_INIT(&ck);
|
|
SGT_COOKIE_SET_KSYM(&ck, KSYM_AVENRUN);
|
|
sysget(SGT_KSYM, (char *)load, sizeof(load), SGT_READ | SGT_SUM, &ck);
|
|
- IRIX 6.5
|
|
|
|
irix.kernel.all.users
|
|
setutent();
|
|
getutent();
|
|
|
|
irix.mem.{freemem,availsmem,availrmem,bufmem,physmem,dchunkpages,pmapmem,
|
|
strmem,chunkpages,dpages,emptymem,emptymem}
|
|
sysmp(MP_SAGET, MPSA_RMINFO, &rminfo, sizeof(rminfo));
|
|
|
|
hinv.ncpu
|
|
sysmp(MP_NPROCS);
|
|
|
|
irix/lib/libirixpmda/var.c
|
|
--------------------------
|
|
|
|
irix.resource.{nproc,nbuf,hbuf,syssegsz,maxpmem,maxdmasz,dquot,nstream_queue,
|
|
nstream_head}
|
|
sysmp(MP_KERNADDR, MPKA_VAR);
|
|
kmemread(kaddr, &var, sizeof(struct var);
|
|
- IRIX 6.2, 6.3, 6.4
|
|
SGT_COOKIE_INIT(&ck);
|
|
SGT_COOKIE_SET_KSYM(&ck, KSYM_VAR);
|
|
sysget(SGT_KSYM, (char *)&var, sizeof(struct var), SGT_READ, &ck);
|
|
- IRIX 6.5
|
|
|
|
sysmp(MP_PGSIZE)
|
|
- all versions
|
|
|
|
irix/lib/libirixpmda/vnodestats.c
|
|
---------------------------------
|
|
|
|
irix.resource.vnodes.*
|
|
sysmp(MP_SAGET, MPSA_VOPINFO, &vnodestats, sizeof(struct vnodestats));
|
|
- get data from vnodestats <sys/ksa.h>
|
|
- All IRIX versions
|
|
kmemread(offset, &vn_vnumber, sizeof(vn_vnumber));
|
|
kmemread(offset, &vn_epoch, sizeof(vn_epoch));
|
|
kmemread(offset, &vn_nfree, sizeof(vn_nfree));
|
|
- IRIX 6.2, 6.3, 6.4
|
|
SGT_COOKIE_INIT(&ck);
|
|
SGT_COOKIE_SET_KSYM(&ck, KSYM_VN_VNUMBER);
|
|
sysget(SGT_KSYM, (char *)&vn_vnumber, sizeof(vn_vnumber), SGT_READ, &ck);
|
|
SGT_COOKIE_SET_KSYM(&ck, KSYM_VN_EPOCH);
|
|
sysget(SGT_KSYM, (char *)&vn_epoch, sizeof(vn_epoch), SGT_READ, &ck);
|
|
SGT_COOKIE_SET_KSYM(&ck, KSYM_VN_NFREE);
|
|
sysget(SGT_KSYM, (char *)&vn_nfree, sizeof(vn_nfree), SGT_READ, &ck);
|
|
- IRIX 6.5
|
|
|
|
irix/lib/libirixpmda/xbow.c
|
|
---------------------------
|
|
|
|
hinv.nxbow
|
|
hinv.map.xbow
|
|
irix.xbow.*
|
|
ioctl(xb_ptr->devfd, XB_GET_VERSION, &xbVersion);
|
|
-- test have correct xb version
|
|
ioctl(xb_ptr->devfd, XB_ENABLE_MPX_MODE, 0);
|
|
ioctl(xb_ptr->devfd, XB_START_TIMER, 0);
|
|
mmap(0,sizeof(xb_vcntr_block_t),PROT_READ,MAP_PRIVATE,xb_ptr->devfd,0);
|
|
munmap((caddr_t) xb_ptr->block, sizeof(xb_vcntr_block_t));
|
|
-- data retrieved through memory-map (onto type _pm_xbow in "xbow.h")
|
|
|
|
irix/lib/libirixpmda/xfs.c
|
|
--------------------------
|
|
|
|
irix.xfs.*
|
|
sysmp(MP_SAGET, MPSA_XFSSTATS, &xfsstats, sizeof(xfsstats));
|
|
- get data from xfsstats <sys/ksa.h>
|
|
|
|
irix/lib/libirixpmda/xlv.c
|
|
--------------------------
|
|
|
|
irix.xlv.*
|
|
syssgi(SGI_XLV_ATTR_CURSOR, &_cursor);
|
|
-- get cursor for subsequent syssgi commands
|
|
-- <sys/xlv_attr.h>
|
|
|
|
syssgi(SGI_XLV_ATTR_GET, &_cursor, &req);
|
|
-- req.attr = XLV_ATTR_LOCKS
|
|
-- get req.ar_num_locks, req.ar_max_locks
|
|
|
|
syssgi(SGI_XLV_ATTR_SET, &_cursor, &req);
|
|
-- req.attr = XLV_ATTR_FLAGS
|
|
-- set XLV_FLAG_STAT ??
|
|
|
|
syssgi(SGI_XLV_ATTR_GET, &_cursor, &req);
|
|
-- req.attr = XLV_ATTR_SUBVOL
|
|
-- xlv_load_subvols ??
|
|
|
|
syssgi(SGI_XLV_ATTR_GET, &_cursor, &req);
|
|
-- req.attr = XLV_ATTR_VOL
|
|
-- xlv_load_vols ??
|
|
|
|
syssgi(SGI_XLV_ATTR_GET, &_cursor, &req);
|
|
-- req.attr = XLV_ATTR_STATS
|
|
-- get the xlv stats for the fetch
|
|
|
|
|
|
|
|
eoe/cmd/pcp/pmdas/proc/pracinfo.c
|
|
---------------------------------
|
|
|
|
proc.accounting.*
|
|
ioctl(fd, PIOCACINFO, buf);
|
|
|
|
eoe/cmd/pcp/pmdas/proc/procmem.c
|
|
--------------------------------
|
|
|
|
proc.memory.*
|
|
ioctl(fd, PIOCNMAP, &nmaps);
|
|
ioctl(fd, PIOCMAP_SGI, &maparg);
|
|
|
|
eoe/cmd/pcp/pmdas/proc/pscred.c
|
|
-------------------------------
|
|
|
|
proc.pscred.*
|
|
ioctl(fd, PIOCCRED, buf);
|
|
|
|
eoe/cmd/pcp/pmdas/proc/psinfo.c
|
|
-------------------------------
|
|
|
|
proc.psinfo.*
|
|
ioctl(fd, PIOCPSINFO, buf);
|
|
|
|
eoe/cmd/pcp/pmdas/proc/psstatus.c
|
|
---------------------------------
|
|
|
|
proc.pstatus.*
|
|
ioctl(fd, PIOCPSTATUS, buf);
|
|
|
|
eoe/cmd/pcp/pmdas/proc/psusage.c
|
|
--------------------------------
|
|
|
|
proc.psusage.*
|
|
ioctl(fd, PIOCUSAGE, buf);
|