From patchwork Thu Sep 13 21:41:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Timofey Titovets X-Patchwork-Id: 10600135 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7B8E7112B for ; Thu, 13 Sep 2018 21:41:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 76A692B511 for ; Thu, 13 Sep 2018 21:41:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6A9402B515; Thu, 13 Sep 2018 21:41:18 +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=-2.9 required=2.0 tests=BAYES_00,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 02CA42B511 for ; Thu, 13 Sep 2018 21:41:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E166F8E0010; Thu, 13 Sep 2018 17:41:15 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C88418E000C; Thu, 13 Sep 2018 17:41:15 -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 ABBA78E0010; Thu, 13 Sep 2018 17:41:15 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) by kanga.kvack.org (Postfix) with ESMTP id 3F42A8E000C for ; Thu, 13 Sep 2018 17:41:15 -0400 (EDT) Received: by mail-wr1-f71.google.com with SMTP id 51-v6so6911385wra.18 for ; Thu, 13 Sep 2018 14:41:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=3x/vmeOQFQqTYre8gpQTbELvaL++cjvhCa8l4tMQ/lo=; b=rh+OIn/wkknTX3ELXOu8hA9zeWfQYUmtyBl67jRlHiZBGU3CPsfVyS8KLgqLYWXFsB 6CRbB08+9EMmOYi0ylKDlgCbIOQx7oshxR3cY+OzXthvKW09j/kuS2dfUSG5KQvJnXrr rW0EAaTf+CDE4+6Z1J32xFE9ZiFgFDGevhcrrkogJWcnz9VP1gQtS2PqhB9DicTXzq5e fBS2Aca0A0MeT+rG+ELcCaeeQjKBFtt1qVZqyGjya3AlElPfzlTYKKHeNFHdWgaVSc56 b/MGNsPMtbFAfPg/gWsh30MevjluBS9khO0ZK7DKc4bwGyAkfBaoBFIdBaBrastbSBsi kmpQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nefelim4ag@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=nefelim4ag@gmail.com X-Gm-Message-State: APzg51DDrEp18D2DOMODwG4WWyg4I1JkCwuqpCcyi1rpFaozq+Na+Vd9 UlyJn6zOv9Q9oMdC+IeNOvPzCCwq3AdLio4woFRRVhwBHXnfy02HbKBNKHsM7CVT094opm161OU Df3uYx5JtPmj3NMUh2y0+wupNXoJf/hO03CbGs1SvbjwlLToiS5kjD2Bnz5+uAk51IHbGWqZ6UD 6xzA1soFbFCSFAJ8r393Cupc5aWOzMFtmcu00ZvNAw0hvDT5AwHu34HN8FQrDpX7lfJ72CQWbkV D2viXmmFnnveKHOQ/eoAqTLW2pOIBJrIC153wKacS4NPmBiTKEkCCu/wVOXdvoufzZwc8P4v7II tGEWwaAdhGn7/8FHt5rjsUoYPRAaMc2ZsLvwAaQYNwe9DMOvcUPM814uMtqZsBVnwQ7pS6JabA= = X-Received: by 2002:adf:b1db:: with SMTP id r27-v6mr7542003wra.95.1536874874778; Thu, 13 Sep 2018 14:41:14 -0700 (PDT) X-Received: by 2002:adf:b1db:: with SMTP id r27-v6mr7541855wra.95.1536874873735; Thu, 13 Sep 2018 14:41:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536874873; cv=none; d=google.com; s=arc-20160816; b=YjTkWm/+9nWhtTgXBTSYQPmf9fuZABTyQohbKDYrXDoBQA2Ya9qJwpJOKYtnhXlrOY MtJu/lZg0xTx78dHqQnjBpZ9uP1n+jUYwUp4Gms3dA8Elm0RLstzAjTQKTP+GtEGP5Hr nqSn8hcMlLsqMPvYugXsMafttXa64ATh75BwVdke5Sg/5RC0Kc4gFSde5DO1X63nzMNv ifEvknxno7vQdxEiCZDhLweHxz1A3a0D3jY5R6ahAFoFEoNOOeTF2KpATcTC3tZenL/Q Wy/AuP4lj6Jf/9dE1j2uDYOxWZPk2/d33ixbodJIT22xS35TYTlxwl++34sU9wzSnhBb kDzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=3x/vmeOQFQqTYre8gpQTbELvaL++cjvhCa8l4tMQ/lo=; b=AspqTeHSz6F2Ge7v10Im+gvtlTwH9+AD7xBbuMFATuyr8+AGcLpfgklgh7RtxN9T6g ybocGa8xpw/QSDEEEURJxhvMxHlQNqexkh1gL6JASBCeWngjtzR9BsxUgJ2pacmmSWe5 +kpWJ7+prlhHVABIJcDsSMUlZhlbxCcSvoEpsjuyXEhTgF9jlWUktDtuarZghjJwwGWG Dcixjgkxs0tzZ2/T9vTwaWipHL0PIgFEP2HKKF1xp1vzvNTvz2S9KAlP98S3Vw4tHNF/ eKBiPSAbVZM/lwYjd9iQ6014BVUe0FPQAim71iTfODnis3mgVio3lf6LkxGACBf5y4lf legg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nefelim4ag@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=nefelim4ag@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 74-v6sor5105623wmk.14.2018.09.13.14.41.13 for (Google Transport Security); Thu, 13 Sep 2018 14:41:13 -0700 (PDT) Received-SPF: pass (google.com: domain of nefelim4ag@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nefelim4ag@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=nefelim4ag@gmail.com X-Google-Smtp-Source: ANB0VdaJy75U23ICHnTnslRsfvVP9NP5GchkUrgvRiIYpkuOsX8deGl6TQK3J709FFpJ7on5z6ludA== X-Received: by 2002:a1c:99c2:: with SMTP id b185-v6mr7198217wme.15.1536874873118; Thu, 13 Sep 2018 14:41:13 -0700 (PDT) Received: from TitovetsT.synesis.local ([178.121.227.155]) by smtp.gmail.com with ESMTPSA id j66-v6sm7644411wrj.28.2018.09.13.14.41.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Sep 2018 14:41:12 -0700 (PDT) From: Timofey Titovets To: linux-mm@kvack.org Cc: rppt@linux.vnet.ibm.com, Timofey Titovets , Andrea Arcangeli , kvm@vger.kernel.org, leesioh Subject: [PATCH V8 1/2] xxHash: create arch dependent 32/64-bit xxhash() Date: Fri, 14 Sep 2018 00:41:01 +0300 Message-Id: <20180913214102.28269-2-timofey.titovets@synesis.ru> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180913214102.28269-1-timofey.titovets@synesis.ru> References: <20180913214102.28269-1-timofey.titovets@synesis.ru> MIME-Version: 1.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 From: Timofey Titovets xxh32() - fast on both 32/64-bit platforms xxh64() - fast only on 64-bit platform Create xxhash() which will pickup fastest version on compile time. As result depends on cpu word size, the main proporse of that - in memory hashing. Changes: v2: - Create that patch v3 -> v8: - Nothing, whole patchset version bump Signed-off-by: Timofey Titovets Reviewed-by: Pavel Tatashin CC: Andrea Arcangeli CC: linux-mm@kvack.org CC: kvm@vger.kernel.org CC: leesioh Reviewed-by: Mike Rapoport --- include/linux/xxhash.h | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/include/linux/xxhash.h b/include/linux/xxhash.h index 9e1f42cb57e9..52b073fea17f 100644 --- a/include/linux/xxhash.h +++ b/include/linux/xxhash.h @@ -107,6 +107,29 @@ uint32_t xxh32(const void *input, size_t length, uint32_t seed); */ uint64_t xxh64(const void *input, size_t length, uint64_t seed); +/** + * xxhash() - calculate wordsize hash of the input with a given seed + * @input: The data to hash. + * @length: The length of the data to hash. + * @seed: The seed can be used to alter the result predictably. + * + * If the hash does not need to be comparable between machines with + * different word sizes, this function will call whichever of xxh32() + * or xxh64() is faster. + * + * Return: wordsize hash of the data. + */ + +static inline unsigned long xxhash(const void *input, size_t length, + uint64_t seed) +{ +#if BITS_PER_LONG == 64 + return xxh64(input, length, seed); +#else + return xxh32(input, length, seed); +#endif +} + /*-**************************** * Streaming Hash Functions *****************************/ From patchwork Thu Sep 13 21:41:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Timofey Titovets X-Patchwork-Id: 10600137 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7D399112B for ; Thu, 13 Sep 2018 21:41:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 76C772B511 for ; Thu, 13 Sep 2018 21:41:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6ACCE2B515; Thu, 13 Sep 2018 21:41:20 +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=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=unavailable 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 EDC552B511 for ; Thu, 13 Sep 2018 21:41:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C16C28E0011; Thu, 13 Sep 2018 17:41:16 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id BAC6C8E0012; Thu, 13 Sep 2018 17:41:16 -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 A19BE8E0011; Thu, 13 Sep 2018 17:41:16 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by kanga.kvack.org (Postfix) with ESMTP id 3B56E8E000C for ; Thu, 13 Sep 2018 17:41:16 -0400 (EDT) Received: by mail-wr1-f70.google.com with SMTP id p105-v6so6925729wrc.11 for ; Thu, 13 Sep 2018 14:41:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=xsJk5RY8DkMZyyLYnBA/RCWoSGav79Bq9FXIAsC9xEw=; b=iUk+fnH6pC6rBVM1ICiu6vUSNwB91L//jHXZ2Y+tHF8prcsRTCHF2oO+sr8UjDfSwM DaNgedBEwShsN1Ama7fnH3HkvFzHX0Qea0edUZ2swqHVi4j8oeR54BzUIUsBZlIV08ua /vqJs0yKUEsUwz319124tSmTXU36VoQx1P5Fa7MUtqmojv0i1IHsO7Qoo+bW5wRfgePu 3XidBH0dHULP1XWhLIW3YxZ6zGQ0l6TiLC+rs9TQdBaGZHviq6nkKd3anj+N8Pof+62r mWsuyrYzzPug0AK0jT0TOiA4N8O0Ez2SYWPB+fvksp7atGgJNaWlcSr4sTDG2bh37qA6 o8og== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nefelim4ag@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=nefelim4ag@gmail.com X-Gm-Message-State: APzg51B15zH4ty0hG2JQvHqv4NAZQkF5Xy1vM5gEkZsHFcd3JTiKTNPN gDkgevpmzopAC8iEVixIwV4/o8IO6mYLYiQgr5X43sg1LVTktmw0FqmULG6JxeqqSL39ujqw31W cKKGP6IhjcGe5iYwHK0+dKWReRkwchOmsZDOFxWMEdJz8WS1oLx7Q1a5UQOtXr2RDl/NXtjo1oq 8B+fvnOZKYDHQkuCcFJCU7BM0tyMx0xdhnLShnYXRpUY022Q8C6tDP2V7wKD5ZFFELAqBigeMTC L6lFwO7e/jw4Yb+BnjkC8IQ44UZqH6Q7GfUuFL9GyPWJVP+yX5TXU66E8WkWXtabFvCoF6/XMsQ 6b/t0r7djqljoO7NT547vbnYxc/62KCMyoqC3beSzRP1Iudsuo/OLUDrOdQaadbT3t/wRQEQbQ= = X-Received: by 2002:a1c:1252:: with SMTP id 79-v6mr1244wms.70.1536874875746; Thu, 13 Sep 2018 14:41:15 -0700 (PDT) X-Received: by 2002:a1c:1252:: with SMTP id 79-v6mr1148wms.70.1536874874759; Thu, 13 Sep 2018 14:41:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536874874; cv=none; d=google.com; s=arc-20160816; b=TxUXl+kD+2fC7nGwt3F60n4dBP1t5NmXq/81Ty2EQhhYZvLNpNsL66XsxI9HiOsDIf W6nVccy9Vf7JbrJ6rBKb8Z0ksbmPiILL3fsCAkCQ9w7y7m5NWvr0Xnem8ncc1Y5wERd/ xsL40mU95o5Qa+QC/MxQoBRryTypqc8Y4FBz+o4cRO6rely92EOy2t1kZ2yBZqtWSrQR qz6Fd7bXgh5kKYt8cXBSagh93kJluvYhrQB3IapbpSWhQWEBEiAOq9IJM5ZJuaIIABk3 1CJOca42U4opixG48FMij/+OkuJhZXTuYfFO85OybpydNS0W5zg5x6yO9eCVYA/thYKl uK4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=xsJk5RY8DkMZyyLYnBA/RCWoSGav79Bq9FXIAsC9xEw=; b=g68AnAO8yWDwXHGTI7o7DH0w5b7NgtgNMK5/li9qSDaE2UP2SzCE5tUsfFbjV4rwHi i3DRcb3EM7We881OJYhjXp4dRHQTBXWN4qElTBcMECdko1gfeGx1+cHaO+Obi82/hznn IB2V/cZcRgeOZqklcUJIo89rikvwTCz7y/8jUJttiw3risnmyXwJIz+hAKEMJAr1hcx7 XTDQeVKjHyx7tL1EnMlQZza4GVS+xfF3C0gZG+sn/7oy7rPrmeTwRCNO1lLrUOfqiwah JaCBVzdRY6pACX4FntX8yJk6Dp/fNKNwxQVxPUVxoYY/wfd1PknFQAFsSH4LsV9wIZpX Zwvw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nefelim4ag@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=nefelim4ag@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 y1-v6sor4479736wrd.40.2018.09.13.14.41.14 for (Google Transport Security); Thu, 13 Sep 2018 14:41:14 -0700 (PDT) Received-SPF: pass (google.com: domain of nefelim4ag@gmail.com designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nefelim4ag@gmail.com designates 209.85.220.65 as permitted sender) smtp.mailfrom=nefelim4ag@gmail.com X-Google-Smtp-Source: ANB0VdYMm4n1F976+ukPKAboWLgLAhmyHQedrh4olshABw0PN0hO3yXOm8m4I6Lm3NtltM7U+SNy/w== X-Received: by 2002:a5d:4089:: with SMTP id o9-v6mr7346459wrp.133.1536874874092; Thu, 13 Sep 2018 14:41:14 -0700 (PDT) Received: from TitovetsT.synesis.local ([178.121.227.155]) by smtp.gmail.com with ESMTPSA id j66-v6sm7644411wrj.28.2018.09.13.14.41.13 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Sep 2018 14:41:13 -0700 (PDT) From: Timofey Titovets To: linux-mm@kvack.org Cc: rppt@linux.vnet.ibm.com, Timofey Titovets , leesioh , Andrea Arcangeli , kvm@vger.kernel.org Subject: [PATCH V8 2/2] ksm: replace jhash2 with xxhash Date: Fri, 14 Sep 2018 00:41:02 +0300 Message-Id: <20180913214102.28269-3-timofey.titovets@synesis.ru> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180913214102.28269-1-timofey.titovets@synesis.ru> References: <20180913214102.28269-1-timofey.titovets@synesis.ru> MIME-Version: 1.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 From: Timofey Titovets Replace jhash2 with xxhash. Perf numbers: Intel(R) Xeon(R) CPU E5-2420 v2 @ 2.20GHz ksm: crc32c hash() 12081 MB/s ksm: xxh64 hash() 8770 MB/s ksm: xxh32 hash() 4529 MB/s ksm: jhash2 hash() 1569 MB/s From Sioh Lee: crc32c_intel: 1084.10ns crc32c (no hardware acceleration): 7012.51ns xxhash32: 2227.75ns xxhash64: 1413.16ns jhash2: 5128.30ns As jhash2 always will be slower (for data size like PAGE_SIZE). Don't use it in ksm at all. Use only xxhash for now, because for using crc32c, cryptoapi must be initialized first - that require some tricky solution to work good in all situations. Thanks. Changes: v1 -> v2: - Move xxhash() to xxhash.h/c and separate patches v2 -> v3: - Move xxhash() xxhash.c -> xxhash.h - replace xxhash_t with 'unsigned long' - update kerneldoc above xxhash() v3 -> v4: - Merge xxhash/crc32 patches - Replace crc32 with crc32c (crc32 have same as jhash2 speed) - Add auto speed test and auto choice of fastest hash function v4 -> v5: - Pickup missed xxhash patch - Update code with compile time choicen xxhash - Add more macros to make code more readable - As now that only possible use xxhash or crc32c, on crc32c allocation error, skip speed test and fallback to xxhash - For workaround too early init problem (crc32c not avaliable), move zero_checksum init to first call of fastcall() - Don't alloc page for hash testing, use arch zero pages for that v5 -> v6: - Use libcrc32c instead of CRYPTO API, mainly for code/Kconfig deps Simplification - Add crc32c_available(): libcrc32c will BUG_ON on crc32c problems, so test crc32c avaliable by crc32c_available() - Simplify choice_fastest_hash() - Simplify fasthash() - struct rmap_item && stable_node have sizeof == 64 on x86_64, that makes them cache friendly. As we don't suffer from hash collisions, change hash type from unsigned long back to u32. - Fix kbuild robot warning, make all local functions static v6 -> v7: - Drop crc32c for now and use only xxhash in ksm. v7 -> v8: - Remove empty line changes Signed-off-by: Timofey Titovets Signed-off-by: leesioh Reviewed-by: Pavel Tatashin CC: Andrea Arcangeli CC: linux-mm@kvack.org CC: kvm@vger.kernel.org Reviewed-by: Mike Rapoport --- mm/Kconfig | 1 + mm/ksm.c | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/Kconfig b/mm/Kconfig index a550635ea5c3..b5f923081bce 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -297,6 +297,7 @@ config MMU_NOTIFIER config KSM bool "Enable KSM for page merging" depends on MMU + select XXHASH help Enable Kernel Samepage Merging: KSM periodically scans those areas of an application's address space that an app has advised may be diff --git a/mm/ksm.c b/mm/ksm.c index 5b0894b45ee5..1a088306ef81 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include #include #include #include @@ -1009,7 +1009,7 @@ static u32 calc_checksum(struct page *page) { u32 checksum; void *addr = kmap_atomic(page); - checksum = jhash2(addr, PAGE_SIZE / 4, 17); + checksum = xxhash(addr, PAGE_SIZE, 0); kunmap_atomic(addr); return checksum; }