From: Faré <fa...@gm...> - 2009-10-06 14:17:38
|
2009/10/6 Martin Cracauer <cra...@co...>: > Nikodemus Siivola wrote on Tue, Oct 06, 2009 at 03:51:32PM +0300: >> I don't know how smart Linux is about this, but I'm guessing that at >> minimum you need to mprotect() the region with a single call to get a >> single mapping. I doubt just having the pages adjacent is enough. > > I'm too lazy to test right now but I think that's how it works, I > think the Linux kernel auto-merges regions when it can. > A cursory reading of mm/mprotect.c:mprotect_fixup() shows that it calls mm/mmap.c:vma_merge() and indeed tries to auto-merge regions. > From my testing I don't believe any of this is a problem. 32 KB GC > page size was fastest in my tests, and that way even "my" application > runs without raising the kernel limit. Fare's application doesn't, > but I have also tested that raising the kernel limit has no apparent > downsides and since Fare's installs are rpm/dep driven anyway there is > no problem actually doing the setting either (/etc/rc.d entry as I > indicated). > We are working on automatically modifying /etc/sysctl.conf (or adding a file to /etc/sysctl.d/ when it exists) with the script I previously attached. > I don't think there is a reason to be too concerned about this. Well, in addition to limiting the total memory sbcl can actually use and making deployment harder, this mapping issue also seems to make fork slower than I'd like (speaking with XCVB and other concurrency projects in mind). So while I wouldn't be *too* concerned about this and it isn't an urgent blocking problem, still it would be nice to improve on the current situation next time the gencgc is touched. [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] Anarchism is founded on the observation that since few men are wise enough to rule themselves, even fewer are wise enough to rule others. -- Edward Abbey |