I introduced this bug in 1.139 when I added the KASSERT().  Bleh.
    However, the code still needs to be protected at splbio().  And so I've
    committed.

                                            -Matt
        
:    Hmmm.  This looks like an out-an-out bug to me.  The assertion is wrong.
:    It's scanning the backing_object and asserting that the pages in the
:    backing object are associated with object rather then backing_object.
:
:    This section of code only runs when paging is in progress on a 
:    collapseable object AND there are also idle pages in that object.
:    The collapse condition is probably due to an exiting process ( typical
:    in a buildworld ).
:
:    ( from vm/vm_object.c )
:                /*
:                 * busy the page and move it from the backing store to the
:                 * parent object.
:                 */
:
:                vm_page_busy(p);
:
:                KASSERT(p->object == object, ("vm_object_qcollapse(): object 
mismatch"));
:                                   ^^^^^^^^^^
:                                       should be 'backing_object'
:
:    There is also an interrupt race.  Since paging can be in progress,
:    pages in the object can be ripped out from under it so we have to
:    run at splbio() in the loop.


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to