From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 576AFEB64DA for ; Wed, 5 Jul 2023 19:00:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230126AbjGETAi (ORCPT ); Wed, 5 Jul 2023 15:00:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39702 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232938AbjGETAg (ORCPT ); Wed, 5 Jul 2023 15:00:36 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 767611998; Wed, 5 Jul 2023 12:00:20 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 1449D616D1; Wed, 5 Jul 2023 19:00:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD2C4C433C8; Wed, 5 Jul 2023 19:00:14 +0000 (UTC) Date: Wed, 5 Jul 2023 15:00:13 -0400 From: Steven Rostedt To: Valentin Schneider Cc: linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-doc@vger.kernel.org, kvm@vger.kernel.org, linux-mm@kvack.org, bpf@vger.kernel.org, x86@kernel.org, Masami Hiramatsu , Jonathan Corbet , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Paolo Bonzini , Wanpeng Li , Vitaly Kuznetsov , Andy Lutomirski , Peter Zijlstra , Frederic Weisbecker , "Paul E. McKenney" , Andrew Morton , Uladzislau Rezki , Christoph Hellwig , Lorenzo Stoakes , Josh Poimboeuf , Kees Cook , Sami Tolvanen , Ard Biesheuvel , Nicholas Piggin , Juerg Haefliger , Nicolas Saenz Julienne , "Kirill A. Shutemov" , Nadav Amit , Dan Carpenter , Chuang Wang , Yang Jihong , Petr Mladek , "Jason A. Donenfeld" , Song Liu , Julian Pidancet , Tom Lendacky , Dionna Glaze , Thomas =?UTF-8?B?V2Vpw59zY2h1aA==?= , Juri Lelli , Daniel Bristot de Oliveira , Marcelo Tosatti , Yair Podemsky Subject: Re: [RFC PATCH 03/14] tracing/filters: Enable filtering a scalar field by a cpumask Message-ID: <20230705150013.5ba7ddb8@gandalf.local.home> In-Reply-To: <20230705181256.3539027-4-vschneid@redhat.com> References: <20230705181256.3539027-1-vschneid@redhat.com> <20230705181256.3539027-4-vschneid@redhat.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-doc@vger.kernel.org On Wed, 5 Jul 2023 19:12:45 +0100 Valentin Schneider wrote: > +/* Optimisation of do_filter_cpumask() for scalar values */ > +static inline int > +do_filter_cpumask_scalar(int op, unsigned int cpu, const struct cpumask *mask) > +{ > + switch (op) { > + case OP_EQ: > + return cpumask_equal(mask, cpumask_of(cpu)); > + case OP_NE: > + return !cpumask_equal(mask, cpumask_of(cpu)); The above two can be optimized much more if the cpu is a scalar. If mask is anything but a single CPU, then EQ will always be false, and NE will always be true. If the mask contains a single CPU, then we should convert the mask into the scalar CPU and just do: case OP_EQ: return mask_cpu == cpu; case op_NE: return maks_cpu != cpu; -- Steve > + case OP_BAND: > + return cpumask_test_cpu(cpu, mask); > + default: > + return 0; > + } > +}