Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b483a6a authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Benjamin Herrenschmidt
Browse files

powerpc: Remove remains of /proc/ppc_htab



commit 14cf11af ("powerpc: Merge enough to
start building in arch/powerpc.") unwired /proc/ppc_htab, and commit
917f0af9 ("powerpc: Remove arch/ppc and
include/asm-ppc") removed the rest of the /proc/ppc_htab support, but there are
still a few references left. Kill them for good.

Signed-off-by: default avatarGeert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent a880e762
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -18,8 +18,6 @@ mpc52xx.txt
	- Linux 2.6.x on MPC52xx family
mpc52xx-device-tree-bindings.txt
	- MPC5200 Device Tree Bindings
ppc_htab.txt
	- info about the Linux/PPC /proc/ppc_htab entry
smp.txt
	- use and state info about Linux/PPC on MP machines
sound.txt
+0 −118
Original line number Diff line number Diff line
                 Information about /proc/ppc_htab
=====================================================================

This document and the related code was written by me (Cort Dougan), please
email me (cort@fsmlabs.com) if you have questions, comments or corrections.

Last Change: 2.16.98

This entry in the proc directory is readable by all users but only
writable by root.

The ppc_htab interface is a user level way of accessing the
performance monitoring registers as well as providing information
about the PTE hash table.

1. Reading

  Reading this file will give you information about the memory management
  hash table that serves as an extended tlb for page translation on the
  powerpc.  It will also give you information about performance measurement
  specific to the cpu that you are using.

  Explanation of the 604 Performance Monitoring Fields:
    MMCR0 - the current value of the MMCR0 register
    PMC1
    PMC2 - the value of the performance counters and a
           description of what events they are counting
           which are based on MMCR0 bit settings.
  Explanation of the PTE Hash Table fields:

    Size - hash table size in Kb.
    Buckets -  number of buckets in the table.
    Address - the virtual kernel address of the hash table base.
    Entries - the number of ptes that can be stored in the hash table.
    User/Kernel - how many pte's are in use by the kernel or user at that time.
    Overflows - How many of the entries are in their secondary hash location.
    Percent full - ratio of free pte entries to in use entries.
    Reloads - Count of how many hash table misses have occurred
              that were fixed with a reload from the linux tables.
              Should always be 0 on 603 based machines.
    Non-error Misses - Count of how many hash table misses have occurred
              that were completed with the creation of a pte in the linux
              tables with a call to do_page_fault().
    Error Misses - Number of misses due to errors such as bad address
              and permission violations.  This includes kernel access of
              bad user addresses that are fixed up by the trap handler.

  Note that calculation of the data displayed from /proc/ppc_htab takes
  a long time and spends a great deal of time in the kernel.  It would
  be quite hard on performance to read this file constantly.  In time
  there may be a counter in the kernel that allows successive reads from
  this file only after a given amount of time has passed to reduce the
  possibility of a user slowing the system by reading this file.

2. Writing

  Writing to the ppc_htab allows you to change the characteristics of
  the powerpc PTE hash table and setup performance monitoring.

  Resizing the PTE hash table is not enabled right now due to many
  complications with moving the hash table, rehashing the entries
  and many many SMP issues that would have to be dealt with.

  Write options to ppc_htab:
  
   - To set the size of the hash table to 64Kb:

      echo 'size 64' > /proc/ppc_htab

     The size must be a multiple of 64 and must be greater than or equal to
     64.

   - To turn off performance monitoring:

      echo 'off' > /proc/ppc_htab

   - To reset the counters without changing what they're counting:

      echo 'reset' > /proc/ppc_htab

     Note that counting will continue after the reset if it is enabled.

   - To count only events in user mode or only in kernel mode:

      echo 'user' > /proc/ppc_htab
       ...or...
      echo 'kernel' > /proc/ppc_htab

     Note that these two options are exclusive of one another and the
     lack of either of these options counts user and kernel.
     Using 'reset' and 'off' reset these flags.

   - The 604 has 2 performance counters which can each count events from
     a specific set of events.  These sets are disjoint so it is not
     possible to count _any_ combination of 2 events.  One event can
     be counted by PMC1 and one by PMC2.

     To start counting a particular event use:

      echo 'event' > /proc/ppc_htab

     and choose from these events:

     PMC1
     ----
      'ic miss' - instruction cache misses
      'dtlb' - data tlb misses (not hash table misses)

     PMC2
     ----
      'dc miss' - data cache misses
      'itlb' - instruction tlb misses (not hash table misses)
      'load miss time' - cycles to complete a load miss

3. Bugs

  The PMC1 and PMC2 counters can overflow and give no indication of that
  in /proc/ppc_htab.
+0 −1
Original line number Diff line number Diff line
@@ -139,7 +139,6 @@ extern int proc_readdir(struct file *, void *, filldir_t);
extern struct dentry *proc_lookup(struct inode *, struct dentry *, struct nameidata *);

extern const struct file_operations proc_kcore_operations;
extern const struct file_operations ppc_htab_operations;

extern int pid_ns_prepare_proc(struct pid_namespace *ns);
extern void pid_ns_release_proc(struct pid_namespace *ns);