GNU bug report logs - #66020
[PATCH] Reduce GC churn in read_process_output

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: wishlist; Reported by: Dmitry Gutov <dmitry@HIDDEN>; Keywords: patch; dated Sat, 16 Sep 2023 01:27:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 66020 <at> debbugs.gnu.org:


Received: (at 66020) by debbugs.gnu.org; 20 Sep 2023 11:20:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Sep 20 07:20:31 2023
Received: from localhost ([127.0.0.1]:58460 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qivFv-0006LO-6T
	for submit <at> debbugs.gnu.org; Wed, 20 Sep 2023 07:20:31 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:40686)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1qivFq-0006L7-Nu
 for 66020 <at> debbugs.gnu.org; Wed, 20 Sep 2023 07:20:30 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1qivFb-0001vy-Cc; Wed, 20 Sep 2023 07:20:11 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=JP2b9RpeZ7FmPsh83Q1X1ZHL/qBavOYid9XK4OCTkSY=; b=fr4CuHnXW3by
 iQwFUOl0qnBJ6HpdUTHAuK45KYwoBM2YmjB34whTCwFwrNEphf+R0+06yMZRfa+I+gb7ZSYbRXPly
 7TczskzNp5GmvzBP0jWotczCAg0OuQgRB7G027SSyI490krApzz6FrAbmdtU8BvGoY3TSNHzQD8LD
 M8jAplYmiRWsEoMXValK0egYU4doxIwpe7rlL8k3WDretRg0gPp5c6+yApQ6zSV4elyqUuXtlJfQ4
 LeEEgoKy009JpMlzEds/0CRdARSoT6dM121TUdx/tNu6WyPAoPeqp9pyxIQQXXad4aCjgy/Kfhbu0
 7cgrjQ0uYJ5qd8wKXuKbpw==;
Date: Wed, 20 Sep 2023 14:20:13 +0300
Message-Id: <83zg1hay6q.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Dmitry Gutov <dmitry@HIDDEN>, Stefan Kangas <stefankangas@HIDDEN>,
 Stefan Monnier <monnier@HIDDEN>
In-Reply-To: <937d9927-506f-aa36-94e9-3cceb8f629dd@HIDDEN> (message from
 Dmitry Gutov on Tue, 19 Sep 2023 22:59:43 +0300)
Subject: Re: bug#66020 (bug#64735 spin-off): regarding the default for
 read-process-output-max
References: <iermszrwqj4.fsf@HIDDEN>
 <35f8b664-0241-9f96-1aa0-20ca51b2d34c@HIDDEN>
 <59c30342-a7e0-d83b-a128-0faae4cbd633@HIDDEN>
 <83pm4bi6qa.fsf@HIDDEN>
 <d319bd54-3f0d-a205-3412-ef3961074416@HIDDEN>
 <83bkfs2tw5.fsf@HIDDEN>
 <18a0b4d8-32bd-3ecd-8db4-32608a1ebba7@HIDDEN>
 <83il8lxjcu.fsf@HIDDEN>
 <2e21ec81-8e4f-4c02-ea15-43bd6da3daa7@HIDDEN>
 <8334zmtwwi.fsf@HIDDEN>
 <e480d2fb-0912-c9d6-66c8-d11e07482545@HIDDEN>
 <83tts0rkh5.fsf@HIDDEN>
 <e6dd2d5c-9a88-6e18-f1e2-544a9cb1beaf@HIDDEN>
 <831qf3pd1y.fsf@HIDDEN>
 <28a7916e-92d5-77ab-a61e-f85b59ac76b1@HIDDEN>
 <83sf7jnq0m.fsf@HIDDEN>
 <5c493f86-0af5-256f-41a7-7d886ab4c5e4@HIDDEN>
 <83ledanvzw.fsf@HIDDEN>
 <bc4bb3de-d433-7249-cb53-2f312656589d@HIDDEN>
 <83r0n2m7qz.fsf@HIDDEN>
 <26afa109-9ba3-78a3-0e68-7585ae8e3a19@HIDDEN>
 <83il8dna30.fsf@HIDDEN>
 <e46f996a-0bed-8796-23d7-c9c8b7d428be@HIDDEN>
 <83bke5mhvs.fsf@HIDDEN>
 <edb397b8-d3da-6646-0a97-841ebcae2e7a@HIDDEN>
 <83a5tmk79p.fsf@HIDDEN> <937d9927-506f-aa36-94e9-3cceb8f629dd@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 66020
