Received: by 10.213.65.68 with SMTP id h4csp957911imn; Tue, 20 Mar 2018 21:44:35 -0700 (PDT) X-Google-Smtp-Source: AG47ELvEIU4guat7o56IMItGOwBbhxv+hV2z365Jf6z499iJU+8ne8BR2P7O45DURmXmi+26WgUX X-Received: by 10.98.13.23 with SMTP id v23mr11817577pfi.202.1521607475833; Tue, 20 Mar 2018 21:44:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521607475; cv=none; d=google.com; s=arc-20160816; b=0fZzFkicDCtPFozymOkKBVpMOyLBqn2XhjecIX4f5aIVddgCtoKL8sN0sw94C1VrtR wgNEyQLQUhFPHD6a+Nrqwht+IDYxfD3v5hjxE4IfNxFQ+TXZL0utF13qyLLbEGfS5A9J VKUByKTKx/Z2jv6wgZmF5p9H3caHsMEgyO/76VjTuLFbvX1Hay160MbL7c7ade6N0KjG 7/d0+1n5KXNNBmKLdOekWz9geaj0MlwX8nIiWx3osvXLhr5jHIgu3w8umtD2DPzgy85T 79kHa+gOmSY5QQnTcqqymcUtf/RirC43Z61MP3WWuB4FhTCdV4OMycSmAP36TVCvEPTk RW0g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:dlp-filter:cms-type:message-id :date:subject:cc:to:from:dkim-signature:dkim-filter :arc-authentication-results; bh=vr/Togywm3in8LH3CkHJtNe6PUqv3MhRmFKKK/Iz3lQ=; b=aWScAGwbKRklnjDLxLWRO2XsN0s32dv6/11LWjPCbxMG5m5OyLlkwDcuzc6dkm/PZd QcM542xjh39Z4ttNrRM5LjGV+RDlWmoW/FypcGJJqjqMtZtQy0d7O/58roX4wnPZ8BIZ MJIYjUXMOC/Z/8htf5FEjLxfmNoYgkbrcIQpxCtQf4/1i1OylU/5reatWhpwCRVjO3cc fLpiTE5jOS52UL9lVppm2Gvh3WcZmyqh8C1g3SrlpAxKXsQM+TrNN3DsQb6he+eu4EoG Bfu+9CxlZqUjksk4Yods+lpHfFUz9j6leEKw3BWk2oRwXy1tFzFBuJfz/nlZOi6Dx6Le Pujg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=hid4mJRo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 92-v6si3060048plc.713.2018.03.20.21.44.21; Tue, 20 Mar 2018 21:44:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@samsung.com header.s=mail20170921 header.b=hid4mJRo; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=samsung.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752304AbeCUEnG (ORCPT + 99 others); Wed, 21 Mar 2018 00:43:06 -0400 Received: from mailout4.samsung.com ([203.254.224.34]:45227 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751732AbeCUElj (ORCPT ); Wed, 21 Mar 2018 00:41:39 -0400 Received: from epcas5p4.samsung.com (unknown [182.195.41.42]) by mailout4.samsung.com (KnoxPortal) with ESMTP id 20180321044138epoutp04b36ea20d518b06edfba4c0551f4b91fc~d1cagSXd81881018810epoutp045 for ; Wed, 21 Mar 2018 04:41:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout4.samsung.com 20180321044138epoutp04b36ea20d518b06edfba4c0551f4b91fc~d1cagSXd81881018810epoutp045 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1521607298; bh=vr/Togywm3in8LH3CkHJtNe6PUqv3MhRmFKKK/Iz3lQ=; h=From:To:Cc:Subject:Date:References:From; b=hid4mJRofBBMcEsl3r/4JFImPyKg0cY4OL1BatSVGbsSChue431k1OFImxQhyY91f hAYy6pjC0onxdyhJSiUkPvhDafPYier0uhVLasS/gKFAI006F1Uj07gmjr+TkSg8eO 1JVFOlJ9u3etclbU5XnuWtkDlhscAXsHktmKAR+A= Received: from epsmges5p3new.samsung.com (unknown [182.195.40.75]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20180321044137epcas5p39a0f6cb8cf926303b01afd33a98096e6~d1caAWmDm1269312693epcas5p3V; Wed, 21 Mar 2018 04:41:37 +0000 (GMT) Received: from epcas5p1.samsung.com ( [182.195.41.39]) by epsmges5p3new.samsung.com (Symantec Messaging Gateway) with SMTP id 7C.53.04390.182E1BA5; Wed, 21 Mar 2018 13:41:37 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas5p2.samsung.com (KnoxPortal) with ESMTPA id 20180321044137epcas5p221e7ee4a0b7464eaa00dad8320f0251d~d1cZpQiLQ2124321243epcas5p2r; Wed, 21 Mar 2018 04:41:37 +0000 (GMT) Received: from epsmgms1p2new.samsung.com (unknown [182.195.42.42]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20180321044137epsmtrp27a33c6c1a4a7ff6e7ff2d2ff23af5f5b~d1cZnKKm50397703977epsmtrp2l; Wed, 21 Mar 2018 04:41:37 +0000 (GMT) X-AuditID: b6c32a4b-cb9ff70000001126-3f-5ab1e281c8a7 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2new.samsung.com (Symantec Messaging Gateway) with SMTP id 3E.38.03798.182E1BA5; Wed, 21 Mar 2018 13:41:37 +0900 (KST) Received: from localhost.localdomain (unknown [107.108.92.210]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20180321044130epsmtip2abb27a7c3a362dee440657de0d314a92~d1cTeNx4k2672226722epsmtip2x; Wed, 21 Mar 2018 04:41:30 +0000 (GMT) From: Maninder Singh To: herbert@gondor.apana.org.au, davem@davemloft.net, minchan@kernel.org, ngupta@vflare.org, sergey.senozhatsky.work@gmail.com, keescook@chromium.org, anton@enomsg.org, ccross@android.com, tony.luck@intel.com, akpm@linux-foundation.org, colin.king@canonical.com Cc: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, pankaj.m@samsung.com, a.sahrawat@samsung.com, v.narang@samsung.com, Maninder Singh Subject: [PATCH 0/1] cover-letter/lz4: Implement lz4 with dynamic offset length. Date: Wed, 21 Mar 2018 10:10:41 +0530 Message-Id: <1521607242-3968-1-git-send-email-maninder1.s@samsung.com> X-Mailer: git-send-email 1.9.1 X-Brightmail-Tracker: H4sIAAAAAAAAA0VTf0wbVRzPu17vbotnboXhsxpCLhIDSY+7roWHAecc2S4ZKm6JMyxLvZQL RekP7woTTQxkuDgatLJFSemGsmUb3TKgAiqlS9dmgxlFiUqG21BwiUKWkbWORViiba+L/32/ nx/fz/e9vEfpDJOEkWpyeWXFJTWzxGZ8PFHyrKljaaSe77z4DJqNyCg4dIFAl8dK0Fcja3q0 cb6bQMEfOnHkW3kafedzot8W/sHQTxNBAiX6j+DozP1VEg13Bki0cGcMQ0v+Hgzd+XEBR/Fr J8ALW8TxyLheDLR3E2Jf+ywujg7OY6L/4yQQvwncIsXxWLF4anIZE8Oho4Q43buBix+NhtJk 8ku9mAoX1tH1cpVDlhpkpUh22d0NTa7GanbPPttOm7WcF0xCJapgi1ySU65ma2rrTLuamtNn Y4tapeaWNFQnqSpb9nyV4m7xykUOt+qtZg8IgpkT+ArObDZzFuvB58zWtOQN2XFpfgP3fPrS OwsP/GQ7WBS6wCYKMhY4M7uu7wKbKQMTAdAXu0xqTRLA9Y41QmvWAPzi5CLxyDIw2JuzRAE8 efRmljAwfwO4cpvO1ATDwdDEJJ4R5TM+DI7dimVH6ZhhAM/PJfCMKo/ZC6Orv2JdgKJwphiO TddmYJrZBcN9vwAtrRBeu3osmwaZwyT8+XqC1Iga+H3wdE6UB1emRnO4EabuRomcAcCb5+7r tOY4gMkTi7im2g5/v36FzCTrmBI4NFGmwdUwuT6LZWod8zjs3ridXQ4yNPzwiEGTFMPO+WG9 Vj8FU/fu5SaKMHhpILfDDphI/KvPWA3MQTg3YPSDwsD/WZ8DEAJPyh7V2SirVs82l3yIUyWn 2uJq5OxuZxhkX27pnq9BeKY2DhgKsI/RqGCk3qCXWtU2ZxxASsfm0/HX0xDdILW9Kytum9LS LKtxYE3f5Sc641a7O/0PXF6bYKnkLeXlFQLPV1rYJ+gdr9bUG5hGySu/JcseWXnkw6hNxnaA p/oPm9TB1c+iPn9JYc+Z3aXcw532ZOv7BW03cFJHGvnI1siBq/sdVW97TG9yh1680PDavr5Y gW2to+PBEDVzl/12aFue88byX6eVsn7+oemKe2/pB1PK1PbQe8fyF2P00v4/7Rcrdve+wsWI 6bpAik/1nTq+5Q/by8tn9T3RORZXHZJQqlNU6T9TUZhezwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrELMWRmVeSWpSXmKPExsWy7bCSvG7jo41RBltfc1pc3J1qMWf9GjaL g1s1LbZv/MZq8Xt1L5vFnPMtLBbdr2QsznTnWty/95PJ4vKuOWwWh+e3sVgs+/qe3WJDyyx2 i3tvtjJZPJowicnizYV7LBaHTs5ldBD02LZ7G6vHrIZeNo/ZDRdZPLasvMnkMaH/E6PHzll3 2T22HVD1WLznJZPHplWdbB4nZvxm8ejbsgoo+Wkzq8fnTXIBvFFcNimpOZllqUX6dglcGftu /mYpmOZbce/7BPYGxoeGXYycHBICJhKLVs5g7WLk4hAS2M0ocXHiTnaIhLTEz3/vWSBsYYmV /56zQxR9YpS4cKaBDSTBJqAnsWrXHhaQhIjATCaJnSe3M4M4zALbGCV23FoANkpYIEDi780l QFUcHCwCqhJbT/iAhHkF3CQ2zb7KCLFBTuLkscmsExh5FjAyrGKUTC0ozk3PLTYsMMpLLdcr TswtLs1L10vOz93ECA55La0djCdOxB9iFOBgVOLhtRDbGCXEmlhWXJl7iFGCg1lJhPdQBFCI NyWxsiq1KD++qDQntfgQozQHi5I4r3z+sUghgfTEktTs1NSC1CKYLBMHp1QD49SkUxYdh8/l LP//eUJBgpuwsdWe2IUzF03N5wmZ1GimFHU02kD1tcSZuZtO9SpPlsuUrtZbydDjwDzx5pKV lguuTZHKzhQP2eW4qdW14Iqr03G1RaKbBb8p/DHOq4mPkVUMbWi+eu2BYhzPDa6w/asP5R11 mPxzqaz8Qa1le54tqJD+XPzWUYmlOCPRUIu5qDgRAE3PWsJ1AgAA X-CMS-MailID: 20180321044137epcas5p221e7ee4a0b7464eaa00dad8320f0251d X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-MTR: 20180321044137epcas5p221e7ee4a0b7464eaa00dad8320f0251d CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20180321044137epcas5p221e7ee4a0b7464eaa00dad8320f0251d X-RootMTR: 20180321044137epcas5p221e7ee4a0b7464eaa00dad8320f0251d References: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org (Added cover letter to avoid much text in patch description) LZ4 specification defines 2 byte offset length for 64 KB data. But in case of ZRAM we compress data per page and in most of architecture PAGE_SIZE is 4KB. So we can decide offset length based on actual offset value. For this we can reserve 1 bit to decide offset length (1 byte or 2 byte). 2 byte required only if ofsset is greater than 127, else 1 byte is enough. With this new implementation new offset value can be at MAX 32 KB. Thus we can save more memory for compressed data. results checked with new implementation:- comression size for same input source (LZ4_DYN < LZO < LZ4) LZO ======= orig_data_size: 78917632 compr_data_size: 15894668 mem_used_total: 17117184 LZ4 ======== orig_data_size: 78917632 compr_data_size: 16310717 mem_used_total: 17592320 LZ4_DYN ======= orig_data_size: 78917632 compr_data_size: 15520506 mem_used_total: 16748544 checked performance with below tool:- https://github.com/sergey-senozhatsky/zram-perf-test # ./fio-perf-o-meter.sh /tmp/test-fio-zram-lz4 /tmp/test-fio-zram-lz4_dyn Processing /tmp/test-fio-zram-lz4 Processing /tmp/test-fio-zram-lz4_dyn #jobs1 WRITE: 1101.7MB/s 1197.7MB/s WRITE: 799829KB/s 900838KB/s READ: 2670.2MB/s 2649.5MB/s READ: 2027.8MB/s 2039.9MB/s READ: 603703KB/s 597855KB/s WRITE: 602943KB/s 597103KB/s READ: 680438KB/s 707986KB/s WRITE: 679582KB/s 707095KB/s #jobs2 WRITE: 1993.2MB/s 2121.2MB/s WRITE: 1654.1MB/s 1700.2MB/s READ: 5038.2MB/s 4970.9MB/s READ: 3930.1MB/s 3908.5MB/s READ: 1113.2MB/s 1117.4MB/s WRITE: 1111.8MB/s 1115.2MB/s READ: 1255.8MB/s 1286.5MB/s WRITE: 1254.2MB/s 1284.9MB/s #jobs3 WRITE: 2875.6MB/s 3010.3MB/s WRITE: 2394.4MB/s 2363.2MB/s READ: 7384.7MB/s 7314.3MB/s READ: 5389.5MB/s 5427.6MB/s READ: 1570.8MB/s 1557.3MB/s WRITE: 1568.8MB/s 1555.3MB/s READ: 1848.5MB/s 1854.0MB/s WRITE: 1846.2MB/s 1851.7MB/s #jobs4 WRITE: 3720.3MB/s 3077.4MB/s WRITE: 3027.4MB/s 3072.8MB/s READ: 9694.7MB/s 9822.6MB/s READ: 6606.5MB/s 6617.2MB/s READ: 1941.6MB/s 1966.8MB/s WRITE: 1939.1MB/s 1964.3MB/s READ: 2405.3MB/s 2347.5MB/s WRITE: 2402.3MB/s 2344.5MB/s #jobs5 WRITE: 3335.6MB/s 3360.7MB/s WRITE: 2670.2MB/s 2677.9MB/s READ: 9455.3MB/s 8782.2MB/s READ: 6534.8MB/s 6501.7MB/s READ: 1848.9MB/s 1858.3MB/s WRITE: 1846.6MB/s 1855.1MB/s READ: 2232.4MB/s 2223.7MB/s WRITE: 2229.6MB/s 2220.9MB/s #jobs6 WRITE: 3896.5MB/s 3772.9MB/s WRITE: 3171.1MB/s 3109.4MB/s READ: 11060MB/s 11120MB/s READ: 7375.8MB/s 7384.7MB/s READ: 2132.5MB/s 2133.1MB/s WRITE: 2129.8MB/s 2131.3MB/s READ: 2608.4MB/s 2627.3MB/s WRITE: 2605.7MB/s 2623.2MB/s #jobs7 WRITE: 4129.4MB/s 4083.2MB/s WRITE: 3364.5MB/s 3384.4MB/s READ: 12088MB/s 11062MB/s READ: 7868.3MB/s 7851.5MB/s READ: 2277.8MB/s 2291.6MB/s WRITE: 2274.9MB/s 2288.7MB/s READ: 2798.5MB/s 2890.1MB/s WRITE: 2794.1MB/s 2887.4MB/s #jobs8 WRITE: 4623.3MB/s 4794.9MB/s WRITE: 3749.3MB/s 3676.9MB/s READ: 12337MB/s 14076MB/s READ: 8320.1MB/s 8229.4MB/s READ: 2496.9MB/s 2486.3MB/s WRITE: 2493.8MB/s 2483.2MB/s READ: 3340.4MB/s 3370.6MB/s WRITE: 3336.2MB/s 3366.4MB/s #jobs9 WRITE: 4427.6MB/s 4341.3MB/s WRITE: 3542.6MB/s 3597.2MB/s READ: 10094MB/s 9888.5MB/s READ: 7863.5MB/s 8119.9MB/s READ: 2357.1MB/s 2382.1MB/s WRITE: 2354.1MB/s 2379.1MB/s READ: 2828.8MB/s 2826.2MB/s WRITE: 2825.3MB/s 2822.7MB/s #jobs10 WRITE: 4463.9MB/s 4327.7MB/s WRITE: 3637.7MB/s 3592.4MB/s READ: 10020MB/s 11118MB/s READ: 7837.8MB/s 8098.7MB/s READ: 2459.6MB/s 2406.5MB/s WRITE: 2456.5MB/s 2403.4MB/s READ: 2804.2MB/s 2829.8MB/s WRITE: 2800.7MB/s 2826.2MB/s jobs1 perfstat stalled-cycles-frontend 20,23,52,25,317 ( 54.32%) 19,29,10,49,608 ( 54.50%) instructions 44,62,30,88,401 ( 1.20) 42,50,67,71,907 ( 1.20) branches 7,12,44,77,233 ( 738.975) 6,64,52,15,491 ( 725.584) branch-misses 2,38,66,520 ( 0.33%) 2,04,33,819 ( 0.31%) jobs2 perfstat stalled-cycles-frontend 42,82,90,69,149 ( 56.63%) 41,58,70,01,387 ( 56.01%) instructions 85,33,18,31,411 ( 1.13) 85,32,92,28,973 ( 1.15) branches 13,35,34,99,713 ( 677.499) 13,34,97,00,453 ( 693.104) branch-misses 4,50,17,075 ( 0.34%) 4,47,28,378 ( 0.34%) jobs3 perfstat stalled-cycles-frontend 66,01,57,23,062 ( 57.10%) 65,86,74,97,814 ( 57.30%) instructions 1,28,18,27,80,041 ( 1.11) 1,28,04,92,91,306 ( 1.11) branches 20,06,14,16,000 ( 651.453) 20,02,85,32,864 ( 652.536) branch-misses 7,10,66,773 ( 0.35%) 7,12,75,728 ( 0.36%) jobs4 perfstat stalled-cycles-frontend 91,98,71,83,315 ( 58.09%) 93,70,91,50,920 ( 58.66%) instructions 1,70,82,79,66,403 ( 1.08) 1,71,18,67,74,366 ( 1.07) branches 26,73,53,03,398 ( 621.532) 26,80,89,38,054 ( 618.718) branch-misses 9,82,07,177 ( 0.37%) 9,81,64,098 ( 0.37%) jobs5 perfstat stalled-cycles-frontend 1,47,29,71,29,605 ( 63.59%) 1,47,91,01,92,835 ( 63.86%) instructions 2,18,90,41,63,988 ( 0.95) 2,18,55,73,09,594 ( 0.94) branches 34,64,46,32,880 ( 553.209) 34,55,08,02,781 ( 551.953) branch-misses 14,16,79,279 ( 0.41%) 13,84,85,054 ( 0.40%) jobs6 perfstat stalled-cycles-frontend 2,02,92,92,98,242 ( 66.70%) 2,05,33,49,39,627 ( 67.01%) instructions 2,65,13,90,22,217 ( 0.87) 2,64,84,45,49,149 ( 0.86) branches 42,11,54,07,400 ( 510.085) 42,03,58,57,789 ( 505.746) branch-misses 17,71,33,628 ( 0.42%) 17,74,31,942 ( 0.42%) jobs7 perfstat stalled-cycles-frontend 2,79,22,74,37,283 ( 70.23%) 2,80,02,50,89,154 ( 70.48%) instructions 3,11,90,38,02,741 ( 0.78) 3,09,20,69,87,835 ( 0.78) branches 49,71,39,90,321 ( 460.940) 49,10,44,23,983 ( 455.686) branch-misses 22,43,84,102 ( 0.45%) 21,96,67,440 ( 0.45%) jobs8 perfstat stalled-cycles-frontend 3,59,62,09,66,766 ( 73.38%) 3,58,04,85,16,351 ( 73.37%) instructions 3,43,83,05,02,841 ( 0.70) 3,43,33,76,84,985 ( 0.70) branches 54,02,15,25,784 ( 406.256) 53,91,13,38,774 ( 407.265) branch-misses 25,20,35,507 ( 0.47%) 25,05,71,030 ( 0.46%) jobs9 perfstat stalled-cycles-frontend 4,15,33,64,48,628 ( 73.76%) 4,22,88,52,47,923 ( 74.16%) instructions 3,90,79,09,16,552 ( 0.69) 3,91,12,92,41,516 ( 0.69) branches 61,66,87,76,271 ( 403.896) 61,73,58,17,174 ( 399.363) branch-misses 28,46,21,136 ( 0.46%) 28,45,74,774 ( 0.46%) jobs10 perfstat stalled-cycles-frontend 4,74,43,71,32,846 ( 74.30%) 4,66,34,70,59,452 ( 73.82%) instructions 4,35,23,51,39,076 ( 0.68) 4,38,48,78,54,987 ( 0.69) branches 68,72,17,08,212 ( 396.945) 69,48,52,50,280 ( 405.847) branch-misses 31,73,62,053 ( 0.46%) 32,34,76,102 ( 0.47%) seconds elapsed 11.470858891 10.862984653 seconds elapsed 11.802220972 11.348959061 seconds elapsed 11.847204652 11.850297919 seconds elapsed 12.352068602 12.853222188 seconds elapsed 16.162715423 16.355883496 seconds elapsed 16.605502317 16.855938732 seconds elapsed 18.108333660 18.108347866 seconds elapsed 18.621296174 18.354183020 seconds elapsed 22.366502860 22.357632546 seconds elapsed 24.362417439 24.363003009 Maninder Singh, Vaneet Narang (1): lz4: Implement lz4 with dynamic offset (lz4_dyn). crypto/lz4.c | 64 ++++++++++++++++++++++++++++++++- drivers/block/zram/zcomp.c | 4 ++ fs/pstore/platform.c | 2 +- include/linux/lz4.h | 15 ++++++-- lib/decompress_unlz4.c | 2 +- lib/lz4/lz4_compress.c | 84 +++++++++++++++++++++++++++++++++++-------- lib/lz4/lz4_decompress.c | 56 ++++++++++++++++++++--------- lib/lz4/lz4defs.h | 11 ++++++ 8 files changed, 197 insertions(+), 41 deletions(-)