URL
https://opencores.org/ocsvn/test_project/test_project/trunk
Subversion Repositories test_project
[/] [test_project/] [trunk/] [linux_sd_driver/] [Documentation/] [powerpc/] [ppc_htab.txt] - Rev 65
Go to most recent revision | Compare with Previous | Blame | View Log
Information about /proc/ppc_htab=====================================================================This document and the related code was written by me (Cort Dougan), pleaseemail me (cort@fsmlabs.com) if you have questions, comments or corrections.Last Change: 2.16.98This entry in the proc directory is readable by all users but onlywritable by root.The ppc_htab interface is a user level way of accessing theperformance monitoring registers as well as providing informationabout the PTE hash table.1. ReadingReading this file will give you information about the memory managementhash table that serves as an extended tlb for page translation on thepowerpc. It will also give you information about performance measurementspecific to the cpu that you are using.Explanation of the 604 Performance Monitoring Fields:MMCR0 - the current value of the MMCR0 registerPMC1PMC2 - the value of the performance counters and adescription of what events they are countingwhich 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 occurredthat 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 occurredthat were completed with the creation of a pte in the linuxtables with a call to do_page_fault().Error Misses - Number of misses due to errors such as bad addressand permission violations. This includes kernel access ofbad user addresses that are fixed up by the trap handler.Note that calculation of the data displayed from /proc/ppc_htab takesa long time and spends a great deal of time in the kernel. It wouldbe quite hard on performance to read this file constantly. In timethere may be a counter in the kernel that allows successive reads fromthis file only after a given amount of time has passed to reduce thepossibility of a user slowing the system by reading this file.2. WritingWriting to the ppc_htab allows you to change the characteristics ofthe powerpc PTE hash table and setup performance monitoring.Resizing the PTE hash table is not enabled right now due to manycomplications with moving the hash table, rehashing the entriesand 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_htabThe size must be a multiple of 64 and must be greater than or equal to64.- To turn off performance monitoring:echo 'off' > /proc/ppc_htab- To reset the counters without changing what they're counting:echo 'reset' > /proc/ppc_htabNote 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_htabNote that these two options are exclusive of one another and thelack 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 froma specific set of events. These sets are disjoint so it is notpossible to count _any_ combination of 2 events. One event canbe counted by PMC1 and one by PMC2.To start counting a particular event use:echo 'event' > /proc/ppc_htaband 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 miss3. BugsThe PMC1 and PMC2 counters can overflow and give no indication of thatin /proc/ppc_htab.
Go to most recent revision | Compare with Previous | Blame | View Log
