Skip to content

Commit

Permalink
x86: add PAT related debug prints
Browse files Browse the repository at this point in the history
Adds debug prints at critical code. Adds enough info in dmesg to allow us to
do effective first round of analysis of any issues that may result due to PAT
patch series.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
venkatesh.pallipadi@intel.com authored and Ingo Molnar committed Apr 17, 2008
1 parent b310f38 commit 6997ab4
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 1 deletion.
6 changes: 5 additions & 1 deletion arch/x86/mm/ioremap.c
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ static void __iomem *__ioremap(resource_size_t phys_addr, unsigned long size,
return NULL;

if (!phys_addr_valid(phys_addr)) {
printk(KERN_WARNING "ioremap: invalid physical address %lx\n",
printk(KERN_WARNING "ioremap: invalid physical address %llx\n",
phys_addr);
WARN_ON_ONCE(1);
return NULL;
Expand Down Expand Up @@ -177,6 +177,10 @@ static void __iomem *__ioremap(resource_size_t phys_addr, unsigned long size,
new_prot_val == _PAGE_CACHE_WC)) ||
(prot_val == _PAGE_CACHE_WC &&
new_prot_val == _PAGE_CACHE_WB)) {
printk(
"ioremap error for 0x%llx-0x%llx, requested 0x%lx, got 0x%lx\n",
phys_addr, phys_addr + size,
prot_val, new_prot_val);
free_memtype(phys_addr, phys_addr + size);
return NULL;
}
Expand Down
24 changes: 24 additions & 0 deletions arch/x86/mm/pat.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
struct memtype *saved_ptr;

if (parse->start >= end) {
printk("New Entry\n");
list_add(&new_entry->nd, parse->nd.prev);
new_entry = NULL;
break;
Expand Down Expand Up @@ -295,6 +296,8 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
break;
}

printk("Overlap at 0x%Lx-0x%Lx\n",
saved_ptr->start, saved_ptr->end);
/* No conflict. Go ahead and add this new entry */
list_add(&new_entry->nd, saved_ptr->nd.prev);
new_entry = NULL;
Expand Down Expand Up @@ -345,6 +348,8 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
break;
}

printk("Overlap at 0x%Lx-0x%Lx\n",
saved_ptr->start, saved_ptr->end);
/* No conflict. Go ahead and add this new entry */
list_add(&new_entry->nd, &saved_ptr->nd);
new_entry = NULL;
Expand All @@ -353,6 +358,10 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
}

if (err) {
printk(
"reserve_memtype failed 0x%Lx-0x%Lx, track %s, req %s\n",
start, end, cattr_name(new_entry->type),
cattr_name(req_type));
kfree(new_entry);
spin_unlock(&memtype_lock);
return err;
Expand All @@ -361,6 +370,19 @@ int reserve_memtype(u64 start, u64 end, unsigned long req_type,
if (new_entry) {
/* No conflict. Not yet added to the list. Add to the tail */
list_add_tail(&new_entry->nd, &memtype_list);
printk("New Entry\n");
}

if (ret_type) {
printk(
"reserve_memtype added 0x%Lx-0x%Lx, track %s, req %s, ret %s\n",
start, end, cattr_name(actual_type),
cattr_name(req_type), cattr_name(*ret_type));
} else {
printk(
"reserve_memtype added 0x%Lx-0x%Lx, track %s, req %s\n",
start, end, cattr_name(actual_type),
cattr_name(req_type));
}

spin_unlock(&memtype_lock);
Expand Down Expand Up @@ -397,6 +419,8 @@ int free_memtype(u64 start, u64 end)
printk(KERN_DEBUG "%s:%d freeing invalid memtype %Lx-%Lx\n",
current->comm, current->pid, start, end);
}

printk( "free_memtype request 0x%Lx-0x%Lx\n", start, end);
return err;
}

0 comments on commit 6997ab4

Please sign in to comment.