What is the ARM MMU Memory Attribute 'P' field? - arm

I'm working on the L1 Descriptor MMU Table entries for an ARMv7A device and cannot find information about the 'P' field from either the Cortex A-Series Programmer's Guide, or the Architecture reference manual for ARMv7-A and ARMv7-R. I have found information about all the other fields, including the TEX field, but am stuck on P.
Is this info in either of these two books (which section/chapter?) or in another manual.
According to Figure 9-5, page 9-8, of ARM DENN0013D (ARM Cortex-A Series Programmer's Guide), the entries to a Level 1 MMU page table has this format:
SectionBaseAddress : SBZ : 0 : nG : S : APX : TEX : AP : P : Domain : XN : C : B : 1 : 0
for a 1MB section entry.
But what does the 'P' bit (in-between the AP Access Permissions and deprecated Domain fields) mean? I can't find any information about "P".
Cheers.

Related

Number of writes in Oracle database

Is there a view to get statistics about the number of writes per day in an Oracle database, and the amount of data associated ?
I had a view over these : V$METRIC_HISTORY, V$METRIC, but I did not find something so relevant about that.
Thanks for your suggestions
I would recommend looking at DBA_HIST_FILESTATXS view :
DBA_HIST_FILESTATXS displays information about file read/write statistics. This view contains snapshots of V$FILESTAT.
Following columns should be of interest for you :
PHYWRTS : Number of times DBWR is required to write
PHYBLKWRT : Number of blocks written to disk, which may be the same as PHYWRTS if all writes are single blocks
Note :
if you want to know the volume written, you need to multiply PHYBLKWRT with BLOCK_SIZE
if you want to filter by dates, you have to JOIN with view dba_hist_snapshot, that stores the snapshot history

How To Read MVS System Catalog To Retrieve GDG Information?

I have a job (JCL) on the mainframe where I want to programmatically retrieve a particular GDG file's recent relative generation numbers from the system catalog (API call)...where I can then programmatically dig thru the results returned by the call to figure out the relative generation numbers. This is similar to doing TSO 3.4 on the GDG base file name where the most recent generation numbers can be seen. IDCAMS doesn't appear to return information in a format that is friendly to a program. Thanks!
Example: GDG BASE NAME: TEST.FILE
GDG generations: TEST.FILE.G0010V00
TEST.FILE.G0011V00
TEST.FILE.G0012V00
Take a look at IGGCSI00, the catalog interface. You can call it from any program (REXX, CLIST, COBOL, assembler, PL/I), and it offers a lot of flexibility. Of course, like a lot of IBM flexible solutions, there is always some obtuseness.
There are lots of examples around the Internet, but the sample program in SYS1.SAMPLIB(IGGCSIRX) is excellent.
Programatically (in assembler language), you could use the LOCATE SVC, with CAMLST specifying the parameter list,to get the information you're seeking -- here's a reference: https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v2r1.idas300/s3099.htm -- the example there shows only how to use that to get a volume list, but I used it in the early '80s to get the G-V- (generation-version) subname qualifiers corresponding to the relative index numbers -- pass the GDG base DSNAME and you get all the gens -- if you'd like to see some threads on this, maybe search bit.listserv.ibm-main -- you could also search the online IBM manuals with the term "Generation Index Pointer Entry" (GIPE), which is a pivotal part of the associated control blocks ...
Your choices include:
IDCAMS/TSO Listcat and writing a program to reformat
Rexx ListDsi command
In particular for the the ListDsi you can have the following in the JCL
//MYGDG DD DSN=my.gdg(0),DISP=SHR
and in the rexx program
x = ListDsi("MYGDG FILE")
say SYSDSNAME
You could also use Background ISPF services but that is an overkill for this
**Note:* to runn rexx, You need to Run TSO
//* job statement
//TSOBATCH EXEC PGM=IKJEFT1A,DYNAMNBR=200
//SYSEXEC DD DSN=userid.REXX.EXEC,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//MYGDG DD DSN=my.gdg(0),DISP=SHR
//SYSTSIN DD *
PROFILE PREFIX(userid) /* specifying a userid*/
%MYREXX

How do I find the size of a DB2 (luw) database?

I know you can look at the size of an uncompressed backup, but that's not practical.
Is there a command to find the size of the database while it is online? (In Linux/Unix/windows)
When connected to a database as db2admin (or with similar permissions), use the following command:
call get_dbsize_info(?,?,?,-1);
The first three parameters are output parameters:
Value of output parameters
--------------------------
Parameter Name : SNAPSHOTTIMESTAMP
Parameter Value : 2014-06-17-13.59.55.049000
Parameter Name : DATABASESIZE
Parameter Value : 334801764352
Parameter Name : DATABASECAPACITY
Parameter Value : 1115940028416
Return Status = 0
The size is given in bytes, so divide by 1024^3 to get Gb.
The final parameter is how often the snapshot is refreshed. -1 is to use default settings.
Further reading...
Note: This command does not take into account logs, etc. - so, it may appear much larger on disk.
Use db2top
l(for session)
p(when press small p it will show the total size of db n used size of db)
For specific schema, in KBytes, use:
SELECT sum(TOTAL_P_SIZE) FROM (
SELECT TABNAME, (DATA_OBJECT_P_SIZE + INDEX_OBJECT_P_SIZE + LONG_OBJECT_P_SIZE +
LOB_OBJECT_P_SIZE + XML_OBJECT_P_SIZE) as TOTAL_P_SIZE
FROM SYSIBMADM.ADMINTABINFO
WHERE TABSCHEMA='PUBLIC'
)
Reference: https://www.ibm.com/support/pages/how-do-i-find-out-disk-space-usage-managing-server-octigate-database-tables
Following command will show you memory used by database online :
db2pd -dbptnmem
You can monitor variety of stuff with db2pd command :
https://www.ibm.com/docs/en/db2/11.1?topic=commands-db2pd-monitor-troubleshoot-db2-engine-activities

Query regarding SNMP get

Recently we were making MIB files for NMS system, while doing so I came across that after deploying the MIBs on Linux machine to query it I need to add 101.1 at the end, where as for standard Linux mibs only .0 needs to be appended. I am not able to understand this that why my value is returned in 101.1 and not .0.
For example when I do this with linux MIBs I get the value
snmpget -v 2c -c public localhost 1.3.6.1.2.1.1.3.0
SNMPv2-MIB::sysUpTime.0 = Timeticks: (105543) 0:17:35.43
But for my mib to work I need to append 101.1
snmpwalk -v 2c localhost -c public .1.3.6.1.4.1.****.1.2.3.101.1
SNMPv2-SMI::enterprises.****.1.2.3.101.1 = STRING: "388 MB"
When I do a walk with my MIB I get the following .
snmpwalk -v 2c localhost -c public .1.3.6.1.4.1.****.1.2.3
SNMPv2-SMI::enterprises.****.1.2.3.1.1 = INTEGER: 1
SNMPv2-SMI::enterprises.****.1.2.3.2.1 = STRING: "getSystemMemoryUsage.sh"
SNMPv2-SMI::enterprises.****.1.2.3.3.1 = STRING:
"/opt/nagios/plugins/fetch_scripts/System/getSystemMemoryUsage.sh"
SNMPv2-SMI::enterprises.****.1.2.3.100.1 = INTEGER: 0
SNMPv2-SMI::enterprises.****.1.2.3.101.1 = STRING: "388 MB"
SNMPv2-SMI::enterprises.****.1.2.3.102.1 = INTEGER: 0
SNMPv2-SMI::enterprises.****.1.2.3.103.1 = ""
Can any one advice why such behavior in our MIB and what needs to be done so that my MIB behave like Linux Mibs where I just add .0 at the end and get the value.
The OBJECT TYPE is scalar for all .
Thanking you all in advance
The MIB nomenclature supports data represented as table's rows and non-tabular scalars. Data which are presented as scalars are accessed by using OID.0 index. The ".0" part indicates access to scalar object - single object instance in the system. The tables contain columns (each column represent some kind of data) and rows (each row represent a table instance - some kind of entity which does support that table).
In your example, you try to access some table in your Enterprise MIB. This table contain an index (there may be single or multiple indexed MIB tables). To determine first available index in that table you can start with snmpgetnext command in following way:
snmpgetnext -v2c -c public localhost .1.3.6.1.4.1.****.1.2.3
or
snmpgetnext -v2c -c public localhost .1.3.6.1.4.1.****.1.2.3.0
or
snmpgetnext -v2c -c public localhost .1.3.6.1.4.1.****.1.2.3.0.0
As you can see all of the above commands give you first existing row instance by updating two last OID parts (.0.0). These two OIDs don't have to be specified explicitly, therefore you may use only one null-index (.0) or even don't have to specify them at all.
To understand how these table's indexes are described you need to refer to your Enterprise MIB - find table described by this OID: .1.3.6.1.4.1.**.1.2.3 and learn about indexing scheme and what does these indexes represent. Well-written MIB should contain this information.
Interpretation may be following:
*.1.1 = 1 - data column with id=1 for entity index 1
*.2.1 = "getSystemMemoryUsage.sh" - data column with id=2 for entity index 1 representing script name (STRING syntax)
*.3.1 = "/opt/nagios/plugins/fetch_scripts/System/getSystemMemoryUsage.sh" - data column with id=3 for entity index 1 representing full script's path (STRING syntax)
*.100.1 = 0 - data column with id=100 for entity index 1 representing some INTEGER value
and so on...
Column indexing (.1, .2, .3, .100, .101 ...) may contain gaps if MIB designers expect to add some columns in future between .3 and .100. or simply entity index 1 does not support these columns (if they are defined in MIB). It is allowed to skip empty columns.
If you would like to read about differences between scalar and columnar objects, please refer to i.e. RFC1212.

Entity relationship

I have started develping database for machineries performance mgt system
Facts:
1.A machine(platNo,model,name) can work on several cane fields(fieldNo,fieldNo)
- machine vs field
2.Many machineries can work on a cane field
3.A machine can do tasks for many userDept(deptId,deptName)
4.A userDept demands several machines for its activity{A task can be done on several cane fields; plowing,land shaping,etc can be done on field 1, 2, 3...- task vs field,
Many tasks can be done on a field; on field 1 , plowing ,harrowing,... can be done
- task vs field?/?}
5.A machine can do for many userDept; lpcd(using its machine) can do the same type of work (e.g.: plowing) for plantation, rehabilitation and expansion projects.
- task vs userDept
6.Much type of tasks can be done for a userDept; plowing, harrowing,... can be done for plantation- task vs user
7.A machine works in three shifts(1 -to- 3)
Problem : please help me in designing the ER!!
Thanks,
Dejene
I'll assume platNo can be used as a unique identifier for a machine. There are quite a few possibilities depending on rules that you have left ambiguous - e.g. some of the following relations may not be required or may need to be modified:
MACHINE (platNo, model, name) - represents each machine
FIELD (fieldNo) - represents each cane field
TASK (taskId, taskName) - represents the various tasks (e.g. plowing, harrowing) that can be done by any machine
USERDEPT (deptId, deptName) - represents each department
PROJECT (projId, projName, deptId) - represents each project for each department (e.g. plantation, rehabilitation, expansion)
SHIFT (shiftNo) - represents the shifts that any machine might be assigned to
MACHINE_FIELD (platNo, fieldNo) - represents the fact that a particular machine can work on a particular cane field
MACHINE_TASK (platNo, taskId) - represents the fact that a particular machine can perform a particular task
PROJECT_REQUIREMENT (projId, taskId) - represents the fact that a particular project (for a particular department) requires a particular task
MACHINE_ASSIGNMENT (projId, taskId, shiftNo, platNo) - represents the fact that a particular machine has been assigned to perform a particular task on a given shift

Resources