Cc: 66020 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> Date: Tue, 19 Sep 2023 22:59:43 +0300
> Cc: 66020 <at> debbugs.gnu.org
> From: Dmitry Gutov <dmitry@HIDDEN>
> 
> - Maybe we declare the difference insignificant and bump the value of 
> read-process-output-max, given that it helps in other cases,
> - Or try to find out the cause for degradation,
> - Or keep the default the same, but make it easier to use different 
> value for different processes (meaning, we resurrect the discussion in 
> bug#38561).

I'd try the same experiment on other use cases, say "M-x grep" and
"M-x compile" with large outputs, and if you see the same situation
there (i.e. larger buffers are no worse), try increasing the default
value on master.

Stefan & Stefan: any comments or suggestions?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#66020; Package emacs. Full text available.

Message received at 66020 <at> debbugs.gnu.org:


Received: (at 66020) by debbugs.gnu.org; 19 Sep 2023 20:00:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Sep 19 16:00:06 2023
Received: from localhost ([127.0.0.1]:57855 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qigtB-0000vY-Fk
	for submit <at> debbugs.gnu.org; Tue, 19 Sep 2023 16:00:06 -0400
Received: from out2-smtp.messagingengine.com ([66.111.4.26]:58893)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1qigt8-0000uT-Ns
 for 66020 <at> debbugs.gnu.org; Tue, 19 Sep 2023 16:00:04 -0400
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
 by mailout.nyi.internal (Postfix) with ESMTP id 3DD6D5C01AA;
 Tue, 19 Sep 2023 15:59:48 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute3.internal (MEProxy); Tue, 19 Sep 2023 15:59:48 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :cc:content-transfer-encoding:content-type:content-type:date
 :date:from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:sender:subject:subject:to:to; s=fm3; t=
 1695153588; x=1695239988; bh=O2MS+YZGx/qBn4Xj9GVu4SjO0x3m8JC4VSs
 qXXmB7Ck=; b=hhuHbUXTvbhwUloJ4wyqHiBXkPI9oLZ4vL35zZ4h6s/MaZ6fXQO
 YqJt+D69oAYdfWbJV5o+Jd3o48JpixdF3sUa/8R7Th7jsy0z9IYbFxscGnP0RW3H
 1CDUQizlw02z1Etfm9mbS1YlVGgUIcuTc3uxVrj+XTwQifUs0y9daacIsKuI/abx
 ga0er+M3Re8BB0QNDZIyMcv1rtgm3HOSHQ5nY4bmuFI/iTxFzqOFGrb9Ko4gbvW7
 m+P7PUcRQtA8Vtu9PMVZYdjH7xzGU9vBljHKOvza3mRPBlV7f+EDHz+8760x+VUW
 fyiapAm+yDdXCr8f0vQjUS5wMnqvptAek4A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:cc:content-transfer-encoding
 :content-type:content-type:date:date:feedback-id:feedback-id
 :from:from:in-reply-to:in-reply-to:message-id:mime-version
 :references:reply-to:sender:subject:subject:to:to:x-me-proxy
 :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
 1695153588; x=1695239988; bh=O2MS+YZGx/qBn4Xj9GVu4SjO0x3m8JC4VSs
 qXXmB7Ck=; b=N7A+A7p5uchSAYMz6ojNh61/irnuk2xF62Bj0T96C0dyFQ1zGlJ
 uA3J24/zDBPxRPBg/mZFeUM891+WGWoub7XsEB9vG50ucj+9aYot/96ivaK5PiOK
 fHgKNaMeQ/MGX9jQllrOLLpqbYlRrOM1NFF4v1/ei1eUeck45sKR8P7BHjFCGw0c
 Lm5bv4MrLZoumZq+dULA3dIcCY7ie8jxwhyQfpE3dO/rlHggfQnzW6kz6k/gI+uE
 TMsQck/JuyyLz0nyTHVgSuraC60wu3Khk5VrFzMrvLMhiATPBzlZyA2cQ9KCoYVG
 o00uH+5/F6yhUzhsxlQUAuu0Ssh/Fnar5zw==
X-ME-Sender: <xms:s_0JZS7jYKB49FN4abMwWwKthFolfOEk0e4lYT1Y4YHMMgl0kx_mRw>
 <xme:s_0JZb4quu_ZMeZoLzJ_LGjN6FMB2hvH5Rz1Z5cleeeQqEVmmbxKP6xz4aCSclHuK
 cneS0EIqdViQECecSs>
X-ME-Received: <xmr:s_0JZRc_M3dxKM35rX3E8tNGEQVmgXuuyNJ3aAd8Twnq_hX6EmDNwdBLRsH4Cso>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudekuddguddufecutefuodetggdotefrod
 ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
 necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
 enucfjughrpefkffggfgfuvfevfhfhjggtgfesthejredttdefjeenucfhrhhomhepffhm
 ihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrg
 htthgvrhhnpeeigfetveehveevffehledtueekieeikeeufeegudfgfeeghfdulefgfeev
 ledvveenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe
 gumhhithhrhiesghhuthhovhdruggvvh
X-ME-Proxy: <xmx:s_0JZfLylyttU6JEP9SOSALJM9b4npUyuaQj2Uu05c736c4vfRnqwA>
 <xmx:s_0JZWKhUyOpuSV4nuiKsyiaJn1Lqf7tg74va-r5MJhwLL3ZaxQY_w>
 <xmx:s_0JZQxf2HBehqTyPkxugjArpCcv5_bo6hOX_ojne55tZXwrgEtoqg>
 <xmx:tP0JZQyIasFlhGYXi6e9fC5XDGp2v0jth0uzIuPctZUSA05c0llUjA>
Feedback-ID: i0e71465a:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue,
 19 Sep 2023 15:59:47 -0400 (EDT)
Message-ID: <937d9927-506f-aa36-94e9-3cceb8f629dd@HIDDEN>
Date: Tue, 19 Sep 2023 22:59:43 +0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.13.0
Subject: bug#66020 (bug#64735 spin-off): regarding the default for
 read-process-output-max
Content-Language: en-US
To: Eli Zaretskii <eliz@HIDDEN>
References: <iermszrwqj4.fsf@HIDDEN>
 <35f8b664-0241-9f96-1aa0-20ca51b2d34c@HIDDEN>
 <59c30342-a7e0-d83b-a128-0faae4cbd633@HIDDEN>
 <83pm4bi6qa.fsf@HIDDEN>
 <d319bd54-3f0d-a205-3412-ef3961074416@HIDDEN>
 <83bkfs2tw5.fsf@HIDDEN>
 <18a0b4d8-32bd-3ecd-8db4-32608a1ebba7@HIDDEN>
 <83il8lxjcu.fsf@HIDDEN>
 <2e21ec81-8e4f-4c02-ea15-43bd6da3daa7@HIDDEN>
 <8334zmtwwi.fsf@HIDDEN>
 <e480d2fb-0912-c9d6-66c8-d11e07482545@HIDDEN>
 <83tts0rkh5.fsf@HIDDEN>
 <e6dd2d5c-9a88-6e18-f1e2-544a9cb1beaf@HIDDEN>
 <831qf3pd1y.fsf@HIDDEN>
 <28a7916e-92d5-77ab-a61e-f85b59ac76b1@HIDDEN>
 <83sf7jnq0m.fsf@HIDDEN>
 <5c493f86-0af5-256f-41a7-7d886ab4c5e4@HIDDEN>
 <83ledanvzw.fsf@HIDDEN>
 <bc4bb3de-d433-7249-cb53-2f312656589d@HIDDEN>
 <83r0n2m7qz.fsf@HIDDEN>
 <26afa109-9ba3-78a3-0e68-7585ae8e3a19@HIDDEN>
 <83il8dna30.fsf@HIDDEN>
 <e46f996a-0bed-8796-23d7-c9c8b7d428be@HIDDEN>
 <83bke5mhvs.fsf@HIDDEN>
 <edb397b8-d3da-6646-0a97-841ebcae2e7a@HIDDEN>
 <83a5tmk79p.fsf@HIDDEN>
From: Dmitry Gutov <dmitry@HIDDEN>
In-Reply-To: <83a5tmk79p.fsf@HIDDEN>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 66020
Cc: 66020 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.7 (-)

This is another continuation from bug#64735, a subthread in this bug 
seems more fitting, given that I did most of the tests with its patch 
applied.

On 16/09/2023 08:37, Eli Zaretskii wrote:
>> Date: Sat, 16 Sep 2023 04:32:26 +0300
>> Cc:luangruo@HIDDEN,sbaugh@HIDDEN,yantar92@HIDDEN,
>>   64735 <at> debbugs.gnu.org
>> From: Dmitry Gutov<dmitry@HIDDEN>
>>
>>>> I wonder what scenario that might become apparent in. Launching many
>>>> small processes at once? Can't think of a realistic test case.
>>> One process suffices.  The effect might not be significant, but
>>> slowdowns due to new features are generally considered regressions.
>> We'd need some objective way to evaluate this. Otherwise we'd just stop
>> at the prospect of slowing down some process somewhere by 9ns (never
>> mind speeding others up).
> That could indeed happen, and did happen in other cases.  My personal
> conclusion from similar situations is that it is impossible to tell in
> advance what the reaction will be; we need to present the numbers and
> see how the chips fall.

I wrote this test:

(defun test-ls-output ()
   (with-temp-buffer
     (let ((proc
            (make-process :name "ls"
                          :sentinel (lambda (&rest _))
                          :buffer (current-buffer)
                          :stderr (current-buffer)
                          :connection-type 'pipe
                          :command '("ls"))))
       (while (accept-process-output proc))
       (buffer-string))))

And tried to find some case where the difference is the least in favor 
of high buffer length. The one in favor of it we already know (a process 
with lots and lots of output).

But when running 'ls' on a small directory (output 500 chars long), the 
variance in benchmarking is larger than any difference I can see from 
changing read-process-output-max from 4096 to 40960 (or to 40900 even). 
The benchmark is the following:

   (benchmark 1000 '(let ((read-process-output-fast t) 
(read-process-output-max 4096)) (test-ls-output)))

When the directory is a little large (output ~50000 chars), there is 
more nuance. At first, as long as (!) read_and_insert_process_output_v2 
patch is applied and read-process-output-fast is non-nil, the difference 
is negligible:

| read-process-output-max | bench result                        |
|                    4096 | (4.566418994 28 0.8000380139999992) |
|                   40960 | (4.640526664 32 0.8330555910000008) |
|                  409600 | (4.629948652 30 0.7989731299999994) |

For completeness, here are the same results for 
read-process-output-fast=nil (emacs-29 is similar, though all a little 
slower):

| read-process-output-max | bench result                        |
|                    4096 | (4.953397326 52 1.354643750000001)  |
|                   40960 | (6.942334958 75 2.0616055079999995) |
|                  409600 | (7.124765651 76 2.0892871070000005) |

But as the session gets older (and I repeat these and other 
memory-intensive benchmarks), the outlay changes, and the larger buffer 
leads to uniformly worse number (the below is taken with 
read-process-output-fast=t; with that var set to nil the results were 
even worse):

| read-process-output-max | bench result                        |
|                    4096 | (5.02324481 41 0.8851443580000051)  |
|                   40960 | (5.438721274 61 1.2202541989999958) |
|                  409600 | (6.11188183 77 1.5461468160000038)  |

...which seems odd given that in general, the buffer length closer to 
the length of the output should be preferable, because otherwise it is 
allocated multiple times, and read_process_output is likewise called 
more. Perhaps longer strings get more difficult to allocate as 
fragmentation increases?

So, the last table is from a session I had running from yesterday, and 
the first table was produced after I restarted Emacs about an hour ago 
(the numbers were stable for 1-2 hours while I was writing this email 
on-and-off, then started degrading again a little bit, though not yet -- 
a couple of hours since -- even halfway to the numbers in the last table).

Where to go from here?

- Maybe we declare the difference insignificant and bump the value of 
read-process-output-max, given that it helps in other cases,
- Or try to find out the cause for degradation,
- Or keep the default the same, but make it easier to use different 
value for different processes (meaning, we resurrect the discussion in 
bug#38561).




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#66020; Package emacs. Full text available.
Severity set to 'wishlist' from 'normal' Request was from Stefan Kangas <stefankangas@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 16 Sep 2023 01:26:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Sep 15 21:26:35 2023
Received: from localhost ([127.0.0.1]:45112 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1qhK4w-0000a1-UD
	for submit <at> debbugs.gnu.org; Fri, 15 Sep 2023 21:26:35 -0400
Received: from lists.gnu.org ([2001:470:142::17]:56812)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <dmitry@HIDDEN>) id 1qhK4u-0000Zi-N9
 for submit <at> debbugs.gnu.org; Fri, 15 Sep 2023 21:26:33 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <dmitry@HIDDEN>) id 1qhK4i-00021c-GV
 for bug-gnu-emacs@HIDDEN; Fri, 15 Sep 2023 21:26:20 -0400
Received: from wout5-smtp.messagingengine.com ([64.147.123.21])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <dmitry@HIDDEN>) id 1qhK4f-0003bU-VL
 for bug-gnu-emacs@HIDDEN; Fri, 15 Sep 2023 21:26:20 -0400
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
 by mailout.west.internal (Postfix) with ESMTP id 8492D320091A
 for <bug-gnu-emacs@HIDDEN>; Fri, 15 Sep 2023 21:26:14 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
 by compute2.internal (MEProxy); Fri, 15 Sep 2023 21:26:14 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc
 :content-type:content-type:date:date:from:from:in-reply-to
 :message-id:mime-version:reply-to:sender:subject:subject:to:to;
 s=fm3; t=1694827573; x=1694913973; bh=SdGI/sXivr/Bm6TEtmwbQHn/9
 D9AGPCQdOVUfR48L78=; b=bJhrmA6/9vzWz0up4od2li6f1mpcaj8V0IKIl5t89
 oDXcG06Su9fW7E5B8aF8b1dYzYfxQb68/KHlzTyr6VkDvVBjsnSvA0rlIYjf1WoQ
 1F7wGrM5XrSu0M+Qg07iwoLop0EZk5tF/pzjvyvOmOYtLxEVExa0VIiPva/5VOEO
 QGBTISbAxyFTCKAAY+9k8j2cSyYHdu19ssS2uoOrjhMvhI0IZ/qQrbJjXj2Ms8b/
 iWTx6bsJO3X+qk/quZmHGBRDX0qaUttFBUIhreovWacvQlOy1b4n8kvYHboHgww+
 0JZD53je2Si4gf4Bttj+qlHOXL+RWtkXqLRKmFgqI/ZwQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
 messagingengine.com; h=cc:content-type:content-type:date:date
 :feedback-id:feedback-id:from:from:in-reply-to:message-id
 :mime-version:reply-to:sender:subject:subject:to:to:x-me-proxy
 :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=
 1694827573; x=1694913973; bh=SdGI/sXivr/Bm6TEtmwbQHn/9D9AGPCQdOV
 UfR48L78=; b=GgZaUFFbGkGiH4pVQnQCkhwr7PgUCyxTV4cB9mN9baFxB8lPPfH
 MSqBBgvkpRKPc/9KVfLTrt9y5jBHcO13+ZoCxkqHLg8Um+7rawJELtkZVKy2F7IJ
 ilJMFWcqNhibiDoYfdLRZA0hJdTDZp4qxZfDJqoTiMCRn+g9YxdSZsieQ+o+D8nq
 sEzfppXXtkT6DSph2u0s2b/7wog3oPBPbd28LR+7j5rvF9ErmkqtI8nA/xk8rz8m
 GStzbX9WEQwW4JNIlzinjddpDwiKe8OOpMFAKxNm8Q7zFsiu0YwiN3dI2XTCeKM+
 DHKjyxsQkdFCgFpDMdrMFiRb2k/Xpghobcg==
X-ME-Sender: <xms:NQQFZbOTG7Pvc_4pI9mFTkwu6TpbVCUwhZMkM4aQYa5Zoc9vVLVtpQ>
 <xme:NQQFZV_RarQJRJ44o-LXz_WzhMDLVTW_kuJdd7n9ujKqb1wKXYs9vZ1FuJl0h_z82
 NLbXIZSwkZTyvupm_Y>
X-ME-Received: <xmr:NQQFZaTXiiZybWLikVbKiC6BcfBqdyBL9g6pkslOCflws2Dw7d7bgrzGNpjTBuI>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudejfedggeeiucetufdoteggodetrfdotf
 fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
 uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfvffhufesmhdtreertd
 efjeenucfhrhhomhepffhmihhtrhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhv
 rdguvghvqeenucggtffrrghtthgvrhhnpeduteeijeeiveehveehtdehjefhtdevuedtie
 efffeivdeijeejvdevveegvdevvdenucffohhmrghinhepghhnuhdrohhrghenucevlhhu
 shhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumhhithhrhiesgh
 huthhovhdruggvvh
X-ME-Proxy: <xmx:NQQFZfuU7m4ZKhGSAsAnjxtq6L1k255Yo_2UTw4h7pLM6DA07x8RgA>
 <xmx:NQQFZTe1FtNWdPxQlvqnr2znGSVqIOOBylOjVoBjSsygQ0xz0s2BEw>
 <xmx:NQQFZb0uFYldjoghP8JnGxlWdsH2SEqHrSY33KF82HRRYtpracQwdw>
 <xmx:NQQFZRoxTk0xaaRBNsfiClR6czMZa03XjibPZwSXQyctJhqh1WbAqA>
Feedback-ID: i0e71465a:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
 <bug-gnu-emacs@HIDDEN>; Fri, 15 Sep 2023 21:26:13 -0400 (EDT)
Content-Type: multipart/mixed; boundary="------------ujujwY71SxzZu4tHORIFXUna"
Message-ID: <3a6287c3-8458-663e-ffce-8f48b30bf73d@HIDDEN>
Date: Sat, 16 Sep 2023 04:26:11 +0300
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101
 Thunderbird/102.13.0
Content-Language: en-US
To: bug-gnu-emacs@HIDDEN
From: Dmitry Gutov <dmitry@HIDDEN>
Subject: [PATCH] Reduce GC churn in read_process_output
Received-SPF: pass client-ip=64.147.123.21; envelope-from=dmitry@HIDDEN;
 helo=wout5-smtp.messagingengine.com
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001,
 SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.7 (/)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.3 (/)

This is a multi-part message in MIME format.
--------------ujujwY71SxzZu4tHORIFXUna
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit

As suggested, I'm filing this in a new bug report for wider review.

The updated patch attached.

The previous discussion was in bug#64735, and the benchmarks (which more 
or less hold for the new patch as well) can be viewed here (last table): 
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64735#506. Except the new 
version somehow performs a little better at read-process-output-max=4096 
as well, despite seemingly doing more.

Let me know if I DRYed this too much, or if there are better names for 
the extracted common routines, or etc. Or for the new variable 
(read-process-output-fast).
--------------ujujwY71SxzZu4tHORIFXUna
Content-Type: text/x-patch; charset=UTF-8;
 name="read_and_insert_process_output_v2.diff"
Content-Disposition: attachment;
 filename="read_and_insert_process_output_v2.diff"
Content-Transfer-Encoding: base64

ZGlmZiAtLWdpdCBhL3NyYy9wcm9jZXNzLmMgYi9zcmMvcHJvY2Vzcy5jCmluZGV4IDA4Y2I4
MTBlYzEzLi44ZWFkNTA4YjcyNiAxMDA2NDQKLS0tIGEvc3JjL3Byb2Nlc3MuYworKysgYi9z
cmMvcHJvY2Vzcy5jCkBAIC02MTEyLDYgKzYxMTIsMTEgQEAgcmVhZF9hbmRfZGlzcG9zZV9v
Zl9wcm9jZXNzX291dHB1dCAoc3RydWN0IExpc3BfUHJvY2VzcyAqcCwgY2hhciAqY2hhcnMs
CiAJCQkJICAgIHNzaXplX3QgbmJ5dGVzLAogCQkJCSAgICBzdHJ1Y3QgY29kaW5nX3N5c3Rl
bSAqY29kaW5nKTsKIAorc3RhdGljIHZvaWQKK3JlYWRfYW5kX2luc2VydF9wcm9jZXNzX291
dHB1dCAoc3RydWN0IExpc3BfUHJvY2VzcyAqcCwgY2hhciAqYnVmLAorCQkJCSAgICBzc2l6
ZV90IG5yZWFkLAorCQkJCXN0cnVjdCBjb2Rpbmdfc3lzdGVtICpwcm9jZXNzX2NvZGluZyk7
CisKIC8qIFJlYWQgcGVuZGluZyBvdXRwdXQgZnJvbSB0aGUgcHJvY2VzcyBjaGFubmVsLAog
ICAgc3RhcnRpbmcgd2l0aCBvdXIgYnVmZmVyZWQtYWhlYWQgY2hhcmFjdGVyIGlmIHdlIGhh
dmUgb25lLgogICAgWWllbGQgbnVtYmVyIG9mIGRlY29kZWQgY2hhcmFjdGVycyByZWFkLApA
QCAtNjIyNyw3ICs2MjMyLDExIEBAIHJlYWRfcHJvY2Vzc19vdXRwdXQgKExpc3BfT2JqZWN0
IHByb2MsIGludCBjaGFubmVsKQogICAgICBmcmllbmRzIGRvbid0IGV4cGVjdCBjdXJyZW50
LWJ1ZmZlciB0byBiZSBjaGFuZ2VkIGZyb20gdW5kZXIgdGhlbS4gICovCiAgIHJlY29yZF91
bndpbmRfY3VycmVudF9idWZmZXIgKCk7CiAKLSAgcmVhZF9hbmRfZGlzcG9zZV9vZl9wcm9j
ZXNzX291dHB1dCAocCwgY2hhcnMsIG5ieXRlcywgY29kaW5nKTsKKyAgaWYgKHJlYWRfcHJv
Y2Vzc19vdXRwdXRfZmFzdCAmJgorICAgICAgRVEgKHAtPmZpbHRlciwgUWludGVybmFsX2Rl
ZmF1bHRfcHJvY2Vzc19maWx0ZXIpKQorICAgIHJlYWRfYW5kX2luc2VydF9wcm9jZXNzX291
dHB1dCAocCwgY2hhcnMsIG5ieXRlcywgY29kaW5nKTsKKyAgZWxzZQorICAgIHJlYWRfYW5k
X2Rpc3Bvc2Vfb2ZfcHJvY2Vzc19vdXRwdXQgKHAsIGNoYXJzLCBuYnl0ZXMsIGNvZGluZyk7
CiAKICAgLyogSGFuZGxpbmcgdGhlIHByb2Nlc3Mgb3V0cHV0IHNob3VsZCBub3QgZGVhY3Rp
dmF0ZSB0aGUgbWFyay4gICovCiAgIFZkZWFjdGl2YXRlX21hcmsgPSBvZGVhY3RpdmF0ZTsK
QEAgLTYyMzYsNiArNjI0NSwxMjggQEAgcmVhZF9wcm9jZXNzX291dHB1dCAoTGlzcF9PYmpl
Y3QgcHJvYywgaW50IGNoYW5uZWwpCiAgIHJldHVybiBuYnl0ZXM7CiB9CiAKK3N0YXRpYyB2
b2lkCityZWFkX3Byb2Nlc3Nfb3V0cHV0X2JlZm9yZV9pbnNlcnQgKHN0cnVjdCBMaXNwX1By
b2Nlc3MgKnAsIExpc3BfT2JqZWN0ICpvbGRfcmVhZF9vbmx5LAorCQkJCSAgIHB0cmRpZmZf
dCAqb2xkX2JlZ3YsIHB0cmRpZmZfdCAqb2xkX3p2LAorCQkJCSAgIHB0cmRpZmZfdCAqYmVm
b3JlLCBwdHJkaWZmX3QgKmJlZm9yZV9ieXRlLAorCQkJCSAgIHB0cmRpZmZfdCAqb3BvaW50
LCBwdHJkaWZmX3QgKm9wb2ludF9ieXRlKQoreworICBGc2V0X2J1ZmZlciAocC0+YnVmZmVy
KTsKKyAgKm9wb2ludCA9IFBUOworICAqb3BvaW50X2J5dGUgPSBQVF9CWVRFOworICAqb2xk
X3JlYWRfb25seSA9IEJWQVIgKGN1cnJlbnRfYnVmZmVyLCByZWFkX29ubHkpOworICAqb2xk
X2JlZ3YgPSBCRUdWOworICAqb2xkX3p2ID0gWlY7CisKKyAgYnNldF9yZWFkX29ubHkgKGN1
cnJlbnRfYnVmZmVyLCBRbmlsKTsKKworICAvKiBJbnNlcnQgbmV3IG91dHB1dCBpbnRvIGJ1
ZmZlciBhdCB0aGUgY3VycmVudCBlbmQtb2Ytb3V0cHV0CisgICAgIG1hcmtlciwgdGh1cyBw
cmVzZXJ2aW5nIGxvZ2ljYWwgb3JkZXJpbmcgb2YgaW5wdXQgYW5kIG91dHB1dC4gICovCisg
IGlmIChYTUFSS0VSIChwLT5tYXJrKS0+YnVmZmVyKQorICAgIHNldF9wb2ludF9mcm9tX21h
cmtlciAocC0+bWFyayk7CisgIGVsc2UKKyAgICBTRVRfUFRfQk9USCAoWlYsIFpWX0JZVEUp
OworICAqYmVmb3JlID0gUFQ7CisgICpiZWZvcmVfYnl0ZSA9IFBUX0JZVEU7CisKKyAgLyog
SWYgdGhlIG91dHB1dCBtYXJrZXIgaXMgb3V0c2lkZSBvZiB0aGUgdmlzaWJsZSByZWdpb24s
IHNhdmUKKyAgICAgdGhlIHJlc3RyaWN0aW9uIGFuZCB3aWRlbi4gICovCisgIGlmICghIChC
RUdWIDw9IFBUICYmIFBUIDw9IFpWKSkKKyAgICBGd2lkZW4gKCk7Cit9CisKK3N0YXRpYyB2
b2lkCityZWFkX3Byb2Nlc3Nfb3V0cHV0X2FmdGVyX2luc2VydCAoc3RydWN0IExpc3BfUHJv
Y2VzcyAqcCwgTGlzcF9PYmplY3QgKm9sZF9yZWFkX29ubHksCisJCQkJICBwdHJkaWZmX3Qg
b2xkX2JlZ3YsIHB0cmRpZmZfdCBvbGRfenYsCisJCQkJICBwdHJkaWZmX3QgYmVmb3JlLCBw
dHJkaWZmX3QgYmVmb3JlX2J5dGUsCisJCQkJICBwdHJkaWZmX3Qgb3BvaW50LCBwdHJkaWZm
X3Qgb3BvaW50X2J5dGUpCit7CisgIHN0cnVjdCBidWZmZXIgKmI7CisKKyAgLyogTWFrZSBz
dXJlIHRoZSBwcm9jZXNzIG1hcmtlcidzIHBvc2l0aW9uIGlzIHZhbGlkIHdoZW4gdGhlCisg
ICAgIHByb2Nlc3MgYnVmZmVyIGlzIGNoYW5nZWQgaW4gdGhlIHNpZ25hbF9hZnRlcl9jaGFu
Z2UgYWJvdmUuCisgICAgIFczIGlzIGtub3duIHRvIGRvIHRoYXQuICAqLworICBpZiAoQlVG
RkVSUCAocC0+YnVmZmVyKQorICAgICAgJiYgKGIgPSBYQlVGRkVSIChwLT5idWZmZXIpLCBi
ICE9IGN1cnJlbnRfYnVmZmVyKSkKKyAgICBzZXRfbWFya2VyX2JvdGggKHAtPm1hcmssIHAt
PmJ1ZmZlciwgQlVGX1BUIChiKSwgQlVGX1BUX0JZVEUgKGIpKTsKKyAgZWxzZQorICAgIHNl
dF9tYXJrZXJfYm90aCAocC0+bWFyaywgcC0+YnVmZmVyLCBQVCwgUFRfQllURSk7CisKKyAg
dXBkYXRlX21vZGVfbGluZXMgPSAyMzsKKworICAvKiBNYWtlIHN1cmUgb3BvaW50IGFuZCB0
aGUgb2xkIHJlc3RyaWN0aW9ucworICAgICBmbG9hdCBhaGVhZCBvZiBhbnkgbmV3IHRleHQg
anVzdCBhcyBwb2ludCB3b3VsZC4gICovCisgIGlmIChvcG9pbnQgPj0gYmVmb3JlKQorICAg
IHsKKyAgICAgIG9wb2ludCArPSBQVCAtIGJlZm9yZTsKKyAgICAgIG9wb2ludF9ieXRlICs9
IFBUX0JZVEUgLSBiZWZvcmVfYnl0ZTsKKyAgICB9CisgIGlmIChvbGRfYmVndiA+IGJlZm9y
ZSkKKyAgICBvbGRfYmVndiArPSBQVCAtIGJlZm9yZTsKKyAgaWYgKG9sZF96diA+PSBiZWZv
cmUpCisgICAgb2xkX3p2ICs9IFBUIC0gYmVmb3JlOworCisgIC8qIElmIHRoZSByZXN0cmlj
dGlvbiBpc24ndCB3aGF0IGl0IHNob3VsZCBiZSwgc2V0IGl0LiAgKi8KKyAgaWYgKG9sZF9i
ZWd2ICE9IEJFR1YgfHwgb2xkX3p2ICE9IFpWKQorICAgIEZuYXJyb3dfdG9fcmVnaW9uICht
YWtlX2ZpeG51bSAob2xkX2JlZ3YpLCBtYWtlX2ZpeG51bSAob2xkX3p2KSk7CisKKyAgYnNl
dF9yZWFkX29ubHkgKGN1cnJlbnRfYnVmZmVyLCAqb2xkX3JlYWRfb25seSk7CisgIFNFVF9Q
VF9CT1RIIChvcG9pbnQsIG9wb2ludF9ieXRlKTsKK30KKworc3RhdGljIHZvaWQgcmVhZF9h
bmRfaW5zZXJ0X3Byb2Nlc3Nfb3V0cHV0IChzdHJ1Y3QgTGlzcF9Qcm9jZXNzICpwLCBjaGFy
ICpidWYsCisJCQkJICAgIHNzaXplX3QgbnJlYWQsCisJCQkJICAgIHN0cnVjdCBjb2Rpbmdf
c3lzdGVtICpwcm9jZXNzX2NvZGluZykKK3sKKyAgaWYgKCFucmVhZCB8fCBOSUxQIChwLT5i
dWZmZXIpIHx8ICFCVUZGRVJfTElWRV9QIChYQlVGRkVSIChwLT5idWZmZXIpKSkKKyAgICBy
ZXR1cm47CisKKyAgTGlzcF9PYmplY3Qgb2xkX3JlYWRfb25seTsKKyAgcHRyZGlmZl90IG9s
ZF9iZWd2LCBvbGRfenY7CisgIHB0cmRpZmZfdCBiZWZvcmUsIGJlZm9yZV9ieXRlOworICBw
dHJkaWZmX3Qgb3BvaW50LCBvcG9pbnRfYnl0ZTsKKworICByZWFkX3Byb2Nlc3Nfb3V0cHV0
X2JlZm9yZV9pbnNlcnQgKHAsICZvbGRfcmVhZF9vbmx5LCAmb2xkX2JlZ3YsICZvbGRfenYs
CisJCQkJICAgICAmYmVmb3JlLCAmYmVmb3JlX2J5dGUsICZvcG9pbnQsICZvcG9pbnRfYnl0
ZSk7CisKKyAgLyogQWRhcHRlZCBmcm9tIGNhbGxfcHJvY2Vzcy4gICovCisgIGlmIChOSUxQ
IChCVkFSIChYQlVGRkVSKHAtPmJ1ZmZlciksIGVuYWJsZV9tdWx0aWJ5dGVfY2hhcmFjdGVy
cykpCisJICAgJiYgISBDT0RJTkdfTUFZX1JFUVVJUkVfREVDT0RJTkcgKHByb2Nlc3NfY29k
aW5nKSkKKyAgICB7CisgICAgICBpbnNlcnRfMV9ib3RoIChidWYsIG5yZWFkLCBucmVhZCwg
MCwgMCwgMCk7CisgICAgICBzaWduYWxfYWZ0ZXJfY2hhbmdlIChQVCAtIG5yZWFkLCAwLCBu
cmVhZCk7CisgICAgfQorICBlbHNlCisgICAgewkJCS8qIFdlIGhhdmUgdG8gZGVjb2RlIHRo
ZSBpbnB1dC4gICovCisgICAgICBMaXNwX09iamVjdCBjdXJidWY7CisgICAgICBpbnQgY2Fy
cnlvdmVyID0gMDsKKyAgICAgIHNwZWNwZGxfcmVmIGNvdW50MSA9IFNQRUNQRExfSU5ERVgg
KCk7CisKKyAgICAgIFhTRVRCVUZGRVIgKGN1cmJ1ZiwgY3VycmVudF9idWZmZXIpOworICAg
ICAgLyogV2UgY2Fubm90IGFsbG93IGFmdGVyLWNoYW5nZS1mdW5jdGlvbnMgYmUgcnVuCisJ
IGR1cmluZyBkZWNvZGluZywgYmVjYXVzZSB0aGF0IG1pZ2h0IG1vZGlmeSB0aGUKKwkgYnVm
ZmVyLCB3aGlsZSB3ZSByZWx5IG9uIHByb2Nlc3NfY29kaW5nLnByb2R1Y2VkIHRvCisJIGZh
aXRoZnVsbHkgcmVmbGVjdCBpbnNlcnRlZCB0ZXh0IHVudGlsIHdlCisJIFRFTVBfU0VUX1BU
X0JPVEggYmVsb3cuICAqLworICAgICAgc3BlY2JpbmQgKFFpbmhpYml0X21vZGlmaWNhdGlv
bl9ob29rcywgUXQpOworICAgICAgZGVjb2RlX2NvZGluZ19jX3N0cmluZyAocHJvY2Vzc19j
b2RpbmcsCisJCQkgICAgICAodW5zaWduZWQgY2hhciAqKSBidWYsIG5yZWFkLCBjdXJidWYp
OworICAgICAgdW5iaW5kX3RvIChjb3VudDEsIFFuaWwpOworCisgICAgICBURU1QX1NFVF9Q
VF9CT1RIIChQVCArIHByb2Nlc3NfY29kaW5nLT5wcm9kdWNlZF9jaGFyLAorCQkJUFRfQllU
RSArIHByb2Nlc3NfY29kaW5nLT5wcm9kdWNlZCk7CisgICAgICBzaWduYWxfYWZ0ZXJfY2hh
bmdlIChQVCAtIHByb2Nlc3NfY29kaW5nLT5wcm9kdWNlZF9jaGFyLAorCQkJICAgMCwgcHJv
Y2Vzc19jb2RpbmctPnByb2R1Y2VkX2NoYXIpOworICAgICAgY2FycnlvdmVyID0gcHJvY2Vz
c19jb2RpbmctPmNhcnJ5b3Zlcl9ieXRlczsKKyAgICAgIGlmIChjYXJyeW92ZXIgPiAwKQor
CW1lbWNweSAoYnVmLCBwcm9jZXNzX2NvZGluZy0+Y2FycnlvdmVyLAorCQlwcm9jZXNzX2Nv
ZGluZy0+Y2FycnlvdmVyX2J5dGVzKTsKKyAgICB9CisKKyAgcmVhZF9wcm9jZXNzX291dHB1
dF9hZnRlcl9pbnNlcnQgKHAsICZvbGRfcmVhZF9vbmx5LCBvbGRfYmVndiwgb2xkX3p2LAor
CQkJCSAgICBiZWZvcmUsIGJlZm9yZV9ieXRlLCBvcG9pbnQsIG9wb2ludF9ieXRlKTsKK30K
Kwogc3RhdGljIHZvaWQKIHJlYWRfYW5kX2Rpc3Bvc2Vfb2ZfcHJvY2Vzc19vdXRwdXQgKHN0
cnVjdCBMaXNwX1Byb2Nlc3MgKnAsIGNoYXIgKmNoYXJzLAogCQkJCSAgICBzc2l6ZV90IG5i
eXRlcywKQEAgLTYzMzksNyArNjQ3MCw2IEBAIERFRlVOICgiaW50ZXJuYWwtZGVmYXVsdC1w
cm9jZXNzLWZpbHRlciIsIEZpbnRlcm5hbF9kZWZhdWx0X3Byb2Nlc3NfZmlsdGVyLAogICAo
TGlzcF9PYmplY3QgcHJvYywgTGlzcF9PYmplY3QgdGV4dCkKIHsKICAgc3RydWN0IExpc3Bf
UHJvY2VzcyAqcDsKLSAgcHRyZGlmZl90IG9wb2ludDsKIAogICBDSEVDS19QUk9DRVNTIChw
cm9jKTsKICAgcCA9IFhQUk9DRVNTIChwcm9jKTsKQEAgLTYzNTAsMzEgKzY0ODAsMTAgQEAg
REVGVU4gKCJpbnRlcm5hbC1kZWZhdWx0LXByb2Nlc3MtZmlsdGVyIiwgRmludGVybmFsX2Rl
ZmF1bHRfcHJvY2Vzc19maWx0ZXIsCiAgICAgICBMaXNwX09iamVjdCBvbGRfcmVhZF9vbmx5
OwogICAgICAgcHRyZGlmZl90IG9sZF9iZWd2LCBvbGRfenY7CiAgICAgICBwdHJkaWZmX3Qg
YmVmb3JlLCBiZWZvcmVfYnl0ZTsKLSAgICAgIHB0cmRpZmZfdCBvcG9pbnRfYnl0ZTsKLSAg
ICAgIHN0cnVjdCBidWZmZXIgKmI7Ci0KLSAgICAgIEZzZXRfYnVmZmVyIChwLT5idWZmZXIp
OwotICAgICAgb3BvaW50ID0gUFQ7Ci0gICAgICBvcG9pbnRfYnl0ZSA9IFBUX0JZVEU7Ci0g
ICAgICBvbGRfcmVhZF9vbmx5ID0gQlZBUiAoY3VycmVudF9idWZmZXIsIHJlYWRfb25seSk7
Ci0gICAgICBvbGRfYmVndiA9IEJFR1Y7Ci0gICAgICBvbGRfenYgPSBaVjsKLQotICAgICAg
YnNldF9yZWFkX29ubHkgKGN1cnJlbnRfYnVmZmVyLCBRbmlsKTsKLQotICAgICAgLyogSW5z
ZXJ0IG5ldyBvdXRwdXQgaW50byBidWZmZXIgYXQgdGhlIGN1cnJlbnQgZW5kLW9mLW91dHB1
dAotCSBtYXJrZXIsIHRodXMgcHJlc2VydmluZyBsb2dpY2FsIG9yZGVyaW5nIG9mIGlucHV0
IGFuZCBvdXRwdXQuICAqLwotICAgICAgaWYgKFhNQVJLRVIgKHAtPm1hcmspLT5idWZmZXIp
Ci0Jc2V0X3BvaW50X2Zyb21fbWFya2VyIChwLT5tYXJrKTsKLSAgICAgIGVsc2UKLQlTRVRf
UFRfQk9USCAoWlYsIFpWX0JZVEUpOwotICAgICAgYmVmb3JlID0gUFQ7Ci0gICAgICBiZWZv
cmVfYnl0ZSA9IFBUX0JZVEU7CisgICAgICBwdHJkaWZmX3Qgb3BvaW50LCBvcG9pbnRfYnl0
ZTsKIAotICAgICAgLyogSWYgdGhlIG91dHB1dCBtYXJrZXIgaXMgb3V0c2lkZSBvZiB0aGUg
dmlzaWJsZSByZWdpb24sIHNhdmUKLQkgdGhlIHJlc3RyaWN0aW9uIGFuZCB3aWRlbi4gICov
Ci0gICAgICBpZiAoISAoQkVHViA8PSBQVCAmJiBQVCA8PSBaVikpCi0JRndpZGVuICgpOwor
ICAgICAgcmVhZF9wcm9jZXNzX291dHB1dF9iZWZvcmVfaW5zZXJ0IChwLCAmb2xkX3JlYWRf
b25seSwgJm9sZF9iZWd2LCAmb2xkX3p2LAorCQkJCQkgJmJlZm9yZSwgJmJlZm9yZV9ieXRl
LCAmb3BvaW50LCAmb3BvaW50X2J5dGUpOwogCiAgICAgICAvKiBBZGp1c3QgdGhlIG11bHRp
Ynl0ZW5lc3Mgb2YgVEVYVCB0byB0aGF0IG9mIHRoZSBidWZmZXIuICAqLwogICAgICAgaWYg
KE5JTFAgKEJWQVIgKGN1cnJlbnRfYnVmZmVyLCBlbmFibGVfbXVsdGlieXRlX2NoYXJhY3Rl
cnMpKQpAQCAtNjM4NywzNSArNjQ5Niw4IEBAIERFRlVOICgiaW50ZXJuYWwtZGVmYXVsdC1w
cm9jZXNzLWZpbHRlciIsIEZpbnRlcm5hbF9kZWZhdWx0X3Byb2Nlc3NfZmlsdGVyLAogICAg
ICAgaW5zZXJ0X2Zyb21fc3RyaW5nX2JlZm9yZV9tYXJrZXJzICh0ZXh0LCAwLCAwLAogCQkJ
CQkgU0NIQVJTICh0ZXh0KSwgU0JZVEVTICh0ZXh0KSwgMCk7CiAKLSAgICAgIC8qIE1ha2Ug
c3VyZSB0aGUgcHJvY2VzcyBtYXJrZXIncyBwb3NpdGlvbiBpcyB2YWxpZCB3aGVuIHRoZQot
CSBwcm9jZXNzIGJ1ZmZlciBpcyBjaGFuZ2VkIGluIHRoZSBzaWduYWxfYWZ0ZXJfY2hhbmdl
IGFib3ZlLgotCSBXMyBpcyBrbm93biB0byBkbyB0aGF0LiAgKi8KLSAgICAgIGlmIChCVUZG
RVJQIChwLT5idWZmZXIpCi0JICAmJiAoYiA9IFhCVUZGRVIgKHAtPmJ1ZmZlciksIGIgIT0g
Y3VycmVudF9idWZmZXIpKQotCXNldF9tYXJrZXJfYm90aCAocC0+bWFyaywgcC0+YnVmZmVy
LCBCVUZfUFQgKGIpLCBCVUZfUFRfQllURSAoYikpOwotICAgICAgZWxzZQotCXNldF9tYXJr
ZXJfYm90aCAocC0+bWFyaywgcC0+YnVmZmVyLCBQVCwgUFRfQllURSk7Ci0KLSAgICAgIHVw
ZGF0ZV9tb2RlX2xpbmVzID0gMjM7Ci0KLSAgICAgIC8qIE1ha2Ugc3VyZSBvcG9pbnQgYW5k
IHRoZSBvbGQgcmVzdHJpY3Rpb25zCi0JIGZsb2F0IGFoZWFkIG9mIGFueSBuZXcgdGV4dCBq
dXN0IGFzIHBvaW50IHdvdWxkLiAgKi8KLSAgICAgIGlmIChvcG9pbnQgPj0gYmVmb3JlKQot
CXsKLQkgIG9wb2ludCArPSBQVCAtIGJlZm9yZTsKLQkgIG9wb2ludF9ieXRlICs9IFBUX0JZ
VEUgLSBiZWZvcmVfYnl0ZTsKLQl9Ci0gICAgICBpZiAob2xkX2JlZ3YgPiBiZWZvcmUpCi0J
b2xkX2JlZ3YgKz0gUFQgLSBiZWZvcmU7Ci0gICAgICBpZiAob2xkX3p2ID49IGJlZm9yZSkK
LQlvbGRfenYgKz0gUFQgLSBiZWZvcmU7Ci0KLSAgICAgIC8qIElmIHRoZSByZXN0cmljdGlv
biBpc24ndCB3aGF0IGl0IHNob3VsZCBiZSwgc2V0IGl0LiAgKi8KLSAgICAgIGlmIChvbGRf
YmVndiAhPSBCRUdWIHx8IG9sZF96diAhPSBaVikKLQlGbmFycm93X3RvX3JlZ2lvbiAobWFr
ZV9maXhudW0gKG9sZF9iZWd2KSwgbWFrZV9maXhudW0gKG9sZF96dikpOwotCi0gICAgICBi
c2V0X3JlYWRfb25seSAoY3VycmVudF9idWZmZXIsIG9sZF9yZWFkX29ubHkpOwotICAgICAg
U0VUX1BUX0JPVEggKG9wb2ludCwgb3BvaW50X2J5dGUpOworICAgICAgcmVhZF9wcm9jZXNz
X291dHB1dF9hZnRlcl9pbnNlcnQgKHAsICZvbGRfcmVhZF9vbmx5LCBvbGRfYmVndiwgb2xk
X3p2LAorCQkJCQliZWZvcmUsIGJlZm9yZV9ieXRlLCBvcG9pbnQsIG9wb2ludF9ieXRlKTsK
ICAgICB9CiAgIHJldHVybiBRbmlsOwogfQpAQCAtODc0MCw2ICs4ODIyLDEzIEBAIHN5bXNf
b2ZfcHJvY2VzcyAodm9pZCkKIC9wcm9jL3N5cy9mcy9waXBlLW1heC1zaXplLiAgU2VlIHBp
cGUoNykgbWFucGFnZSBmb3IgZGV0YWlscy4gICovKTsKICAgcmVhZF9wcm9jZXNzX291dHB1
dF9tYXggPSA0MDk2OwogCisgIERFRlZBUl9CT09MICgicmVhZC1wcm9jZXNzLW91dHB1dC1m
YXN0IiwgcmVhZF9wcm9jZXNzX291dHB1dF9mYXN0LAorCSAgICAgICBkb2M6IC8qIE5vbi1u
aWwgdG8gb3B0aW1pemUgdGhlIGluc2VydGlvbiBvZiBwcm9jZXNzIG91dHB1dC4KK1dlIHNr
aXAgY2FsbGluZyBgaW50ZXJuYWwtZGVmYXVsdC1wcm9jZXNzLWZpbHRlcicgYW5kIGRvbid0
IGFsbG9jYXRlCit0aGUgTGlzcCBzdHJpbmcgdGhhdCB3b3VsZCBiZSB1c2VkIGFzIGl0cyBh
cmd1bWVudC4gIE9ubHkgYWZmZWN0cyB0aGUKK2Nhc2Ugb2YgYXN5bmNocm9ub3VzIHByb2Nl
c3Mgd2l0aCB0aGUgZGVmYXVsdCBmaWx0ZXIuICAqLyk7CisgIHJlYWRfcHJvY2Vzc19vdXRw
dXRfZmFzdCA9IFF0OworCiAgIERFRlZBUl9JTlQgKCJwcm9jZXNzLWVycm9yLXBhdXNlLXRp
bWUiLCBwcm9jZXNzX2Vycm9yX3BhdXNlX3RpbWUsCiAJICAgICAgZG9jOiAvKiBUaGUgbnVt
YmVyIG9mIHNlY29uZHMgdG8gcGF1c2UgYWZ0ZXIgaGFuZGxpbmcgcHJvY2VzcyBlcnJvcnMu
CiBUaGlzIGlzbid0IHVzZWQgZm9yIGFsbCBwcm9jZXNzLXJlbGF0ZWQgZXJyb3JzLCBidXQg
aXMgdXNlZCB3aGVuIGEK

--------------ujujwY71SxzZu4tHORIFXUna--




Acknowledgement sent to Dmitry Gutov <dmitry@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#66020; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Wed, 20 Sep 2023 11:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.