Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp4338847iog; Tue, 21 Jun 2022 17:56:14 -0700 (PDT) X-Google-Smtp-Source: AGRyM1s4Sdl1MUshupgLG+2yDRJS+4XfMuT8SA06jtV37HGtm5mZ7tNxmrs+/23Tmq4aE1RIMU/i X-Received: by 2002:a17:907:2d28:b0:722:e1d9:529 with SMTP id gs40-20020a1709072d2800b00722e1d90529mr757166ejc.464.1655859374047; Tue, 21 Jun 2022 17:56:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655859374; cv=none; d=google.com; s=arc-20160816; b=sJIdKGqntiIUXatVmkVNB2yyqLHzpk9gkcnz3KVfgJYzflTOyqnWFrLMc4uub6p+Z3 OfZsu/Km/VW2rSvFL8APM0sCAB9sdrxdZmjGsThIHZcwosFdC806z3ZI/p+Jb7RLVsG+ RPWC594oqeKQN+ojncj9dYjKqmDPgRUdkymTzd1Tq3OGhSu/PTI+L1im0x+j2G2uswpZ E2HHQzeoV/URBvh+Un9QJHw6ZTyDgoiLwRTqxonSSNRoS/9ta0osBHowrVMRKn8x2WqM a5b1vmiWSvXfL+CWT2O9d+C2cFvH5JqVLgcry56llgklDDWcaIVpuazPnAJ97ZZqPqy6 MwbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :mime-version:user-agent:date:message-id:from:cc:references:to :subject; bh=N65EBzVh/HpqsD6KmoWLRjXvcXcB/PCvYo3WHliMikQ=; b=1B8SYnpMIf8K/MXIleJIkRUhm8k2B+ZMVawfGMoIdUJshmV0ojEqBdOPcV6+NKL/L3 Aq4ielVTY4Ahpn+qsSMkGi9cifjrVuHVV66Vozh+D5efvka0fwHpV6cQ5gyW4mq1PiL8 4SN+GDFyv+ujYBXEZW0hnH2RJKBH1orCt6qs0weBiFaXhsrhG6GbLYEp6csbGJERRMyg LXhsHxfrJ9QYPDWIwKzbMGBQ968fCTnSVRxXcAxRhHMkXWf3jbQiAksoQKdhlbORY/6d 7zGA7uf3WPU8Nd0JbBAK0BxEDWv3wgXGVTJgV4k/nh1Cg/uMkQL/6dnOXoy5HK53RfbI dAYg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id cw12-20020a170906478c00b0070e06c115b0si14922671ejc.235.2022.06.21.17.55.49; Tue, 21 Jun 2022 17:56:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1354853AbiFVAUb (ORCPT + 99 others); Tue, 21 Jun 2022 20:20:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1354006AbiFVAU3 (ORCPT ); Tue, 21 Jun 2022 20:20:29 -0400 Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 80D8C27FCC; Tue, 21 Jun 2022 17:20:27 -0700 (PDT) Received: from [10.130.0.135] (unknown [113.200.148.30]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9DxD086YLJiiTNTAA--.26216S3; Wed, 22 Jun 2022 08:20:10 +0800 (CST) Subject: Re: [PATCH] libbpf: Fix is_pow_of_2 To: Zvi Effron , Pavel Machek References: <20220603041701.2799595-1-irogers@google.com> <20220619171248.GC3362@bug> Cc: Ian Rogers , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kernel@vger.kernel.org, Yuze Chi From: Tiezhu Yang Message-ID: Date: Wed, 22 Jun 2022 08:20:10 +0800 User-Agent: Mozilla/5.0 (X11; Linux mips64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-CM-TRANSID: AQAAf9DxD086YLJiiTNTAA--.26216S3 X-Coremail-Antispam: 1UD129KBjvdXoW7Xw1rCFWxCryfAF1kGryrtFb_yoWfuwbEyr 1jk3s7G3y8ZF1rWwn0yr9xWrZ0k3WDXFn8trW0vr13Ja95AasrXw43Kr92vF98KFW2yry7 u3s5XFyfuwsayjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUb-xYjsxI4VWxJwAYFVCjjxCrM7AC8VAFwI0_Gr0_Xr1l1xkIjI8I 6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM2 8CjxkF64kEwVA0rcxSw2x7M28EF7xvwVC0I7IYx2IY67AKxVWUJVWUCwA2z4x0Y4vE2Ix0 cI8IcVCY1x0267AKxVW8JVWxJwA2z4x0Y4vEx4A2jsIE14v26r4j6F4UM28EF7xvwVC2z2 80aVCY1x0267AKxVW8JVW8Jr1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IE w4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE14v26r1j6r4UMc vjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvEwIxGrwACI402YVCY1x02628vn2kIc2xKxwCY jI0SjxkI62AI1cAE67vIY487MxkIecxEwVAFwVWDMxAIw28IcxkI7VAKI48JMxC20s026x CaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_ JrWlx4CE17CEb7AF67AKxVWUtVW8ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r 1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_ WFyUJVCq3wCI42IY6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r 4UJbIYCTnIWIevJa73UjIFyTuYvjxUc89NDUUUU X-CM-SenderInfo: p1dqw3xlh2x3gn0dqz5rrqw2lrqou0/ X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NICE_REPLY_A, SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/22/2022 07:03 AM, Zvi Effron wrote: > On Sun, Jun 19, 2022 at 12:13 PM Pavel Machek wrote: >> >> Hi! >> >>> From: Yuze Chi >>> >>> +++ b/tools/lib/bpf/libbpf.c >>> @@ -4956,7 +4956,7 @@ static void bpf_map__destroy(struct bpf_map *map); >>> >>> static bool is_pow_of_2(size_t x) >>> { >>> - return x && (x & (x - 1)); >>> + return x && !(x & (x - 1)); >>> } >> >> I'm pretty sure we have this test in macro in includes somewhere... should we use >> that instead? > > I went looking for a macro that provided this check and could not find one. I arch/microblaze/mm/pgtable.c #define is_power_of_2(x) ((x) != 0 && (((x) & ((x) - 1)) == 0)) > did find the inlined static function is_power_of_2 in log2.h, though, that we > could use. Here is a patch, but it seems that this is not worth the extra pain. https://lore.kernel.org/bpf/8e5291b7-bd89-6fea-bfb7-954cacdb8523@iogearbox.net/ Thanks, Tiezhu