All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: "Andreas Färber" <afaerber@suse.de>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH qom-cpu v2 24/29] cpu: Drop qemu_for_each_cpu()
Date: Sun, 16 Jun 2013 23:36:44 +0300	[thread overview]
Message-ID: <20130616203644.GC19741@redhat.com> (raw)
In-Reply-To: <CAFEAcA_i6zmJSffE6afi-RMooCnq+uCufwqst27qb5ebooD+5g@mail.gmail.com>

On Sun, Jun 16, 2013 at 09:30:29PM +0100, Peter Maydell wrote:
> On 16 June 2013 21:26, Michael S. Tsirkin <mst@redhat.com> wrote:
> > On Sun, Jun 16, 2013 at 05:57:44PM +0200, Andreas Färber wrote:
> >> Revert commit d6b9e0d60cc511eca210834428bb74508cff3d33 (cpu: Add
> >> qemu_for_each_cpu()) and its usage in favor of open-coding CPU loops,
> >> now that they are based on CPUState.
> >>
> >> Suggested-by: Markus Armbruster <armbru@redhat.com>
> >> Signed-off-by: Andreas Färber <afaerber@suse.de>
> >
> > Open-coding is kind of nasty though.
> >
> > How about
> > #define qemu_for_each_cpu(cpu) \
> >     for (cpu = first_cpu; cpu != NULL; cpu = cpu->next_cpu)
> 
> Personally for an iteration that simple I would prefer
> the opencoded version -- it's more immediately
> obvious what it's doing and that it's not doing anything
> weird.

Only if you have memorized how is the list of CPUs put together.
You probably did, most other readers probably didn't,
and have to waste time looking it up.

> Precedent isn't everything, but a quick grep for 'foreach'
> and 'for_each' suggests that we generally use the callback-fn
> style rather than iterator macros.
> 
> thanks
> -- PMM

Callback is fine too.

