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>