All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
To: "Yury Norov" <yury.norov@gmail.com>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	"Rasmus Villemoes" <linux@rasmusvillemoes.dk>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Michał Mirosław" <mirq-linux@rere.qmqm.pl>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Peter Zijlstra" <peterz@infradead.org>,
	"David Laight" <David.Laight@aculab.com>,
	"Joe Perches" <joe@perches.com>,
	"Dennis Zhou" <dennis@kernel.org>,
	"Emil Renner Berthing" <kernel@esmil.dk>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Matti Vaittinen" <matti.vaittinen@fi.rohmeurope.com>,
	"Alexey Klimov" <aklimov@redhat.com>,
	linux-kernel@vger.kernel.org,
	"Jonathan Cameron" <jic23@kernel.org>,
	"Lars-Peter Clausen" <lars@metafoo.de>,
	"Alexandru Ardelean" <alexandru.ardelean@analog.com>,
	"Nathan Chancellor" <nathan@kernel.org>,
	linux-iio@vger.kernel.org
Subject: Re: [PATCH 04/49] iio: fix opencoded for_each_set_bit()
Date: Fri, 11 Feb 2022 18:17:37 +0100	[thread overview]
Message-ID: <2d5e9096-e40d-13af-234a-539108df1c50@wanadoo.fr> (raw)
In-Reply-To: <20220210224933.379149-5-yury.norov@gmail.com>

