From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrea Corallo via "Emacs development discussions." Newsgroups: gmane.emacs.devel Subject: Re: Opportunistic GC Date: Mon, 08 Mar 2021 15:52:55 +0000 Message-ID: References: Reply-To: Andrea Corallo Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4616"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: Stefan Monnier , eliz@gnu.org, emacs-devel@gnu.org To: Pip Cet Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Mon Mar 08 16:53:35 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lJICN-00015I-Ch for ged-emacs-devel@m.gmane-mx.org; Mon, 08 Mar 2021 16:53:35 +0100 Original-Received: from localhost ([::1]:33910 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lJICM-00012Z-Eo for ged-emacs-devel@m.gmane-mx.org; Mon, 08 Mar 2021 10:53:34 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58456) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lJIBo-0000I3-PL for emacs-devel@gnu.org; Mon, 08 Mar 2021 10:53:00 -0500 Original-Received: from mx.sdf.org ([205.166.94.24]:53209) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lJIBm-0004ZB-QR; Mon, 08 Mar 2021 10:53:00 -0500 Original-Received: from mab (ma.sdf.org [205.166.94.33]) by mx.sdf.org (8.15.2/8.14.5) with ESMTPS id 128FqtQx019447 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO); Mon, 8 Mar 2021 15:52:55 GMT In-Reply-To: (Pip Cet's message of "Mon, 8 Mar 2021 15:04:32 +0000") Received-SPF: pass client-ip=205.166.94.24; envelope-from=akrl@sdf.org; helo=mx.sdf.org X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:266199 Archived-At: Pip Cet writes: > On Mon, Mar 8, 2021 at 2:01 PM Andrea Corallo wrote: >> Pip Cet writes: >> >> > On Mon, Mar 8, 2021 at 3:37 AM Stefan Monnier wrote: >> >> I've been running with the code below recently to try and see if >> >> opportunistic GC can be worth the trouble. >> > >> > Just a random idea: What if we exploit the fact most people have more >> > than one CPU core these days, garbage-collect in a separate fork()ed >> > process, then do only the sweeping in the main process? >> >> It's an interesting concept, I thought about something similar in the >> past but, I've two questions: >> >> Are we really sure that a non trivial process can long survive >> or work as expected after being forked? > > I believe that, on all systems where bash works, we can expect fork() > to behave. I also expect fork will work, I'm more wondering about interaction with sockets file descriptors or anything else in our codebase and/or in libraries we have loaded. I've read in the past this is an issue in practice in non trivial code and that, because the typical use of fork () nowadays is just to run afterward exec (), operating in the grey between the two was not really a good idea. But I don't have the reference now and if you say it works I've no reasons not to trust you. Andrea