Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 11 Sep 2014 15:38:10 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 193565] New: panic in vm_reserv_alloc_contig
Message-ID:  <bug-193565-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193565

            Bug ID: 193565
           Summary: panic in vm_reserv_alloc_contig
           Product: Base System
           Version: 10.0-RELEASE
          Hardware: Any
                OS: Any
            Status: Needs Triage
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: eric@vangyzen.net

With code that exercises contigmalloc, I can reliably induce a panic (page
fault or GPF) in vm_reserv_alloc_contig.  The immediate cause is a bad pointer
around line 431 (without INVARIANTS), or failing the (rv->object == NULL)
assertion.

After a little digging, I see that vm_reserv_alloc_contig calls
vm_phys_alloc_contig with an allocpages value that is not a multiple of
VM_LEVEL_0_NPAGES.  This seems bad.  Before the call to vm_phys_alloc_contig, I
see the following values (via printf):

allocpages=646
minpages=646
maxpages=1024
pindex=2013184
VM_RESERV_INDEX(object, pindex)=0
npages=646
object=0xffffffff80bd3fe8

allocpages is set to minpages by the (msucc != NULL) case.

I'm not very familiar with the current VM system, and I unfortunately don't
have a lot of time to study it, so I'll need some help from here.  It's trivial
to reproduce, and the system is set up for remote kgdb, so I can answer
questions or try diagnostic code pretty quickly.

This is 10.0-RELEASE-p7 with no interesting changes in sys/vm.

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-193565-8>