From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 02 08:03:51 2020 Received: (at 41702) by debbugs.gnu.org; 2 Jul 2020 12:03:51 +0000 Received: from localhost ([127.0.0.1]:54500 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jqxwQ-0005CF-SK for submit@debbugs.gnu.org; Thu, 02 Jul 2020 08:03:51 -0400 Received: from mail-wr1-f42.google.com ([209.85.221.42]:36967) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jqxwK-0005Bw-LT for 41702@debbugs.gnu.org; Thu, 02 Jul 2020 08:03:45 -0400 Received: by mail-wr1-f42.google.com with SMTP id a6so27917088wrm.4 for <41702@debbugs.gnu.org>; Thu, 02 Jul 2020 05:03:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leibniz-psychology-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=K/5na8FuwM55UNbi/xMntH2GcPMJVqqa7qFMjXMAHy4=; b=P/x41HSieEdYQmwksqY5uKBFIg8+P7GLsGcPQBV3f1/vYGs5fNBhKgl5Fhpz9JoZjn wFgVxnCxqcqvFJUI08BJlu9C0zOIU+k+PAs5aHsLOi7uMPiEhRrhnk09DzxR1nuKMqWT 3PzDsgilDTsXu0vjcAEx2XowtWIIJOU2oUD6Jb8J4zug756qt6mNzRpp5ASnbHxZogTD Qb8IagcPF2AWImFI3MphwEQa9PkWZupfeaeVjmHZcA19CDmcrKroz/MzGneqpgbZL6ez E5dUyrJjmM682mGkPRpD90Mjnt9gZjzGWOgWrtxd70q4lRKy38R5FTXyzRBP8g6vvclC AETw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=K/5na8FuwM55UNbi/xMntH2GcPMJVqqa7qFMjXMAHy4=; b=fenRobRaabPRHEWdvuL87YzLdAG/sP+ecOYD4o+bYfne5pJ6qC2gOj98Er49Q0xxx/ WY3sUgAypWArLUQh6SqQK2kafjRbjBDSgwtr+oSGB47khmPr88keHcDFiMth/wvLQKpE fyDc7LW4jqGgWqb6v6ICGUbK68/sxWdqcEDk9dMTBc0TOw+sdp49byNCLPW55cniJfuI Gly1Ut1gRafctyUJHOQsgCXVNQX89QiGgt+WDPvG3Rl5an2tHX2f+b3TOZvD5Kkt8t7+ H35E+M15i4O6tJjgW9DwKSiL7yR6YlAZ3+uhh89t++qcg+RKVMRC2GNvvqHmUeRZW5vP j9qQ== X-Gm-Message-State: AOAM532C40GZe+YleK4bfKE4mxy8xfIeqxAm+aBh+bJcFOfFcvidj7O5 +5Cnn8UBJeEHWyIV8HG1+2E3uZttYntIHchVPRkNCbZo7TmHIbGjRJgsQwtQKJmAexK7JoY563/ l4jJkvvOD4bIdTlzc969qp1IE3ZINZRdpTqQgfNWOSQr8vqh5CXSUpILYA3O6vrYViXnbKF20Bh /m1vY= X-Google-Smtp-Source: ABdhPJyNW3HtLj8dKo1cK4GDDYqFqxC9qO7ekQOpJWwLPsfQAPSVF1vi4XuWjUMExfbWIaZFSdiQqg== X-Received: by 2002:adf:dd83:: with SMTP id x3mr33969406wrl.292.1593691414730; Thu, 02 Jul 2020 05:03:34 -0700 (PDT) Received: from localhost (dynamic-2a01-0c23-8021-ca00-a9a3-ebbc-f46e-d012.c23.pool.telefonica.de. [2a01:c23:8021:ca00:a9a3:ebbc:f46e:d012]) by smtp.gmail.com with ESMTPSA id z10sm5408231wrm.21.2020.07.02.05.03.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 02 Jul 2020 05:03:33 -0700 (PDT) Date: Thu, 2 Jul 2020 14:03:33 +0200 From: Lars-Dominik Braun To: Ludovic =?iso-8859-1?Q?Court=E8s?= Subject: Re: bug#41702: `guix environment` performance issues Message-ID: <20200702120333.GB4532@zpidnp36> References: <20200604082316.GA3146@zpidnp36> <87mu5gtbwg.fsf@gnu.org> <20200608090453.GC3166@zpidnp36> <87k10hp6ba.fsf@gnu.org> <20200609091522.GB8597@zpidnp36> <87wo3sjjdw.fsf@gnu.org> <87y2o3zf00.fsf@gnu.org> <20200701112453.GB25179@zpidnp36> <87eepuyk99.fsf@gnu.org> <20200702070000.GA4532@zpidnp36> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="sHrvAb52M6C8blB9" Content-Disposition: inline In-Reply-To: <20200702070000.GA4532@zpidnp36> User-Agent: Mutt/1.10.1 (2018-07-13) X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41702 Cc: 41702@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --sHrvAb52M6C8blB9 Content-Type: multipart/mixed; boundary="UHN/qo2QbUvPLonB" Content-Disposition: inline --UHN/qo2QbUvPLonB Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi (again), and the attached patch uses the new nodelay option, if we don=E2=80=99t wan= t to wait for another guile-ssh release. Lars --UHN/qo2QbUvPLonB Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="0001-guix-Add-nodelay-to-SSH-store-connection.patch" Content-Transfer-Encoding: quoted-printable =46rom 2892f79f819dd2dd9420f7e74bcb6e293d377452 Mon Sep 17 00:00:00 2001 =46rom: Lars-Dominik Braun Date: Thu, 2 Jul 2020 13:59:51 +0200 Subject: [PATCH] guix: Add nodelay to SSH store connection * gnu/packages/ssh.scm (guile-ssh)[patches]: Add patch. * gnu/packages/patches/guile-ssh-0.12.0-nodelay.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * guix/ssh.scm (open-ssh-session): Use new nodelay option. --- gnu/local.mk | 1 + .../patches/guile-ssh-0.12.0-nodelay.patch | 81 +++++++++++++++++++ gnu/packages/ssh.scm | 1 + guix/ssh.scm | 4 +- 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/guile-ssh-0.12.0-nodelay.patch diff --git a/gnu/local.mk b/gnu/local.mk index 8bb56010c2..26725cbca1 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1068,6 +1068,7 @@ dist_patch_DATA =3D \ %D%/packages/patches/guile-present-coding.patch \ %D%/packages/patches/guile-rsvg-pkgconfig.patch \ %D%/packages/patches/guile-emacs-fix-configure.patch \ + %D%/packages/patches/guile-ssh-0.12.0-nodelay.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_PATH.patch \ %D%/packages/patches/gtk2-respect-GUIX_GTK2_IM_MODULE_FILE.patch \ %D%/packages/patches/gtk2-theme-paths.patch \ diff --git a/gnu/packages/patches/guile-ssh-0.12.0-nodelay.patch b/gnu/pack= ages/patches/guile-ssh-0.12.0-nodelay.patch new file mode 100644 index 0000000000..bc649b7469 --- /dev/null +++ b/gnu/packages/patches/guile-ssh-0.12.0-nodelay.patch @@ -0,0 +1,81 @@ +commit f697c603ef196eb88c1d7d629e456bf5054e35a4 +Author: Lars-Dominik Braun +Date: Thu Jul 2 13:26:21 2020 +0200 + + modules/ssh/session.scm: Add nodelay to make-session + =20 + * modules/ssh/session.scm (make-session): Add key nodelay + +diff --git a/modules/ssh/session.scm b/modules/ssh/session.scm +index d7c0831..042bd5f 100644 +--- a/modules/ssh/session.scm ++++ b/modules/ssh/session.scm +@@ -74,7 +74,7 @@ + knownhosts timeout timeout-usec ssh1 ssh2 log-verb= osity + ciphers-c-s ciphers-s-c compression-c-s compressio= n-s-c + proxycommand stricthostkeycheck compression +- compression-level callbacks config) ++ compression-level nodelay callbacks config) + "Make a new SSH session with specified configuration.\n + Return a new SSH session." + (let ((session (%make-session))) +@@ -98,6 +98,7 @@ Return a new SSH session." + (session-set-if-specified! stricthostkeycheck) + (session-set-if-specified! compression) + (session-set-if-specified! compression-level) ++ (session-set-if-specified! nodelay) + (session-set-if-specified! callbacks) +=20 + (when config + +commit b80121ae3e851a676f25fd2b7e33371b94a6e030 +Author: Lars-Dominik Braun +Date: Thu Jul 2 08:52:13 2020 +0200 + + libguile-ssh/session-func.c: Add NODELAY option + =20 + * libguile-ssh/session-func.c (session_options, set_option): Add libss= h=E2=80=99s + nodelay option. + * tests/session.scm ("session-set!, valid values", "session-set!, inva= lid + values"): Add unit-tests. + +diff --git a/libguile-ssh/session-func.c b/libguile-ssh/session-func.c +index 48db779..9240734 100644 +--- a/libguile-ssh/session-func.c ++++ b/libguile-ssh/session-func.c +@@ -71,6 +71,7 @@ static struct symbol_mapping session_options[] =3D { + { "stricthostkeycheck", SSH_OPTIONS_STRICTHOSTKEYCHECK }, + { "compression", SSH_OPTIONS_COMPRESSION }, + { "compression-level", SSH_OPTIONS_COMPRESSION_LEVEL }, ++ { "nodelay", SSH_OPTIONS_NODELAY }, + { "callbacks", GSSH_OPTIONS_CALLBACKS }, + { NULL, -1 } + }; +@@ -366,6 +367,7 @@ set_option (SCM scm_session, struct session_data* sd, = int type, SCM value) + case SSH_OPTIONS_SSH1: + case SSH_OPTIONS_SSH2: + case SSH_OPTIONS_STRICTHOSTKEYCHECK: ++ case SSH_OPTIONS_NODELAY: + return set_bool_opt (session, type, value); +=20 + case SSH_OPTIONS_FD: +diff --git a/tests/session.scm b/tests/session.scm +index 2eb1df7..83a864d 100644 +--- a/tests/session.scm ++++ b/tests/session.scm +@@ -70,6 +70,7 @@ + nolog) + (compression "yes" "no") + (compression-level 1 2 3 4 5 6 7 8 9) ++ (nodelay #f #t) + (callbacks ((user-data . "hello") + (global-request-callback . ,(const #f)= ))))) + (res #t)) +@@ -95,6 +96,7 @@ + (log-verbosity "string" -1 0 1 2 3 4 5) + (compression 12345) + (compression-level -1 0 10) ++ (nodelay 12345 "string") + (callbacks "not a list" + ((global-request-callback . #f))))) + (res #t)) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index ea42e72de2..0d9fa5fd54 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -259,6 +259,7 @@ Additionally, various channel-specific options can be n= egotiated.") (sha256 (base32 "054hd9rzfhb48gc1hw3rphhp0cnnd4bs5qmidy5ygsyvy9ravlad")) + (patches (search-patches "guile-ssh-0.12.0-nodelay.patch")) (modules '((guix build utils))))) (build-system gnu-build-system) (outputs '("out" "debug")) diff --git a/guix/ssh.scm b/guix/ssh.scm index 2d7ca7d01d..df7a9bed4a 100644 --- a/guix/ssh.scm +++ b/guix/ssh.scm @@ -129,7 +129,9 @@ Throw an error on failure." ;; We need lightweight compression when ;; exchanging full archives. #:compression compression - #:compression-level 3))) + #:compression-level 3 + + #:nodelay #t))) =20 ;; Honor ~/.ssh/config. (session-parse-config! session) --=20 2.20.1 --UHN/qo2QbUvPLonB-- --sHrvAb52M6C8blB9 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQGzBAABCgAdFiEEyk+M9DfXR4/aBV/UQhN3ARo3hEYFAl79zQ8ACgkQQhN3ARo3 hEbEKAwAuHGzi/EBcAbji98iXuwjFX5pKKTvVGnb+EusvCFDwgQzOfKUBnFmDcb3 +C3R0/Y4rsDuvMfmpeNSdiZB4GPxiX7bOJ+uyzJLUDi/1CPvyGDsAHvF0oAGF+vp +316dHsPryS8mYUgkYOb9aLzbzTaCm/qikohd19S8jkpcb9rbxvLVxlvEsAz7s22 fxDfuYhJOGxprK3XWRK0xga8aG58x48O8uHSh93TXkLr77829Mu4zoKKzfA6Dds6 ChJWpOEbGGBnl2txafXulLTDpywbGs6Ir4kDvfYVBENAyOXsws/VVtZwfNWbgZ6B PuSDP9dXaOa0hRU9hcpzNma9h3qwYEvad1TG62V9la6aBtO3/f6P49uXUW9Azo3q 3zj/npLqKcrn7fr+vk29p62KUqze5rvJ80IYbPEyhWtOhMD3CS5dkRiW2Q8igKGS DxVVz0R/AFgFPJc/RTpF1KvyPBvSeQgv48OamXBOYEF5C18qZO/yOE0lCmO4JVwi vrjtLqdk =tkfu -----END PGP SIGNATURE----- --sHrvAb52M6C8blB9--