From patchwork Sun Jul 1 06:56:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Will Ziener-Dignazio X-Patchwork-Id: 10498529 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 8F11660284 for ; Sun, 1 Jul 2018 06:57:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6EA1028B45 for ; Sun, 1 Jul 2018 06:57:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 62ADD28B4C; Sun, 1 Jul 2018 06:57:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DBFC728B45 for ; Sun, 1 Jul 2018 06:57:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9CBCA6B0006; Sun, 1 Jul 2018 02:57:02 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 977476B0007; Sun, 1 Jul 2018 02:57:02 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 81BB46B0008; Sun, 1 Jul 2018 02:57:02 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-pl0-f69.google.com (mail-pl0-f69.google.com [209.85.160.69]) by kanga.kvack.org (Postfix) with ESMTP id 3B9616B0006 for ; Sun, 1 Jul 2018 02:57:02 -0400 (EDT) Received: by mail-pl0-f69.google.com with SMTP id e1-v6so7722478pld.23 for ; Sat, 30 Jun 2018 23:57:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:dkim-signature:from:to:cc:subject:date :message-id; bh=sHBqvwaQTdee9t7ldcpIr1cZjsFESFtt8BfxJPhp5WQ=; b=SOG/UhAipueoOTCAUSudeUFt2i2tiMNT3jTvgWCFW/KcjgYlf8AkTDO0jDQ8ov7/np gjiYxa86+iEBa6P0fk0vmft+B+owY0CPt6Dlipd7gp9GKFudrgD26c0/oKbp0jBYC9YR +Ez0XlilN4rOfNq8E6wUpZUGfzJMScuu2hwoK02IeHE0kt+X5PW9uLnPjn2RwCsRRGjT TY9KjRf+htSfPtv4UOe95Fx7nCbELrrWUFsV2vq4YLeh/XCKBBhFFxdTn/nTb0SqOoyl QCtT4kvU+wGP2lhnD5xssGtqJzplH6rJCQwWPWCuS20l9MmT8oG8q0Km7i9k39JPFk3q 9frA== X-Gm-Message-State: APt69E1ib2yEz+JBC8PTO1mSvSYToZSiT/QgsxCH9cwue16AflL4pmDN uPfLldcm+k5ba+zyJMgeZ2Af/CEV0/dt/NruDfc5tEcCGXpSa3tPfJxPwTZsDzaE0r0QdjMFKmE 7BPOtvCPIXLJvuiTNWY1CuWxgHZuaOLOs0SAofZwduorWpTdQxDfl2o3rCH0bytC+ZgVQPLTFoi tnm/6BgPbPtdCYXVz9TNKSbNYS7jBLoccvvOXD+k+fnkQckys5ROblHZ5yEvhkhRqFQ5vXlck3g 5lELjAbZNKdKNq4lZQebDnJgaIcFXRoxPtuaqQiKf8g2VO29cs7B/Y650cDrTt5cBaFjIJ1cQSG 4HQYEMZausSzzeeWFoTQMd3CyHy0nOttYMEboacItPbFdc4VInMwAC9EX2bJJC3zciIBzvTqtIj f X-Received: by 2002:a62:c8c2:: with SMTP id i63-v6mr4934163pfk.73.1530428221785; Sat, 30 Jun 2018 23:57:01 -0700 (PDT) X-Received: by 2002:a62:c8c2:: with SMTP id i63-v6mr4934146pfk.73.1530428220999; Sat, 30 Jun 2018 23:57:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1530428220; cv=none; d=google.com; s=arc-20160816; b=gEClfDESFonOG8hzVNlhiHjvgMVaNTiC8YR0ExrA8lyrAaiBRB8GcSsFnsni2ApjKk m3T4a4KVYL9ZP9WuVKSWrhThiuslG7uBkutYroSn33rDILno2KYker/EQs89Ln7fB9y5 bvzi8CuqsmCnu9F+VGhLUurgvXATi13eYDdlX+9qoSL4r3ISMkG6XAI6ytOO04WZ+qRU DjsWiIu2XSrh498GSbqoZ0DchNWTcp5IBB1mnv7BMmc/4NVvQkXwWG98T2/3Z+g1jqJv ORL6avsNQd7ZneWXAZJ5eWLyfrCN3/IjepBkmy+y7DMDGDGHqfGfU5mHwfaSEgCA9HSl XZLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=sHBqvwaQTdee9t7ldcpIr1cZjsFESFtt8BfxJPhp5WQ=; b=MrL/oO8Sm5+eIYhVKMZRh+o7MrZeoaQ1ewIcZPYhJboYI+X/Cs/b2rkvSGNl28cel8 dhhBGnCydSrhgzgdUmoEaaRy6AC0XJ4rqhTBCUdlmH3qOlvPG6+fT8BhbWBPHHUSVDh3 oJGsW0SV3Wk0oIdE3Vyz8XuB0re7VVVAhMQD1WgLRuhKccNXOZcWupsxh7m0HkvDtB+5 VM/Bp9WbGziLtOxRCdE3Q3HKmPiAYXpsDUnmu6s3VlDaDArAi/8UeX9b3LrcN7Gpvvjb eN2QRhvy3l9TluQvDRDJCgnNeEjs7a2btEtg1QIe8FUEkKULv173tF+WW2XpjED61oad 7d1w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Ts3XF5OT; spf=pass (google.com: domain of wdignazio@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=wdignazio@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id q10-v6sor3148552pgd.18.2018.06.30.23.57.00 for (Google Transport Security); Sat, 30 Jun 2018 23:57:00 -0700 (PDT) Received-SPF: pass (google.com: domain of wdignazio@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Ts3XF5OT; spf=pass (google.com: domain of wdignazio@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=wdignazio@gmail.com; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=sHBqvwaQTdee9t7ldcpIr1cZjsFESFtt8BfxJPhp5WQ=; b=Ts3XF5OT8qNsUXbQkbBH+1yemflHS/KFB/pcEFy1GlI2xEsGckEZrSpHW0Etu68hNw vY+SIuhGkuzyJSyK1U0bzgiZoS3aoJFD8W/fqjkZ6C0QHKVub1S4IS0AP580KVo3YZNI BLaBKlK03H1+/eLw82hL/JKu+629qMKC6Eorx62WwZ4ucHOCtV2ZfJVurMSl1qPUUwwL Jc9qD/z8Ue0G/d7P/RyVFz1NIusy/CtDM2TCmYZf4d/54pYAqlEFkOnR5jmwPnMMlinq yD5c9gQ1nl+NOmFve1LL5oOK5e+GPN70muuTQvBm8lx7gu9WXnKc3hcjCfenNTAyh+be eFCw== X-Google-Smtp-Source: ADUXVKKPTGXaxO3EdBwwcWMv7yr/Har2wOJDAQO1oYrxh7avapkY1GUrQ/td5rWEF1kgQ2YcEkSl9A== X-Received: by 2002:a65:6397:: with SMTP id h23-v6mr17871864pgv.380.1530428220597; Sat, 30 Jun 2018 23:57:00 -0700 (PDT) Received: from Judea.localdomain ([136.24.180.181]) by smtp.gmail.com with ESMTPSA id c72-v6sm16943223pga.69.2018.06.30.23.56.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Jun 2018 23:56:59 -0700 (PDT) From: Will Ziener-Dignazio To: sjenning@redhat.com Cc: ddstreet@ieee.org, linux-mm@kvack.org, Will Ziener-Dignazio Subject: [PATCH] Add option to configure default zswap compressor algorithm. Date: Sat, 30 Jun 2018 23:56:16 -0700 Message-Id: <20180701065616.3512-1-wdignazio@gmail.com> X-Mailer: git-send-email 2.18.0 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: X-Virus-Scanned: ClamAV using ClamSMTP - Add Kconfig option for default compressor algorithm - Add the deflate and LZ4 algorithms as default options Signed-off-by: Will Ziener-Dignazio --- mm/Kconfig | 35 ++++++++++++++++++++++++++++++++++- mm/zswap.c | 11 ++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/mm/Kconfig b/mm/Kconfig index ce95491abd6a..09df6650e96a 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -535,7 +535,6 @@ config MEM_SOFT_DIRTY config ZSWAP bool "Compressed cache for swap pages (EXPERIMENTAL)" depends on FRONTSWAP && CRYPTO=y - select CRYPTO_LZO select ZPOOL default n help @@ -552,6 +551,40 @@ config ZSWAP they have not be fully explored on the large set of potential configurations and workloads that exist. +choice + prompt "Compressed cache cryptographic compression algorithm" + default ZSWAP_COMPRESSOR_DEFAULT_LZO + depends on ZSWAP + help + The default cyptrographic compression algorithm to use for + compressed swap pages. + +config ZSWAP_COMPRESSOR_DEFAULT_LZO + bool "lzo" + select CRYPTO_LZO + help + This option sets the default zswap compression algorithm to LZO, + the Lempel-Ziv-Oberhumer algorithm. This algorthm focuses on + decompression speed, but has a lower compression ratio. + +config ZSWAP_COMPRESSOR_DEFAULT_DEFLATE + bool "deflate" + select CRYPTO_DEFLATE + help + This option sets the default zswap compression algorithm to DEFLATE. + This algorithm balances compression and decompression speed to + compresstion ratio. + +config ZSWAP_COMPRESSOR_DEFAULT_LZ4 + bool "lz4" + select CRYPTO_LZ4 + help + This option sets the default zswap compression algorithm to LZ4. + This algorithm focuses on high compression speed, but has a lower + compression ratio and decompression speed. + +endchoice + config ZPOOL tristate "Common API for compressed memory storage" default n diff --git a/mm/zswap.c b/mm/zswap.c index 7d34e69507e3..30f9f25da4d0 100644 --- a/mm/zswap.c +++ b/mm/zswap.c @@ -91,7 +91,16 @@ static struct kernel_param_ops zswap_enabled_param_ops = { module_param_cb(enabled, &zswap_enabled_param_ops, &zswap_enabled, 0644); /* Crypto compressor to use */ -#define ZSWAP_COMPRESSOR_DEFAULT "lzo" +#if defined(CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO) + #define ZSWAP_COMPRESSOR_DEFAULT "lzo" +#elif defined(CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE) + #define ZSWAP_COMPRESSOR_DEFAULT "deflate" +#elif defined(CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4) + #define ZSWAP_COMPRESSOR_DEFAULT "lz4" +#else + #error "Default zswap compression algorithm not defined." +#endif + static char *zswap_compressor = ZSWAP_COMPRESSOR_DEFAULT; static int zswap_compressor_param_set(const char *, const struct kernel_param *);