Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 13 Jan 2010 09:53:33 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-stable@freebsd.org
Cc:        Gardner Bell <gbell72@rogers.com>, pluknet <pluknet@gmail.com>
Subject:   Re: LOR - 8.0-STABLE r202128
Message-ID:  <201001130953.33361.jhb@freebsd.org>
In-Reply-To: <a31046fc1001122330p11becdd6kd02ec0dfbaa6a36a@mail.gmail.com>
References:  <4B4CEE78.4080708@rogers.com> <a31046fc1001122330p11becdd6kd02ec0dfbaa6a36a@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 13 January 2010 2:30:04 am pluknet wrote:
> 2010/1/13 Gardner Bell <gbell72@rogers.com>:
> > I got this lock order reversal while running a windows executable through
> > wine.
> 
> I'm guess that is a regression w.r.t S/G pager, which uses kmem_alloc/free
> with vm_object locked and doesn't respect vm_map locks can sleep.
> I'm curious it was back order before 5.1-R.

It's more that it can call free() during the VM object's destructor.  Hmm,
presumably the call to sglist_free() needs to be deferred.  Note that both
the SG and device pagers free fake vm_page_t objects using uma_zfree() from
their destructors.  I guess uma_zfree() will never call kmem_free() directly?

-- 
John Baldwin



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