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 *****************************/