Jussi Kivilinna
2b5718c1f7
common/iobuf: optimize iobuf_read_line
...
* common/iobuf.c (iobuf_read_line): Add fast path for finding '\n'
character in buffer.
--
This patch reduce per byte overhead in iobuf_read_line by avoiding
using iobuf_get when possible and use memchr to find '\n'. This
speeds armored decryption.
Benchmark results below, tested on Intel Core i7-4790K (turbo off).
Encrypted 2 GiB through pipe to ramfs file using AES128. Decrypt
ramfs file out through pipe to /dev/null.
before patch-set
----------------
gpg process
armor: user time pipe transfer rate
encrypt-aead: 13.8 140 MB/s
decrypt-aead: 30.6 68 MB/s
encrypt-cfb: 17.4 114 MB/s
decrypt-cfb: 32.6 64 MB/s
after (decrypt+iobuf opt)
-------------------------
gpg process
armor: user time pipe transfer rate
decrypt-aead: 22.5 92 MB/s
decrypt-cfb: 24.4 85 MB/s
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
2018-11-08 21:31:12 +02:00
..
2018-03-23 08:37:14 +01:00
2017-05-11 18:12:37 +02:00
2018-10-24 15:56:18 -04:00
2018-03-21 09:15:13 +01:00
2018-02-14 12:21:44 +01:00
2017-12-11 10:42:23 +01:00
2018-02-14 12:21:44 +01:00
2017-04-28 10:06:33 +09:00
2018-10-25 16:53:05 -04:00
2017-05-10 11:13:12 +09:00
2016-11-05 12:02:19 +01:00
2017-04-28 10:06:33 +09:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2015-10-28 10:20:17 +01:00
2017-04-28 10:06:33 +09:00
2015-04-24 16:42:28 +02:00
2016-11-05 12:02:19 +01:00
2018-05-29 13:01:12 +02:00
2018-05-29 13:01:12 +02:00
2018-10-24 15:56:18 -04:00
2018-10-24 15:56:18 -04:00
2017-02-24 13:48:28 +01:00
2017-02-24 13:48:28 +01:00
2011-02-04 12:57:53 +01:00
2017-11-29 11:32:42 +01:00
2018-05-13 13:29:40 +02:00
2017-11-29 11:32:42 +01:00
2017-11-29 11:32:42 +01:00
2017-04-28 10:06:33 +09:00
2016-11-05 12:02:19 +01:00
2011-02-04 12:57:53 +01:00
2016-11-05 12:02:19 +01:00
2014-03-12 18:35:36 +01:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2017-11-01 18:35:29 +01:00
2016-11-05 12:02:19 +01:00
2013-05-07 21:35:48 +02:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2018-04-09 14:44:21 +02:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2015-11-17 12:50:22 +01:00
2018-06-12 16:11:19 +02:00
2017-04-28 10:06:33 +09:00
2018-11-08 21:31:12 +02:00
2018-01-24 18:38:17 +01:00
2015-12-14 16:21:19 +01:00
2016-11-05 12:02:19 +01:00
2017-02-16 17:21:05 +01:00
2017-02-16 17:21:05 +01:00
2017-03-07 10:42:46 +09:00
2018-06-12 13:46:00 +02:00
2018-06-12 13:46:00 +02:00
2016-11-05 12:02:19 +01:00
2018-07-27 12:24:23 +02:00
2018-07-27 12:24:23 +02:00
2017-02-21 13:11:46 -05:00
2016-11-05 12:02:19 +01:00
2018-05-13 13:29:40 +02:00
2017-02-24 13:48:28 +01:00
2017-02-24 13:48:28 +01:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2018-10-25 16:53:05 -04:00
2018-10-25 16:53:05 -04:00
2011-02-04 12:57:53 +01:00
2017-02-21 13:11:46 -05:00
2018-06-21 12:58:29 +02:00
2018-10-24 15:56:18 -04:00
2018-01-21 16:30:53 +01:00
2018-10-24 15:56:18 -04:00
2017-10-17 21:10:19 +02:00
2017-10-17 21:10:19 +02:00
2016-03-02 14:27:30 +01:00
2017-04-28 10:06:33 +09:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2017-02-21 13:11:46 -05:00
2016-11-05 12:02:19 +01:00
2018-10-25 16:53:05 -04:00
2018-10-24 15:56:18 -04:00
2018-03-23 08:37:14 +01:00
2016-11-05 12:02:19 +01:00
2018-10-24 15:56:18 -04:00
2017-04-28 10:06:33 +09:00
2018-09-06 11:41:13 +09:00
2017-05-24 17:01:48 +02:00
2016-11-05 12:02:19 +01:00
2017-06-23 12:01:20 +02:00
2018-10-24 15:56:18 -04:00
2017-07-17 15:53:16 +02:00
2017-02-24 13:48:28 +01:00
2017-02-24 13:48:28 +01:00
2018-10-02 14:22:24 +09:00
2017-07-25 12:43:37 +02:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2018-10-24 15:56:18 -04:00
2016-12-20 18:39:30 +01:00
2017-01-12 10:39:19 +01:00
2016-11-05 12:02:19 +01:00
2017-01-02 13:29:18 +01:00
2016-11-05 12:02:19 +01:00
2018-07-27 12:24:23 +02:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2018-07-02 20:25:30 +02:00
2016-11-05 12:02:19 +01:00
2017-04-28 10:06:33 +09:00
2016-11-05 12:02:19 +01:00
2017-05-24 17:07:13 +02:00
2017-07-17 15:53:16 +02:00
2017-02-24 13:48:28 +01:00
2017-02-24 13:48:28 +01:00
2017-02-24 13:48:28 +01:00
2016-11-05 12:02:19 +01:00
2017-02-24 13:48:28 +01:00
2017-02-24 13:48:28 +01:00
2016-11-05 12:02:19 +01:00
2017-01-05 20:43:40 +01:00
2016-11-05 12:02:19 +01:00
2017-02-21 13:11:46 -05:00
2017-01-17 10:19:06 +01:00
2017-02-24 13:48:28 +01:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2017-02-24 13:48:28 +01:00
2017-02-24 13:48:28 +01:00
2018-07-02 20:25:30 +02:00
2016-11-05 12:02:19 +01:00
2017-02-24 13:48:28 +01:00
2017-02-24 13:48:28 +01:00
2018-02-22 15:32:36 +01:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00
2017-02-21 13:11:46 -05:00
2016-11-05 12:02:19 +01:00
2016-11-05 12:02:19 +01:00