Commit 27ad14bc authored by Paul Mackerras's avatar Paul Mackerras Committed by Linus Torvalds

[PATCH] ppc32: Suppress bogus info in /proc/ppc_htab on 64-bit cpus

In the ppc32 kernel, we have a /proc/ppc_htab file that trawls through
the MMU hash table and prints various statistics on it such as percent
occupancy.  However, the hash table entry format is different on
64-bit cpus (POWER3, G5) which the ppc32 kernel does support (in
32-bit mode).

This patch disables the scanning of the MMU hash table and printing of
the statistics that we get from it on 64-bit cpus.  Since the
statistics are only for interest, and the ppc32 kernel is being used
less and less on 64-bit cpus now that the ppc64 kernel is in
reasonable shape, I didn't think it worth while to add code to deal
with the 64-bit HPTE format.
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent dcc579a6
...@@ -101,7 +101,7 @@ static ssize_t ppc_htab_read(struct file * file, char __user * buf, ...@@ -101,7 +101,7 @@ static ssize_t ppc_htab_read(struct file * file, char __user * buf,
{ {
unsigned long mmcr0 = 0, pmc1 = 0, pmc2 = 0; unsigned long mmcr0 = 0, pmc1 = 0, pmc2 = 0;
int n = 0; int n = 0;
#ifdef CONFIG_PPC_STD_MMU #if defined(CONFIG_PPC_STD_MMU) && !defined(CONFIG_PPC64BRIDGE)
unsigned int kptes = 0, uptes = 0; unsigned int kptes = 0, uptes = 0;
PTE *ptr; PTE *ptr;
#endif /* CONFIG_PPC_STD_MMU */ #endif /* CONFIG_PPC_STD_MMU */
...@@ -135,6 +135,7 @@ static ssize_t ppc_htab_read(struct file * file, char __user * buf, ...@@ -135,6 +135,7 @@ static ssize_t ppc_htab_read(struct file * file, char __user * buf,
goto return_string; goto return_string;
} }
#ifndef CONFIG_PPC64BRIDGE
for (ptr = Hash; ptr < Hash_end; ptr++) { for (ptr = Hash; ptr < Hash_end; ptr++) {
unsigned int mctx, vsid; unsigned int mctx, vsid;
...@@ -148,6 +149,7 @@ static ssize_t ppc_htab_read(struct file * file, char __user * buf, ...@@ -148,6 +149,7 @@ static ssize_t ppc_htab_read(struct file * file, char __user * buf,
else else
uptes++; uptes++;
} }
#endif
n += sprintf( buffer + n, n += sprintf( buffer + n,
"PTE Hash Table Information\n" "PTE Hash Table Information\n"
...@@ -155,16 +157,20 @@ static ssize_t ppc_htab_read(struct file * file, char __user * buf, ...@@ -155,16 +157,20 @@ static ssize_t ppc_htab_read(struct file * file, char __user * buf,
"Buckets\t\t: %lu\n" "Buckets\t\t: %lu\n"
"Address\t\t: %08lx\n" "Address\t\t: %08lx\n"
"Entries\t\t: %lu\n" "Entries\t\t: %lu\n"
#ifndef CONFIG_PPC64BRIDGE
"User ptes\t: %u\n" "User ptes\t: %u\n"
"Kernel ptes\t: %u\n" "Kernel ptes\t: %u\n"
"Percent full\t: %lu%%\n", "Percent full\t: %lu%%\n"
(unsigned long)(Hash_size>>10), #endif
, (unsigned long)(Hash_size>>10),
(Hash_size/(sizeof(PTE)*8)), (Hash_size/(sizeof(PTE)*8)),
(unsigned long)Hash, (unsigned long)Hash,
Hash_size/sizeof(PTE), Hash_size/sizeof(PTE)
uptes, #ifndef CONFIG_PPC64BRIDGE
, uptes,
kptes, kptes,
((kptes+uptes)*100) / (Hash_size/sizeof(PTE)) ((kptes+uptes)*100) / (Hash_size/sizeof(PTE))
#endif
); );
n += sprintf( buffer + n, n += sprintf( buffer + n,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment