From patchwork Mon Aug 29 18:46:14 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 663778 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3sNLJP6G5Vz9s65 for ; Tue, 30 Aug 2016 04:48:21 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=TRCwYNHA; dkim-atps=neutral Received: from localhost ([::1]:45220 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1beRbX-0002DS-Vk for incoming@patchwork.ozlabs.org; Mon, 29 Aug 2016 14:48:20 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36227) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1beRaG-0001DF-FP for qemu-devel@nongnu.org; Mon, 29 Aug 2016 14:47:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1beRaE-0001mM-70 for qemu-devel@nongnu.org; Mon, 29 Aug 2016 14:46:59 -0400 Received: from mail-qk0-x244.google.com ([2607:f8b0:400d:c09::244]:32844) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1beRaD-0001mA-Uz for qemu-devel@nongnu.org; Mon, 29 Aug 2016 14:46:58 -0400 Received: by mail-qk0-x244.google.com with SMTP id n66so10902417qkf.0 for ; Mon, 29 Aug 2016 11:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=vRpBC/t2JVmfMyjVG005bG1OWuNUpK5kVNTduIPhlYM=; b=TRCwYNHApx/tiWx7wTTYk2VHw9Q9LdSebAhQpi8vE0HP+tIKAMkDi1RjioHX66xEHX JaJwmk3zTmPmmngris3sr3U4SCTi8ht7v1C0Qx/bXaZmmv4pYigykW4pdpgMaGTs+uiS Mvc8Ef/S+KwRVIdr/aYL8jE+14XCoXxtFlv7A2yntLWakvXFkqXUOJBoaw1kAoZc0g2Z c3iayNEbXqKVZCwrBLel2VWvm8EXmiR5JAydSMbyOoenokMue1CIftdsoBdZFRlC6ZvG ECMmZmZAbMRoiqJP6jmGofruwkVzZwf1LXJaBpP8Lip+sakV4miiCrff7N9K6xVeYtPy ZHCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=vRpBC/t2JVmfMyjVG005bG1OWuNUpK5kVNTduIPhlYM=; b=SQtVwgf66NgzgHKuMi2JaEso5ObKvrPjkEJ4RPJZOJo7snWVVH1oG1BDW2iPb7t2Dd T52eSQYR1rrOmWzaZrs7sLCJMAzYGV79OXmGNibyUtd8tVZ4ytEyIx/+5+YdBheDoiTQ urbN3RS0d8r1LJf44gaa7OEzwmG1HBm+oqJ0kopm2HEtz3QYKM837xHkZccOpiIlYyCS EUjkHHcFUJymFlZTojWrcMNtK83N9IlFuFFkHYNUHx4aFxca8bPDZY6vXU4JDfbOQuK/ f87pZmNBoX7wgoVWvgEY6xtxWCHOIVyUm3FC6KkaZB1HQ+Ov6xh7RSEIvkmy9L5UmZC1 ZHPQ== X-Gm-Message-State: AE9vXwPgqPgM5B4yV2XZCH7tVLA97sFmEa7gvG8SGsByb49r51NQxJwDFU4w8MK8Z7PLAg== X-Received: by 10.55.4.8 with SMTP id 8mr11122868qke.214.1472496417363; Mon, 29 Aug 2016 11:46:57 -0700 (PDT) Received: from bigtime.com (174-24-157-40.tukw.qwest.net. [174.24.157.40]) by smtp.gmail.com with ESMTPSA id u76sm19230017qkl.39.2016.08.29.11.46.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 Aug 2016 11:46:56 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Mon, 29 Aug 2016 11:46:14 -0700 Message-Id: <1472496380-19706-4-git-send-email-rth@twiddle.net> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1472496380-19706-1-git-send-email-rth@twiddle.net> References: <1472496380-19706-1-git-send-email-rth@twiddle.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2607:f8b0:400d:c09::244 Subject: [Qemu-devel] [PATCH v3 3/9] cutils: Export only buffer_is_zero X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: pbonzini@redhat.com, vijay.kilari@gmail.com Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Since the two users don't make use of the returned offset, beyond ensuring that the entire buffer is zero, consider the can_use_buffer_find_nonzero_offset and buffer_find_nonzero_offset functions internal. Reviewed-by: Dr. David Alan Gilbert Signed-off-by: Richard Henderson --- include/qemu/cutils.h | 2 -- migration/ram.c | 2 +- migration/rdma.c | 5 +---- util/bufferiszero.c | 8 ++++---- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/include/qemu/cutils.h b/include/qemu/cutils.h index 3e4ea23..ca58577 100644 --- a/include/qemu/cutils.h +++ b/include/qemu/cutils.h @@ -168,8 +168,6 @@ int64_t qemu_strtosz_suffix_unit(const char *nptr, char **end, /* used to print char* safely */ #define STR_OR_NULL(str) ((str) ? (str) : "null") -bool can_use_buffer_find_nonzero_offset(const void *buf, size_t len); -size_t buffer_find_nonzero_offset(const void *buf, size_t len); bool buffer_is_zero(const void *buf, size_t len); /* diff --git a/migration/ram.c b/migration/ram.c index a3d70c4..a6e1c63 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -73,7 +73,7 @@ static const uint8_t ZERO_TARGET_PAGE[TARGET_PAGE_SIZE]; static inline bool is_zero_range(uint8_t *p, uint64_t size) { - return buffer_find_nonzero_offset(p, size) == size; + return buffer_is_zero(p, size); } /* struct contains XBZRLE cache and a static page diff --git a/migration/rdma.c b/migration/rdma.c index 5110ec8..88bdb64 100644 --- a/migration/rdma.c +++ b/migration/rdma.c @@ -1934,10 +1934,7 @@ retry: * memset() + madvise() the entire chunk without RDMA. */ - if (can_use_buffer_find_nonzero_offset((void *)(uintptr_t)sge.addr, - length) - && buffer_find_nonzero_offset((void *)(uintptr_t)sge.addr, - length) == length) { + if (buffer_is_zero((void *)(uintptr_t)sge.addr, length)) { RDMACompress comp = { .offset = current_addr, .value = 0, diff --git a/util/bufferiszero.c b/util/bufferiszero.c index 067d08f..0cf8b6e 100644 --- a/util/bufferiszero.c +++ b/util/bufferiszero.c @@ -192,9 +192,9 @@ static bool avx2_support(void) return b & bit_AVX2; } -bool can_use_buffer_find_nonzero_offset(const void *buf, size_t len) \ +static bool can_use_buffer_find_nonzero_offset(const void *buf, size_t len) \ __attribute__ ((ifunc("can_use_buffer_find_nonzero_offset_ifunc"))); -size_t buffer_find_nonzero_offset(const void *buf, size_t len) \ +static size_t buffer_find_nonzero_offset(const void *buf, size_t len) \ __attribute__ ((ifunc("buffer_find_nonzero_offset_ifunc"))); static void *buffer_find_nonzero_offset_ifunc(void) @@ -215,12 +215,12 @@ static void *can_use_buffer_find_nonzero_offset_ifunc(void) } #pragma GCC pop_options #else -bool can_use_buffer_find_nonzero_offset(const void *buf, size_t len) +static bool can_use_buffer_find_nonzero_offset(const void *buf, size_t len) { return can_use_buffer_find_nonzero_offset_inner(buf, len); } -size_t buffer_find_nonzero_offset(const void *buf, size_t len) +static size_t buffer_find_nonzero_offset(const void *buf, size_t len) { return buffer_find_nonzero_offset_inner(buf, len); }