lkml.org 
[lkml]   [2011]   [Apr]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Background memory scrubbing
On 04/20/2011 03:58 AM, Robert Whitton wrote:

> for each PFN from 256 to the highest valid PFN
> {
> if (pfn_valid(PFN))
> {
> page = pfn_to_page(PFN)
> va = kmap(page)
> atomic_scrub(va, PAGE_SIZE)
> kunmap(page)
> }
>
> sleep(for_a_while)
> }

What exactly does atomic_scrub do?

> This code works absolutely fine up to a short distance beyond the 16MB boundary (specifically it seems to always fail on my hardware at PFN 4105). At this point despite the fact that kmap returns a valid virtual address (and it is the virtual address that I expect - 0xffff880001009000) I get the kernel oops - "unable to handle kernel paging request".

Looks like you might be making some of the kernel code that
is running at that moment unreachable, leading to a kernel
page fault.


\
 
 \ /
  Last update: 2011-04-20 18:47    [W:0.042 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site