Re: kernel page fult for a valid pointer?

From: John Baldwin <jhb_at_freebsd.org>
Date: Mon, 20 Aug 2012 12:15:58 -0400
On Monday, August 20, 2012 9:49:48 am Monthadar Al Jaberi wrote:
> On Mon, Aug 20, 2012 at 2:04 PM, John Baldwin <jhb_at_freebsd.org> wrote:
> > On Saturday, August 18, 2012 2:29:26 pm Monthadar Al Jaberi wrote:
> >> Hi,
> >>
> >> I am wondering is there a reason for getting "Fatal trap 12: page
> >> fault while in kernel mode" "supervisor read, page not present" for an
> >> address used to be valid in kernel space?
> >>
> >> I dont really understand why I am getting this, I added a hardware
> >> watchpoint on the address, and when I got to the debuger I could read
> >> the memory content and dump for that address. But when I continue from
> >> the debugger I get the panic and now when I try to read the memory
> >> content I get *** error reading from address ce733000 ***.
> >
> > Whatever memory was there might have been unmapped?  For example,
> > memory pointed to by I/O buffers (struct buf/bio) use transient
> > mappings that are only valid while an I/O request is in progress.
> 
> Thank you the for the reply, so if a struct gets freed will the page
> it was on get un-mapped, so that I cant dump it in debugger? Even
> VirtualBox debugger cant dump the memory giving
> "VERR_PAGE_TABLE_NOT_PRESENT: Reading memory at...".
> 
> In my case it is a struct ieee80211_node which gets freed, but where
> does the page get unmaped? I tried doubling the memory in VirtualBox.

Well, things that are malloc'd are a bit trickier.  I do believe they can
get unmapped if the backing slab is released to the system during a
uma_reclaim().

-- 
John Baldwin
Received on Mon Aug 20 2012 - 16:21:34 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC