From 3faff776a84fb6d565c83d17c26aed2b49c90bcccaf5945a235b12c931d9fee8 Mon Sep 17 00:00:00 2001 From: Luca Beltrame Date: Wed, 19 Sep 2018 05:44:05 +0000 Subject: [PATCH] - Add upstream patch 0001-sftp-bump-pending-request-count-from-1-to-128.patch * Increase sftp file reading speed up to 20 times OBS-URL: https://build.opensuse.org/package/show/KDE:Applications/kio-extras5?expand=0&rev=85 --- ...-pending-request-count-from-1-to-128.patch | 60 +++++++++++++++++++ kio-extras5.changes | 6 ++ kio-extras5.spec | 4 +- 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 0001-sftp-bump-pending-request-count-from-1-to-128.patch diff --git a/0001-sftp-bump-pending-request-count-from-1-to-128.patch b/0001-sftp-bump-pending-request-count-from-1-to-128.patch new file mode 100644 index 0000000..95be3ec --- /dev/null +++ b/0001-sftp-bump-pending-request-count-from-1-to-128.patch @@ -0,0 +1,60 @@ +From 40d962d80b6f2e9d04428c5d1944834de1208fac Mon Sep 17 00:00:00 2001 +From: Harald Sitter +Date: Wed, 12 Sep 2018 16:58:04 +0200 +Subject: [PATCH] [sftp] bump pending request count from 1 to 128 + +Summary: +with the previous value we basically did sync reading which means that +network and cyrptographic overhead head a huge impact on throughput. +meanwhile the perfect way to use asyncness is to schedule a whole bunch of +requests before starting to read. +previously this was documented as auto-adjusting, which it never was, +there's also little to be gained from adjusting this value on the fly. +more requests in most scenarios will simply mean a larger RAM footprint as +more data potentially sits in libssh waiting to be read. with 128 requests +that'd be ~8mb (assuming the file transferred is that large) + +this improves read performance with libssh 0.8 by up to 20 times for large +files. read performance with libssh 0.6 is 2 to 3 times better. +the faster the connection the higher the gain of course. + +128 gives somewhat competitive performance results compared to openssh's +ssh implementations while not having too large a footprint. + +in raw numbers: a local link read was averaging around 10mb/s on both +libssh versions. with 128 requests this goes up to 200. competitive is +between 200 and 300 it seems (obviously all specific to my system) + +CHANGELOG: sftp file reading is now up to 20 times faster + +Reviewers: broulik + +Reviewed By: broulik + +Differential Revision: https://phabricator.kde.org/D15452 +--- + sftp/kio_sftp.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/sftp/kio_sftp.h b/sftp/kio_sftp.h +index cc6b9e09..e5639970 100644 +--- a/sftp/kio_sftp.h ++++ b/sftp/kio_sftp.h +@@ -141,10 +141,11 @@ private: // Private variables + * @param file the sftp_file object which should be transferred. + * @param sb the attributes of that sftp_file object. + * @param maxPendingRequests the maximum number of parallel requests to start with. +- * The number will be adjusted automatically depending +- * on the connection speed. ++ * The more are pending the higher the potential memory ++ * foot print, however if the connection allows it ++ * we'll get better throughput. + */ +- GetRequest(sftp_file file, sftp_attributes sb, ushort maxPendingRequests = 1); ++ GetRequest(sftp_file file, sftp_attributes sb, ushort maxPendingRequests = 128); + /** + * Removes all pending requests and closes the SFTP channel and attributes + * in order to avoid memory leaks. +-- +2.18.0 + diff --git a/kio-extras5.changes b/kio-extras5.changes index 618c3b1..9d202a5 100644 --- a/kio-extras5.changes +++ b/kio-extras5.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Wed Sep 19 05:43:04 UTC 2018 - Luca Beltrame + +- Add upstream patch 0001-sftp-bump-pending-request-count-from-1-to-128.patch + * Increase sftp file reading speed up to 20 times + ------------------------------------------------------------------- Fri Sep 7 08:12:12 UTC 2018 - lbeltrame@kde.org diff --git a/kio-extras5.spec b/kio-extras5.spec index d130fac..15d5bde 100644 --- a/kio-extras5.spec +++ b/kio-extras5.spec @@ -31,6 +31,8 @@ Url: http://www.kde.org Source: kio-extras-%{version}.tar.xz Source99: %{name}-rpmlintrc Patch0: fix-mtp-paste-with-KF5-5.25.diff +# PATCH-FEATURE-UPSTREAM +Patch1: 0001-sftp-bump-pending-request-count-from-1-to-128.patch BuildRequires: OpenEXR-devel BuildRequires: flac-devel BuildRequires: gperf @@ -101,7 +103,7 @@ This is the development package for libkioarchive %prep %setup -q -n kio-extras-%{version} -%patch0 -p1 +%autopatch -p1 sed -i '/^add_subdirectory( doc )/d' CMakeLists.txt %build