Le 10/02/2022 à 23:48, Yury Norov a écrit :
> iio_simple_dummy_trigger_h() is mostly an opencoded for_each_set_bit().
> Using for_each_set_bit() make code much cleaner, and more effective.
> 
> Signed-off-by: Yury Norov <yury.norov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> ---
>   drivers/iio/dummy/iio_simple_dummy_buffer.c | 48 ++++++++-------------
>   1 file changed, 19 insertions(+), 29 deletions(-)
> 
> diff --git a/drivers/iio/dummy/iio_simple_dummy_buffer.c b/drivers/iio/dummy/iio_simple_dummy_buffer.c
> index d81c2b2dad82..3bc1b7529e2a 100644
> --- a/drivers/iio/dummy/iio_simple_dummy_buffer.c
> +++ b/drivers/iio/dummy/iio_simple_dummy_buffer.c
> @@ -45,41 +45,31 @@ static irqreturn_t iio_simple_dummy_trigger_h(int irq, void *p)
>   {
>   	struct iio_poll_func *pf = p;
>   	struct iio_dev *indio_dev = pf->indio_dev;
> +	int i = 0, j;
>   	u16 *data;
>   
>   	data = kmalloc(indio_dev->scan_bytes, GFP_KERNEL);
>   	if (!data)
>   		goto done;
>   
> -	if (!bitmap_empty(indio_dev->active_scan_mask, indio_dev->masklength)) {
> -		/*
> -		 * Three common options here:
> -		 * hardware scans: certain combinations of channels make
> -		 *   up a fast read.  The capture will consist of all of them.
> -		 *   Hence we just call the grab data function and fill the
> -		 *   buffer without processing.
> -		 * software scans: can be considered to be random access
> -		 *   so efficient reading is just a case of minimal bus
> -		 *   transactions.
> -		 * software culled hardware scans:
> -		 *   occasionally a driver may process the nearest hardware
> -		 *   scan to avoid storing elements that are not desired. This
> -		 *   is the fiddliest option by far.
> -		 * Here let's pretend we have random access. And the values are
> -		 * in the constant table fakedata.
> -		 */
> -		int i, j;
> -
> -		for (i = 0, j = 0;
> -		     i < bitmap_weight(indio_dev->active_scan_mask,
> -				       indio_dev->masklength);
> -		     i++, j++) {
> -			j = find_next_bit(indio_dev->active_scan_mask,
> -					  indio_dev->masklength, j);
> -			/* random access read from the 'device' */
> -			data[i] = fakedata[j];
> -		}
> -	}
> +	/*
> +	 * Three common options here:
> +	 * hardware scans: certain combinations of channels make
> +	 *   up a fast read.  The capture will consist of all of them.
> +	 *   Hence we just call the grab data function and fill the
> +	 *   buffer without processing.
> +	 * software scans: can be considered to be random access
> +	 *   so efficient reading is just a case of minimal bus
> +	 *   transactions.
> +	 * software culled hardware scans:
> +	 *   occasionally a driver may process the nearest hardware
> +	 *   scan to avoid storing elements that are not desired. This
> +	 *   is the fiddliest option by far.
> +	 * Here let's pretend we have random access. And the values are
> +	 * in the constant table fakedata.
> +	 */

Nitpicking: you could take advantage of the tab you save to use the full 
width of the line and save some lines of code.

Just my 2c.

CJ


> +	for_each_set_bit(j, indio_dev->active_scan_mask, indio_dev->masklength)
> +		data[i++] = fakedata[j];
>   
>   	iio_push_to_buffers_with_timestamp(indio_dev, data,
>   					   iio_get_time_ns(indio_dev));


  parent reply	other threads:[~2022-02-11 17:17 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-10 22:48 [PATCH v4 00/49] bitmap: optimize bitmap_weight() usage Yury Norov
2022-02-10 22:48 ` [PATCH 01/49] net: dsa: don't use bitmap_weight() in b53_arl_read() Yury Norov
2022-02-10 22:48 ` [PATCH 02/49] net: systemport: don't use bitmap_weight() in bcm_sysport_rule_set() Yury Norov
2022-02-10 22:48 ` [PATCH 03/49] net: mellanox: fix open-coded for_each_set_bit() Yury Norov
2022-02-11  9:01   ` David Laight
2022-02-10 22:48 ` [PATCH 04/49] iio: fix opencoded for_each_set_bit() Yury Norov
2022-02-11  8:45   ` Andy Shevchenko
2022-02-11 17:17   ` Christophe JAILLET [this message]
2022-06-04 15:41     ` Jonathan Cameron
2022-06-11 13:50       ` Jonathan Cameron
2022-02-10 22:48 ` [RFC PATCH 05/49] qed: rework qed_rdma_bmap_free() Yury Norov
2022-02-11  8:48   ` Andy Shevchenko
2022-02-10 22:48 ` [PATCH 06/49] nds32: perf: replace bitmap_weight with bitmap_empty where appropriate Yury Norov
2022-02-10 22:48 ` [PATCH 07/49] KVM: x86: " Yury Norov
2022-02-11 16:34   ` Sean Christopherson
2022-02-11 17:13   ` Christophe JAILLET
2022-02-11 17:19     ` Sean Christopherson
2022-02-11 17:47       ` Yury Norov
2022-02-10 22:48 ` [PATCH 08/49] drm: " Yury Norov
2022-02-11  2:11   ` Dmitry Baryshkov
2022-02-11  2:11     ` Dmitry Baryshkov
2022-02-10 22:48 ` [PATCH 09/49] ice: replace bitmap_weight with bitmap_empty Yury Norov
2022-02-10 22:48   ` [Intel-wired-lan] " Yury Norov
2022-02-10 22:48 ` [PATCH 10/49] octeontx2-pf: replace bitmap_weight with bitmap_empty where appropriate Yury Norov
2022-02-10 22:48 ` [PATCH 11/49] qed: replace bitmap_weight with bitmap_empty in qed_roce_stop() Yury Norov
2022-02-10 22:48 ` [PATCH 12/49] perf: replace bitmap_weight with bitmap_empty where appropriate Yury Norov
2022-02-10 22:48   ` Yury Norov
2022-02-11 10:25   ` Mark Rutland
2022-02-11 10:25     ` Mark Rutland
2022-02-11 17:59     ` Yury Norov
2022-02-11 17:59       ` Yury Norov
2022-02-11 17:27   ` Christophe JAILLET
2022-02-11 17:27     ` Christophe JAILLET
2022-02-11 23:23     ` Yury Norov
2022-02-11 23:23       ` Yury Norov
2022-02-10 22:48 ` [PATCH 13/49] perf tools: " Yury Norov
2022-02-10 22:48 ` [PATCH 14/49] arch/alpha: replace cpumask_weight with cpumask_empty " Yury Norov
2022-02-10 22:48   ` Yury Norov
2022-02-10 22:48 ` [PATCH 15/49] arch/ia64: " Yury Norov
2022-02-10 22:48   ` Yury Norov
2022-02-10 22:49 ` [PATCH 16/49] arch/x86: " Yury Norov
2022-02-10 22:49   ` [Nouveau] " Yury Norov
2022-04-10 20:42   ` [tip: x86/cleanups] x86: Replace cpumask_weight() with cpumask_empty() " tip-bot2 for Yury Norov
2022-02-10 22:49 ` [PATCH 17/49] cpufreq: replace cpumask_weight with cpumask_empty " Yury Norov
2022-02-10 22:49   ` Yury Norov
2022-02-11  4:30   ` Viresh Kumar
2022-02-11  4:30     ` Viresh Kumar
2022-02-11  5:17     ` Yury Norov
2022-02-11  5:17       ` Yury Norov
2022-02-10 22:49 ` [PATCH 18/49] drm/i915/pmu: " Yury Norov
2022-02-10 22:49   ` [Intel-gfx] " Yury Norov
2022-02-10 22:49 ` [PATCH 19/49] RDMA/hfi: " Yury Norov
2022-02-11 19:10   ` Jason Gunthorpe
2022-02-10 22:49 ` [PATCH 20/49] irq: mips: " Yury Norov
2022-04-10 20:34   ` [tip: irq/core] irqchip/bmips: Replace cpumask_weight() with cpumask_empty() tip-bot2 for Yury Norov
2022-02-10 22:49 ` [PATCH 21/49] genirq/affinity: replace cpumask_weight with cpumask_empty where appropriate Yury Norov
2022-04-10 20:27   ` [tip: irq/core] genirq/affinity: Replace cpumask_weight() with cpumask_empty() " tip-bot2 for Yury Norov
     [not found]     ` <573841649622719@mail.yandex.com>
2022-04-10 21:17       ` Yury Norov
2022-02-10 22:49 ` [PATCH 22/49] sched: replace cpumask_weight with cpumask_empty " Yury Norov
2022-02-11 10:19   ` Peter Zijlstra
2022-02-11 14:19     ` Yury Norov
2022-02-17 18:56   ` [tip: sched/core] " tip-bot2 for Yury Norov
2022-02-10 22:49 ` [PATCH 23/49] clocksource: replace cpumask_weight with cpumask_empty in clocksource.c Yury Norov
2022-04-10 20:35   ` [tip: timers/core] clocksource: Replace cpumask_weight() with cpumask_empty() tip-bot2 for Yury Norov
2022-02-10 22:49 ` [PATCH 24/49] mm/vmstat: replace cpumask_weight with cpumask_empty where appropriate Yury Norov
2022-02-11 10:39   ` Mike Rapoport
2022-02-10 22:49 ` [PATCH 25/49] arch/x86: replace nodes_weight with nodes_empty " Yury Norov
2022-04-10 20:42   ` [tip: x86/cleanups] x86/mm: Replace nodes_weight() with nodes_empty() " tip-bot2 for Yury Norov
2022-02-10 22:49 ` [PATCH 26/49] bitmap: add bitmap_weight_{cmp, eq, gt, ge, lt, le} functions Yury Norov
2022-02-10 22:49 ` [PATCH 27/49] arch/x86: replace bitmap_weight with bitmap_weight_{eq,gt,ge,lt,le} where appropriate Yury Norov
2022-02-10 22:49 ` [PATCH 28/49] iio: replace bitmap_weight() with bitmap_weight_{eq,gt} " Yury Norov
2022-02-10 22:49   ` [Intel-wired-lan] [PATCH 28/49] iio: replace bitmap_weight() with bitmap_weight_{eq, gt} " Yury Norov
2022-02-10 22:49 ` [PATCH 29/49] memstick: replace bitmap_weight with bitmap_weight_eq " Yury Norov
2022-02-17 15:39   ` Ulf Hansson
2022-02-17 16:55     ` Yury Norov
2022-02-22 15:49       ` Ulf Hansson
2022-02-10 22:49 ` [PATCH 30/49] ixgbe: replace bitmap_weight with bitmap_weight_eq Yury Norov
2022-02-10 22:49   ` [Intel-wired-lan] " Yury Norov
2022-02-10 22:49 ` [PATCH 31/49] octeontx2-pf: replace bitmap_weight with bitmap_weight_{eq,gt} Yury Norov
2022-02-10 22:49 ` [PATCH 32/49] mlx4: replace bitmap_weight with bitmap_weight_{eq,gt,ge,lt,le} Yury Norov
2022-02-10 22:49 ` [PATCH 33/49] perf: replace bitmap_weight with bitmap_weight_eq for ThunderX2 Yury Norov
2022-02-10 22:49   ` Yury Norov
2022-02-11 10:30   ` Mark Rutland
2022-02-11 10:30     ` Mark Rutland
2022-02-10 22:49 ` [PATCH 34/49] media: tegra-video: replace bitmap_weight with bitmap_weight_le Yury Norov
2022-04-28  7:31   ` Hans Verkuil
2022-02-10 22:49 ` [PATCH 35/49] cpumask: add cpumask_weight_{eq,gt,ge,lt,le} Yury Norov
2022-02-10 22:49 ` [PATCH 36/49] arch/ia64: replace cpumask_weight with cpumask_weight_eq in mm/tlb.c Yury Norov
2022-02-10 22:49   ` Yury Norov
2022-02-10 22:49 ` [PATCH 37/49] arch/mips: replace cpumask_weight with cpumask_weight_{eq, ...} where appropriate Yury Norov
2022-02-10 22:49 ` [PATCH 38/49] arch/powerpc: " Yury Norov
2022-02-11  4:10   ` Michael Ellerman
2022-02-10 22:49 ` [PATCH 39/49] arch/s390: replace cpumask_weight with cpumask_weight_eq " Yury Norov
2022-02-11  6:54   ` Sven Schnelle
2022-02-11 23:40     ` Yury Norov
2022-02-10 22:49 ` [PATCH 40/49] firmware: pcsi: replace cpumask_weight with cpumask_weight_eq Yury Norov
2022-02-10 22:49   ` Yury Norov
2022-02-11  9:45   ` Sudeep Holla
2022-02-11  9:45     ` Sudeep Holla
2022-02-11 10:32   ` Mark Rutland
2022-02-11 10:32     ` Mark Rutland
2022-02-10 22:49 ` [PATCH 41/49] RDMA/hfi1: replace cpumask_weight with cpumask_weight_{eq, ...} where appropriate Yury Norov
2022-02-11 19:11   ` Jason Gunthorpe
2022-02-10 22:49 ` [PATCH 42/49] scsi: lpfc: replace cpumask_weight with cpumask_weight_gt Yury Norov
2022-02-10 22:49 ` [PATCH 43/49] soc/qman: replace cpumask_weight with cpumask_weight_lt Yury Norov
2022-02-10 22:49   ` Yury Norov
2022-02-10 22:49 ` [PATCH 44/49] nodemask: add nodemask_weight_{eq,gt,ge,lt,le} Yury Norov
2022-02-10 22:49 ` [PATCH 45/49] ACPI: replace nodes__weight with nodes_weight_ge for numa Yury Norov
2022-02-14 19:18   ` Rafael J. Wysocki
2022-02-14 19:34     ` Yury Norov
2022-02-14 19:45       ` Rafael J. Wysocki
2022-02-14 19:55         ` Yury Norov
2022-02-10 22:49 ` [PATCH 46/49] mm/mempolicy: replace nodes_weight with nodes_weight_eq Yury Norov
2022-02-11 10:40   ` Mike Rapoport
2022-02-11 17:44   ` Christophe JAILLET
2022-02-11 19:47     ` Yury Norov
2022-02-10 22:49 ` [PATCH 47/49] nodemask: add num_node_state_eq() Yury Norov
2022-02-11 10:41   ` Mike Rapoport
2022-02-10 22:49 ` [PATCH 48/49] tools: bitmap: sync bitmap_weight Yury Norov
2022-02-10 22:49 ` [PATCH 49/49] MAINTAINERS: add cpumask and nodemask files to BITMAP_API Yury Norov
2022-02-15 23:18 ` [PATCH v4 00/49] bitmap: optimize bitmap_weight() usage Will Deacon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2d5e9096-e40d-13af-234a-539108df1c50@wanadoo.fr \
    --to=christophe.jaillet@wanadoo.fr \
    --cc=David.Laight@aculab.com \
    --cc=aklimov@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=alexandru.ardelean@analog.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=dennis@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jic23@kernel.org \
    --cc=joe@perches.com \
    --cc=kernel@esmil.dk \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=matti.vaittinen@fi.rohmeurope.com \
    --cc=mirq-linux@rere.qmqm.pl \
    --cc=nathan@kernel.org \
    --cc=npiggin@gmail.com \
    --cc=peterz@infradead.org \
    --cc=yury.norov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.