Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp2861034pxj; Mon, 14 Jun 2021 08:47:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzDzSr/c4veRPCCbaDqCfDP5l5uHzHJIPpdO4LRCMmE97uHUaW7hSo54h5ro+y8MtA01Io3 X-Received: by 2002:a05:6402:4316:: with SMTP id m22mr17923314edc.316.1623685673278; Mon, 14 Jun 2021 08:47:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623685673; cv=none; d=google.com; s=arc-20160816; b=TdFaEu7bz2qAFK2vVlV+uvLdEGfHald3/yPZVjUmFRjL1TCTXpQK1opoyuzrSoRWZW 790Dd5aKA95d9TSvrJ+QRBEIBNj2oZSID2qfb/M0KrPzQZJtZCzkluad5Zji4m97vIeJ wan6QAU1QSeKkNOeqgA99YXp3795ReVEAcSO7O5y903w4tEGWwb88Qad01MJdaQ6eZ+p S4GE8avmzJ/dwreEJ+rtHf1wmNgikK1YVd0IduXY0um48pJQwkcdnrB36zWaqUqKo90f fOo5SzbvFC9nbjQ6765B62atT6WYLI8MhkwbmI9pWoB1nUujB3PQew/p2Zk9ZNLhTuU5 +zwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=41vHZWdRm3PEdn+fE/Pjl4Zp1BFWR3ixLX62Tshij1E=; b=Qs26DTxYFl09noiIGdY9/PgmUpvL2vGj5TVMeLy0EaQDP3L4zv3VtMIghZlcfWWrFH Oi1Vr8jQooQzcYGpm6QVHDBlx7pTYKI5gctLTYbq+IUZVvxkjiG35NNUhuVyyxrafXQu FHvMpCJhNBF0y3cAErT1ioZo6bG05v9+jwA1oVUgczrc8OXWithFJ3ngsNX+nSn8T07V S6G3KJcrMU2My3A6aZvHCfhpadbwihvCJWtfB89qQdawrnltZxzlLJgkWumecrEnX+NM VQwuc81xf5P3PRhz3Go1hEAuKpyoMCZY1EnV3FGpiv/ylVLB6iqnM6pdeIqMRmMn+Kxx Npmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=b2H4mj1s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l18si7168331edb.254.2021.06.14.08.47.30; Mon, 14 Jun 2021 08:47:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=b2H4mj1s; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233901AbhFNPrs (ORCPT + 99 others); Mon, 14 Jun 2021 11:47:48 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:60175 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233135AbhFNPrq (ORCPT ); Mon, 14 Jun 2021 11:47:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1623685542; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=41vHZWdRm3PEdn+fE/Pjl4Zp1BFWR3ixLX62Tshij1E=; b=b2H4mj1sFKJ9H2m8Dt87bVQUb5vbdg8JHY52HpSyJ7NYK/KHeAHr/bFQMrdbag7najfK++ JBmHKbXNKdT4MHtDsropgTDtLmvDfxCgcp/bVQjZyLae8UBoZYtYWdF8Yx6qx0MdOcf74j gJeKCa7I4vdEwkncLxZ+l5xdgghsNNs= Received: from mail-lf1-f70.google.com (mail-lf1-f70.google.com [209.85.167.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-216-kq33hoyvPlifVAayLvqbwQ-1; Mon, 14 Jun 2021 11:45:41 -0400 X-MC-Unique: kq33hoyvPlifVAayLvqbwQ-1 Received: by mail-lf1-f70.google.com with SMTP id q7-20020ac24a670000b02902fb0c2530e1so5372558lfp.17 for ; Mon, 14 Jun 2021 08:45:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=41vHZWdRm3PEdn+fE/Pjl4Zp1BFWR3ixLX62Tshij1E=; b=deu5zSujoBND4aa0uotpC5lHEwdgBua25gWcLSOC3sSsoUPtaqo0iuN8kg2ZOIjfOk nSI3q6tDGzCZXv5NKsbKsuNobKbUUHXdxd+AwW+PFVYFWV6XrqKS0zVDXnCzX9fvw/9s QFMsmb3PsZNOHxJzVB5QjCuHhKfCUkHtcn5N0lsXRj5oxG9p4RurVIH/tmdMLYGeGH8g Z6MmpPOoSZa1p0CDu2qKxxyuIyaAIvmMj1E/d3B0At/OBxjXGw2iyz2o/zNX3rih3MED D9WXOW8KUuaGsxJPB61MQs0HNRtrhtRRjdoZPTQ24v7FA62Qvkb/tfMXr8A5b4QoSBhU HdaA== X-Gm-Message-State: AOAM530m6GrguyjRZrVFVgDMxD2s13TcM27AK+VESZd+gZLHjzgRVEm4 XGRUKJE1rlxKv9bBKUNIZDRaqommG8Dvppo3pDld7091C9O0ZTIJGFYHAdIH528oAHmfJsRLT7g YP7tjGE/s/+pSprAwGKXXXxTTc50d0FajiNCGRrhK X-Received: by 2002:a2e:a410:: with SMTP id p16mr14088501ljn.426.1623685539847; Mon, 14 Jun 2021 08:45:39 -0700 (PDT) X-Received: by 2002:a2e:a410:: with SMTP id p16mr14088490ljn.426.1623685539700; Mon, 14 Jun 2021 08:45:39 -0700 (PDT) MIME-Version: 1.0 References: <20210612123639.329047-1-yury.norov@gmail.com> <20210612123639.329047-6-yury.norov@gmail.com> In-Reply-To: <20210612123639.329047-6-yury.norov@gmail.com> From: Alexey Klimov Date: Mon, 14 Jun 2021 16:45:29 +0100 Message-ID: Subject: Re: [PATCH 5/8] lib: add find_first_and_bit() To: Yury Norov , Linux Kernel Mailing List Cc: linux-arch@vger.kernel.org, Benjamin Herrenschmidt , Catalin Marinas , Will Deacon , Yoshinori Sato , Brian Cain , Geert Uytterhoeven , Thomas Bogendoerfer , Jonas Bonn , Stefan Kristiansson , "James E.J. Bottomley" , Palmer Dabbelt , Heiko Carstens , Rich Felker , David Hildenbrand , Jaegeuk Kim , Arnd Bergmann , Andy Shevchenko , Rasmus Villemoes , Andrew Morton , Alexander Lobakin , Samuel Mendoza-Jonas , Jakub Kicinski , Daniel Bristot de Oliveira , Ingo Molnar Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Jun 12, 2021 at 1:36 PM Yury Norov wrote: > > Currently find_first_and_bit() is an alias to find_next_and_bit(). However, > it is widely used in cpumask, so it worth to optimize it. This patch adds > its own implementation for find_first_and_bit(). > > On x86_64 find_bit_benchmark says: > > Before (#define find_first_and_bit(...) find_next_and_bit(..., 0): > Start testing find_bit() with random-filled bitmap > [ 140.291468] find_first_and_bit: 46890919 ns, 32671 iterations > Start testing find_bit() with sparse bitmap > [ 140.295028] find_first_and_bit: 7103 ns, 1 iterations > > After: > Start testing find_bit() with random-filled bitmap > [ 162.574907] find_first_and_bit: 25045813 ns, 32846 iterations > Start testing find_bit() with sparse bitmap > [ 162.578458] find_first_and_bit: 4900 ns, 1 iterations > > (Thanks to Alexey Klimov for thorough testing.) > > Signed-off-by: Yury Norov Tested-by: Alexey Klimov [..] Best regards, Alexey