diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-10-03 02:26:59 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-03 03:50:04 -0400 |
commit | 8bb39311bf461243f6cade3644764d848516dd23 (patch) | |
tree | d0518eb77136e254a8e0352045a988d9ea3dff52 /arch | |
parent | 834836ee6a3a9deadff9394b23db965a08bcde35 (diff) |
x86, debug: mtrr_cleanup print out var mtrr before change it
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/cpu/mtrr/main.c | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c index b4a3f0c1a5e3..406074c46f1e 100644 --- a/arch/x86/kernel/cpu/mtrr/main.c +++ b/arch/x86/kernel/cpu/mtrr/main.c | |||
@@ -1211,13 +1211,14 @@ static unsigned long __initdata min_loss_pfn[RANGE_NUM]; | |||
1211 | static int __init mtrr_cleanup(unsigned address_bits) | 1211 | static int __init mtrr_cleanup(unsigned address_bits) |
1212 | { | 1212 | { |
1213 | unsigned long extra_remove_base, extra_remove_size; | 1213 | unsigned long extra_remove_base, extra_remove_size; |
1214 | unsigned long i, base, size, def, dummy; | 1214 | unsigned long base, size, def, dummy; |
1215 | mtrr_type type; | 1215 | mtrr_type type; |
1216 | int nr_range, nr_range_new; | 1216 | int nr_range, nr_range_new; |
1217 | u64 chunk_size, gran_size; | 1217 | u64 chunk_size, gran_size; |
1218 | unsigned long range_sums, range_sums_new; | 1218 | unsigned long range_sums, range_sums_new; |
1219 | int index_good; | 1219 | int index_good; |
1220 | int num_reg_good; | 1220 | int num_reg_good; |
1221 | int i; | ||
1221 | 1222 | ||
1222 | /* extra one for all 0 */ | 1223 | /* extra one for all 0 */ |
1223 | int num[MTRR_NUM_TYPES + 1]; | 1224 | int num[MTRR_NUM_TYPES + 1]; |
@@ -1259,6 +1260,28 @@ static int __init mtrr_cleanup(unsigned address_bits) | |||
1259 | num_var_ranges - num[MTRR_NUM_TYPES]) | 1260 | num_var_ranges - num[MTRR_NUM_TYPES]) |
1260 | return 0; | 1261 | return 0; |
1261 | 1262 | ||
1263 | /* print original var MTRRs at first, for debugging: */ | ||
1264 | printk(KERN_DEBUG "original variable MTRRs\n"); | ||
1265 | for (i = 0; i < num_var_ranges; i++) { | ||
1266 | char start_factor = 'K', size_factor = 'K'; | ||
1267 | unsigned long start_base, size_base; | ||
1268 | |||
1269 | size_base = range_state[i].size_pfn << (PAGE_SHIFT - 10); | ||
1270 | if (!size_base) | ||
1271 | continue; | ||
1272 | |||
1273 | size_base = to_size_factor(size_base, &size_factor), | ||
1274 | start_base = range_state[i].base_pfn << (PAGE_SHIFT - 10); | ||
1275 | start_base = to_size_factor(start_base, &start_factor), | ||
1276 | |||
1277 | printk(KERN_DEBUG "reg %d, base: %ld%cB, range: %ld%cB, type %s\n", | ||
1278 | i, start_base, start_factor, | ||
1279 | size_base, size_factor, | ||
1280 | (type == MTRR_TYPE_UNCACHABLE) ? "UC" : | ||
1281 | ((type == MTRR_TYPE_WRBACK) ? "WB" : "Other") | ||
1282 | ); | ||
1283 | } | ||
1284 | |||
1262 | memset(range, 0, sizeof(range)); | 1285 | memset(range, 0, sizeof(range)); |
1263 | extra_remove_size = 0; | 1286 | extra_remove_size = 0; |
1264 | if (mtrr_tom2) { | 1287 | if (mtrr_tom2) { |