From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: When should ralloc.c be used? Date: Mon, 24 Oct 2016 16:05:30 +0300 Message-ID: <83shrl523p.fsf@gnu.org> References: <831szqhbc2.fsf@gnu.org> <87d1itt79z.fsf_-_@users.sourceforge.net> <7baa18d4-2b09-caa8-005e-29008a383ad1@cs.ucla.edu> <83mvhwrgd5.fsf@gnu.org> <8539f38f-9a11-44c3-4de7-bb974c96206c@cs.ucla.edu> <838ttfnmev.fsf@gnu.org> <837f8znk8f.fsf@gnu.org> <83zilvm2ud.fsf@gnu.org> <83r377m0i8.fsf@gnu.org> <83eg36n6v5.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1477314368 30103 195.159.176.226 (24 Oct 2016 13:06:08 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 24 Oct 2016 13:06:08 +0000 (UTC) Cc: eggert@cs.ucla.edu, emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 24 15:06:02 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1byewn-0006B1-K2 for ged-emacs-devel@m.gmane.org; Mon, 24 Oct 2016 15:05:49 +0200 Original-Received: from localhost ([::1]:46653 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1byewq-0001i3-1J for ged-emacs-devel@m.gmane.org; Mon, 24 Oct 2016 09:05:52 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35132) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1byewb-0001ej-S8 for emacs-devel@gnu.org; Mon, 24 Oct 2016 09:05:41 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1byewW-0001MX-2h for emacs-devel@gnu.org; Mon, 24 Oct 2016 09:05:37 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:48376) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1byewV-0001MQ-RG; Mon, 24 Oct 2016 09:05:31 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:2134 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1byewV-0004OQ-76; Mon, 24 Oct 2016 09:05:31 -0400 In-reply-to: (message from Stefan Monnier on Mon, 24 Oct 2016 08:33:10 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:208680 Archived-At: > From: Stefan Monnier > Date: Mon, 24 Oct 2016 08:33:10 -0400 > Cc: emacs-devel@gnu.org > > > Should Emacs use the GNU version of malloc? yes > > Should Emacs use a relocating allocator for buffers? yes > > Should Emacs use mmap(2) for buffer allocation? no > > because emacs-25 will compile both gmalloc.o and ralloc.o on such a platform. > > But I fail to see what's hard about changing that to "rel_alloc=no, mmap=yes". Why do we need mmap at all? Why not just use malloc (as implemented by gmalloc)? Using mmap has disadvantages: when you need to enlarge buffer text, and that fails (because there are no more free pages/addresses after the already allocated region), we need to copy buffer text to the new allocation. This happens quite a lot when we visit a compressed buffer. (The MS-Windows emulation of mmap in w32heap.c reserves twice the number of pages as originally requested, for that very reason.) So if we can stop using ralloc without also using mmap directly for buffer text, that'd be a win, I think.