-- 
MST

  reply	other threads:[~2013-06-16 20:36 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-16 15:57 [Qemu-devel] [PATCH qom-cpu v2 00/29] QOM CPUState, part 10: CPU loops Andreas Färber
2013-06-16 15:57 ` [PATCH qom-cpu v2 01/29] kvm: Change kvm_cpu_synchronize_state() argument to CPUState Andreas Färber
2013-06-16 15:57   ` [Qemu-devel] " Andreas Färber
2013-06-17 19:48   ` Richard Henderson
     [not found]   ` <51BF360E.8090402@redhat.com>
2013-06-18 16:36     ` Andreas Färber
2013-06-18 16:36       ` [Qemu-devel] " Andreas Färber
2013-06-16 15:57 ` [PATCH qom-cpu v2 02/29] kvm: Change cpu_synchronize_state() " Andreas Färber
2013-06-16 15:57   ` [Qemu-devel] " Andreas Färber
2013-06-17 19:46   ` Richard Henderson
2013-06-17 20:58     ` Andreas Färber
2013-06-17 21:02       ` Richard Henderson
2013-06-17 21:09         ` Andreas Färber
2013-06-18  9:39   ` Igor Mammedov
2013-06-18  9:39     ` [Qemu-devel] " Igor Mammedov
2013-06-21 10:25     ` Andreas Färber
2013-06-21 10:25       ` [Qemu-devel] " Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 03/29] gdbstub: Simplify find_cpu() Andreas Färber
2013-06-17 19:54   ` Richard Henderson
2013-06-19 17:30     ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 04/29] cpu: Change cpu_exit() argument to CPUState Andreas Färber
2013-06-17 19:59   ` Richard Henderson
2013-06-17 21:00     ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 05/29] cpus: Change cpu_thread_is_idle() " Andreas Färber
2013-06-17 20:00   ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 06/29] cpus: Change qemu_kvm_wait_io_event() " Andreas Färber
2013-06-17 20:02   ` Richard Henderson
2013-06-16 15:57 ` [PATCH qom-cpu v2 07/29] kvm: Change kvm_set_signal_mask() " Andreas Färber
2013-06-16 15:57   ` [Qemu-devel] " Andreas Färber
2013-06-17 16:15   ` Paolo Bonzini
2013-06-17 16:15     ` [Qemu-devel] " Paolo Bonzini
2013-06-17 20:03   ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 08/29] cpus: Change qemu_kvm_init_cpu_signals() " Andreas Färber
2013-06-17 20:04   ` Richard Henderson
2013-06-16 15:57 ` [PATCH qom-cpu v2 09/29] cpu: Turn cpu_dump_{state,statistics}() into CPUState hooks Andreas Färber
2013-06-16 15:57   ` [Qemu-devel] [PATCH qom-cpu v2 09/29] cpu: Turn cpu_dump_{state, statistics}() " Andreas Färber
2013-06-17 20:12   ` Richard Henderson
2013-06-16 15:57 ` [PATCH qom-cpu v2 10/29] kvm: Change kvm_handle_internal_error() argument to CPUState Andreas Färber
2013-06-16 15:57   ` [Qemu-devel] " Andreas Färber
2013-06-17 16:16   ` Paolo Bonzini
2013-06-17 16:16     ` [Qemu-devel] " Paolo Bonzini
2013-06-17 20:13   ` Richard Henderson
2013-06-17 20:13     ` [Qemu-devel] " Richard Henderson
2013-06-16 15:57 ` [PATCH qom-cpu v2 11/29] kvm: Change kvm_cpu_exec() " Andreas Färber
2013-06-16 15:57   ` [Qemu-devel] " Andreas Färber
2013-06-17 16:17   ` Paolo Bonzini
2013-06-17 16:17     ` [Qemu-devel] " Paolo Bonzini
2013-06-17 20:14   ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 12/29] gdbstub: Set gdb_set_stop_cpu() " Andreas Färber
2013-06-17 20:15   ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 13/29] cpus: Change cpu_handle_guest_debug() " Andreas Färber
2013-06-17 20:17   ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 14/29] cpus: Change qemu_kvm_start_vcpu() " Andreas Färber
2013-06-17 20:18   ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 15/29] cpus: Change qemu_dummy_start_vcpu() " Andreas Färber
2013-06-17 20:19   ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 16/29] cpu: Change qemu_init_vcpu() " Andreas Färber
2013-06-17 20:23   ` Richard Henderson
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 17/29] hwaddr: Make hwaddr type usable beyond softmmu Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 18/29] cpu: Turn cpu_unassigned_access() into a CPUState hook Andreas Färber
2013-06-17 20:34   ` Richard Henderson
2013-06-21 10:31     ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 19/29] cpu: Replace cpu_single_env with CPUState cpu_single_cpu Andreas Färber
2013-06-16 20:49   ` Blue Swirl
2013-06-18 16:52     ` Andreas Färber
2013-06-19 12:59       ` Paolo Bonzini
2013-06-17 20:40   ` Richard Henderson
2013-06-21 10:32     ` Andreas Färber
2013-07-15 14:56   ` Paolo Bonzini
2013-07-15 15:20     ` Andreas Färber
2013-07-15 15:29       ` Paolo Bonzini
2013-07-18 10:25         ` Andreas Färber
2013-06-16 15:57 ` [PATCH qom-cpu v2 20/29] kvm: Change kvm_remove_all_breakpoints() argument to CPUState Andreas Färber
2013-06-16 15:57   ` [Qemu-devel] " Andreas Färber
2013-06-17 16:17   ` Paolo Bonzini
2013-06-17 16:17     ` [Qemu-devel] " Paolo Bonzini
2013-06-27 15:58     ` Andreas Färber
2013-06-17 20:41   ` Richard Henderson
2013-06-16 15:57 ` [PATCH qom-cpu v2 21/29] cpu: Make first_cpu and next_cpu CPUState Andreas Färber
2013-06-16 15:57   ` [Qemu-devel] " Andreas Färber
2013-06-17 16:20   ` Paolo Bonzini
2013-06-17 16:20     ` [Qemu-devel] " Paolo Bonzini
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 22/29] linux-user: Change thread_env to CPUState Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 23/29] bsd-user: " Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 24/29] cpu: Drop qemu_for_each_cpu() Andreas Färber
2013-06-16 20:26   ` Michael S. Tsirkin
2013-06-16 20:30     ` Peter Maydell
2013-06-16 20:36       ` Michael S. Tsirkin [this message]
2013-06-16 20:41     ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 25/29] cpu: Move CPU_INTERRUPT_* to qom/cpu.h Andreas Färber
2013-06-17 20:59   ` Richard Henderson
2013-06-17 21:13     ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 26/29] intc/sh_intc: Build sh_intc only once Andreas Färber
2013-06-17 21:08   ` Richard Henderson
2013-06-17 21:17     ` Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 27/29] intc/arm_gic: Build arm_gic " Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 28/29] intc/openpic: Build openpic " Andreas Färber
2013-06-16 15:57 ` [Qemu-devel] [PATCH qom-cpu v2 29/29] timer/arm_mptimer: Build arm_mptimer " Andreas Färber
2013-06-26 14:20 ` [Qemu-devel] [PATCH qom-cpu v2 00/29] QOM CPUState, part 10: CPU loops Andreas Färber

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=20130616203644.GC19741@redhat.com \
    --to=mst@redhat.com \
    --cc=afaerber@suse.de \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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.