~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux-2.6.17/Documentation/powerpc/ppc_htab.txt

Version: ~ [ 2.6.16 ] ~ [ 2.6.17 ] ~
Architecture: ~ [ ia64 ] ~ [ i386 ] ~ [ arm ] ~ [ ppc ] ~ [ sparc64 ] ~

  1                  Information about /proc/ppc_htab
  2 =====================================================================
  3 
  4 This document and the related code was written by me (Cort Dougan), please
  5 email me (cort@fsmlabs.com) if you have questions, comments or corrections.
  6 
  7 Last Change: 2.16.98
  8 
  9 This entry in the proc directory is readable by all users but only
 10 writable by root.
 11 
 12 The ppc_htab interface is a user level way of accessing the
 13 performance monitoring registers as well as providing information
 14 about the PTE hash table.
 15 
 16 1. Reading
 17 
 18   Reading this file will give you information about the memory management
 19   hash table that serves as an extended tlb for page translation on the
 20   powerpc.  It will also give you information about performance measurement
 21   specific to the cpu that you are using.
 22 
 23   Explanation of the 604 Performance Monitoring Fields:
 24     MMCR0 - the current value of the MMCR0 register
 25     PMC1
 26     PMC2 - the value of the performance counters and a
 27            description of what events they are counting
 28            which are based on MMCR0 bit settings.
 29   Explanation of the PTE Hash Table fields:
 30 
 31     Size - hash table size in Kb.
 32     Buckets -  number of buckets in the table.
 33     Address - the virtual kernel address of the hash table base.
 34     Entries - the number of ptes that can be stored in the hash table.
 35     User/Kernel - how many pte's are in use by the kernel or user at that time.
 36     Overflows - How many of the entries are in their secondary hash location.
 37     Percent full - ratio of free pte entries to in use entries.
 38     Reloads - Count of how many hash table misses have occurred
 39               that were fixed with a reload from the linux tables.
 40               Should always be 0 on 603 based machines.
 41     Non-error Misses - Count of how many hash table misses have occurred
 42               that were completed with the creation of a pte in the linux
 43               tables with a call to do_page_fault().
 44     Error Misses - Number of misses due to errors such as bad address
 45               and permission violations.  This includes kernel access of
 46               bad user addresses that are fixed up by the trap handler.
 47 
 48   Note that calculation of the data displayed from /proc/ppc_htab takes
 49   a long time and spends a great deal of time in the kernel.  It would
 50   be quite hard on performance to read this file constantly.  In time
 51   there may be a counter in the kernel that allows successive reads from
 52   this file only after a given amount of time has passed to reduce the
 53   possibility of a user slowing the system by reading this file.
 54 
 55 2. Writing
 56 
 57   Writing to the ppc_htab allows you to change the characteristics of
 58   the powerpc PTE hash table and setup performance monitoring.
 59 
 60   Resizing the PTE hash table is not enabled right now due to many
 61   complications with moving the hash table, rehashing the entries
 62   and many many SMP issues that would have to be dealt with.
 63 
 64   Write options to ppc_htab:
 65   
 66    - To set the size of the hash table to 64Kb:
 67 
 68       echo 'size 64' > /proc/ppc_htab
 69 
 70      The size must be a multiple of 64 and must be greater than or equal to
 71      64.
 72 
 73    - To turn off performance monitoring:
 74 
 75       echo 'off' > /proc/ppc_htab
 76 
 77    - To reset the counters without changing what they're counting:
 78 
 79       echo 'reset' > /proc/ppc_htab
 80 
 81      Note that counting will continue after the reset if it is enabled.
 82 
 83    - To count only events in user mode or only in kernel mode:
 84 
 85       echo 'user' > /proc/ppc_htab
 86        ...or...
 87       echo 'kernel' > /proc/ppc_htab
 88 
 89      Note that these two options are exclusive of one another and the
 90      lack of either of these options counts user and kernel.
 91      Using 'reset' and 'off' reset these flags.
 92 
 93    - The 604 has 2 performance counters which can each count events from
 94      a specific set of events.  These sets are disjoint so it is not
 95      possible to count _any_ combination of 2 events.  One event can
 96      be counted by PMC1 and one by PMC2.
 97 
 98      To start counting a particular event use:
 99 
100       echo 'event' > /proc/ppc_htab
101 
102      and choose from these events:
103 
104      PMC1
105      ----
106       'ic miss' - instruction cache misses
107       'dtlb' - data tlb misses (not hash table misses)
108 
109      PMC2
110      ----
111       'dc miss' - data cache misses
112       'itlb' - instruction tlb misses (not hash table misses)
113       'load miss time' - cycles to complete a load miss
114 
115 3. Bugs
116 
117   The PMC1 and PMC2 counters can overflow and give no indication of that
118   in /proc/ppc_htab.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.