Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 2009 08:15:31 -0600 (CST)
From:      Mark Tinguely <tinguely@casselton.net>
To:        arm@freebsd.org, gjb@semihalf.com, tinguely@casselton.net
Subject:   Re: svn commit: r186730 - in head...
Message-ID:  <200901281415.n0SEFVsG075471@casselton.net>
In-Reply-To: <4980356A.4090403@semihalf.com>

next in thread | previous in thread | raw e-mail | index | archive | help

>  I downloaded your patch and applied it (after a few modification to get rid of compile errors). However, when I boot the board with new code it hangs. The problem is with uma allocator for pv_entries. When there is no more entries available it create new ones. It includes mapping memory into kernel using pmap_qenter. And then recurrence starts, pmap_qenter calls pmap_kenter which tries to allocate pv_entry  and so on. 
>  I think that pv_entries for pmap_kenter should be allocated from some special pool to avoid this problem. Or some threshold could be set for uma allocator to force allocation of new pv_entries if number of free entries drops below the threshold, but I am not sure if it is possible without extending uma interface.
>
>  Grzesiek

Thank-you for the feedback. I should have anticipated that.

If mapping the kernel mappings is the correct thing to do, we may
add a map/virtual address entry to the md_page to remember the first 
mapping and then only manage on the duplicate kernel mapping. The extra
check should be less overhead than managing every kernel mapping.

--Mark Tinguely



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