Received: by 2002:a05:7412:da14:b0:e2:908c:2ebd with SMTP id fe20csp2361450rdb; Tue, 10 Oct 2023 01:17:48 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGlzArggHGLeZYSCUN/AIysValENrdatSASC87Nz2uM2MKRzV2Rcqbfn4zUphPOHsBXocOa X-Received: by 2002:a17:902:d2ce:b0:1c6:291e:24b6 with SMTP id n14-20020a170902d2ce00b001c6291e24b6mr19151223plc.37.1696925868204; Tue, 10 Oct 2023 01:17:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696925868; cv=none; d=google.com; s=arc-20160816; b=LrI5DVSlsj3MVaSHy9o3fxHC2RPRp2ebpVI82fEj2Lo2P7ION4P7H0/XMjmMZKEr8k 6RFIKvzTjO5YrCO97qDZFRjiJlV1jqg8H2CV0PB6KpFAhrWslpiinobOfyz8NJA1r/aS /debGZ3YPXEWd7Biyx0si59rNG71z3MMWmg0uFhlX/Iwy1z1AaFbtPujtdnPeDlawQEa oEEtZh5D3MZPtf6w5+VdbKnOLC1XgG28iInE5ms5X56kDNfVoVl5OSTW6ce1/7lI1k76 Wcd83IRD45SnIEZ3EergPYr80lP8tOmnAHvz/zJCtfDt0heV0egxwd8H5U9anX+Uzsih P7EQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=vZ91x7U3rirUbkyYioXuLdImi+LNXots2Inn4nnzz1I=; fh=YJ+iZRMFnBp+wBuj/iCISoq0Gy7rdbri8D9qr2h0aDA=; b=wcG1jI2hzSC91UsOAuMkT7vAfSKWyG5OdmJVfYCC0JePTNO9vgnvz4Z1sBORW1xvgp EubSn13QTPUt2fuUEG6mWT98nmcydEn1GhrhD/USLK1Jgy8yNSLDjXsQ/zp+zziqs+Bk bQk4zxqyVd0jCgAPY4ktYmpWtdcVxfS+QQ4bPOn3ovH+nyV+ZjeK0rSOziFXKbAnPiRa O36SAEDAiRXgQyOwS9PDTCoIpmci/uMipL5NpkKWonpOHkdbS2aKm0t+VIzD3mpLSTt3 bVwzVt8g6s4t7rcDDw1zLhIQ471zQRcWvs/6nnTXWNPaNiRVVu9r97SdirSskVzlJ1Fv jyyg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=xkkOduAE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id m6-20020a170902db8600b001c770264989si11101835pld.618.2023.10.10.01.17.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Oct 2023 01:17:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=xkkOduAE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id EE30982DAFCE; Tue, 10 Oct 2023 01:17:22 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1442696AbjJJIRL (ORCPT + 99 others); Tue, 10 Oct 2023 04:17:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58304 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1379442AbjJJIRK (ORCPT ); Tue, 10 Oct 2023 04:17:10 -0400 Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com [IPv6:2607:f8b0:4864:20::f2b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9087A4 for ; Tue, 10 Oct 2023 01:17:08 -0700 (PDT) Received: by mail-qv1-xf2b.google.com with SMTP id 6a1803df08f44-65b0e623189so30245056d6.1 for ; Tue, 10 Oct 2023 01:17:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696925828; x=1697530628; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=vZ91x7U3rirUbkyYioXuLdImi+LNXots2Inn4nnzz1I=; b=xkkOduAEopymSa0l3aRiFtcS9GGR57GfY+5TGgNuiun2g9q5Md2sVwnJ+lbvOokQzb +2wKAaaC4Kkg8Tty8nrZkb1pDY+9/k6EjnKpzCE2dapnW3iWvkVGqgdh2XyKp/OM6MkA JdKX3FwP9hHkvWHaeErNrOeib8uOyL1uS4qe3+BxhF/077I1vMHlfSogNR8B0XiHJV5H HIPF6Z5hz9zhi1Gc2SbJ4ugrlTxLQ3zCdZiBIp5sZtTLHLKw1StMXahjBpKBig9dtFoZ yqCLShsG1b06km2FvdjOQU3oz1utXmhOyAAyq9J02vqJBzTdejTa7NUfOfF3co1ubvAh Tmqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696925828; x=1697530628; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vZ91x7U3rirUbkyYioXuLdImi+LNXots2Inn4nnzz1I=; b=rTV8Ekt4OqCZ1tnsbgIgx0PEg1nzOZ8L2YBRhK/EyZx3Yy47S+4udHzru/2ZQmqMBG 0kmk2xxXy6PaN/LuqQJopB8GmGV/CLlG+/oNi8rz5LyrJaJwJW4bY0LDRvWI9gT84cNt LP4Tzv5X5keJ9dB2x7tT0I65UWUypj9Oev1MO7KrGvv56XNMx+zPSdo7kbYqrupkrHcQ m2THgR91liVgUgomHDPlKYVPx1zpa/4yC3fc+kfjFjoCRaXsDm2JBJJY3YYX6HL8DM4C uxqoO2MCBQhQjwCo4VUvERDsgPhlHPlSbL61IpAiUQJnsWcaEtlvREiL+WlnzNWEUoeF 4hSQ== X-Gm-Message-State: AOJu0Yw/yy+pGiPp+IHnZWvd77Aa7rPGaQ1FEGBAayuANnqWbr5PqLgk upMq/7ZHLw+hU6ZJy2NV6RiXHXbBuXG0HznmR9JhgQ== X-Received: by 2002:a05:6214:3a03:b0:658:2037:718b with SMTP id nw3-20020a0562143a0300b006582037718bmr19876973qvb.51.1696925827788; Tue, 10 Oct 2023 01:17:07 -0700 (PDT) MIME-Version: 1.0 References: <20231006134529.2816540-1-glider@google.com> <20231006134529.2816540-2-glider@google.com> In-Reply-To: From: Alexander Potapenko Date: Tue, 10 Oct 2023 10:16:26 +0200 Message-ID: Subject: Re: [PATCH v6 1/5] lib/bitmap: add bitmap_{read,write}() To: Andy Shevchenko Cc: catalin.marinas@arm.com, will@kernel.org, pcc@google.com, andreyknvl@gmail.com, aleksander.lobakin@intel.com, linux@rasmusvillemoes.dk, yury.norov@gmail.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, eugenis@google.com, syednwaris@gmail.com, william.gray@linaro.org, Arnd Bergmann Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-4.8 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS, USER_IN_DEF_DKIM_WL autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Tue, 10 Oct 2023 01:17:23 -0700 (PDT) On Fri, Oct 6, 2023 at 4:48=E2=80=AFPM Andy Shevchenko wrote: > > On Fri, Oct 06, 2023 at 03:45:25PM +0200, Alexander Potapenko wrote: > > From: Syed Nayyar Waris > > > > The two new functions allow reading/writing values of length up to > > BITS_PER_LONG bits at arbitrary position in the bitmap. > > > > The code was taken from "bitops: Introduce the for_each_set_clump macro= " > > by Syed Nayyar Waris with a number of changes and simplifications: > > - instead of using roundup(), which adds an unnecessary dependency > > on , we calculate space as BITS_PER_LONG-offset; > > - indentation is reduced by not using else-clauses (suggested by > > checkpatch for bitmap_get_value()); > > - bitmap_get_value()/bitmap_set_value() are renamed to bitmap_read() > > and bitmap_write(); > > - some redundant computations are omitted. > > ... > > > v6: > > - As suggested by Yury Norov, do not require bitmap_read(..., 0) to > > return 0. > > Hmm... See below. > > ... > > > * bitmap_to_arr32(buf, src, nbits) Copy nbits from buf to= u32[] dst > > * bitmap_to_arr64(buf, src, nbits) Copy nbits from buf to= u64[] dst > > With the grouping as below I would add a blank line here. But was the int= ention > to group _arrXX() to these groups? Note that there's no single blank line in this long list. What if I swap bitmap_read with bitmap_set_value8(), would the grouping become more logical? I.e. * bitmap_get_value8(map, start) Get 8bit value from map at s= tart * bitmap_set_value8(map, value, start) Set 8bit value to map at sta= rt * bitmap_read(map, start, nbits) Read an nbits-sized value fr= om * map at start * bitmap_write(map, value, start, nbits) Write an nbits-sized value t= o * map at start > > + if (unlikely(!nbits)) > > + return 0; > > Hmm... I didn't get was the comment to add or to remove these checks? As Yury said, we should not require the return value to be 0, so I added "nonzero" to the descriptions of the @nbits parameter. The check stays in place, but the users relying on it is now a mistake. > > > + if (space >=3D nbits) > > + return (map[index] >> offset) & GENMASK(nbits - 1, 0); > > And don't you want to replace this GENMASK() as well? See my next reply to Yury, tl;dr this is a stale code version :(