public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: hpa@zytor.com, linux-kernel@vger.kernel.org, tglx@linutronix.de,
	yhlu.kernel@gmail.com, macro@linux-mips.org
Subject: Re: [patch 3/3] x86: io-apic - code style cleaning for setup_IO_APIC_irqs
Date: Fri, 5 Sep 2008 20:11:11 +0200	[thread overview]
Message-ID: <20080905181111.GG27395@elte.hu> (raw)
In-Reply-To: <20080905180126.GA19334@lenovo>


* Cyrill Gorcunov <gorcunov@gmail.com> wrote:

> [Ingo Molnar - Fri, Sep 05, 2008 at 10:04:47AM +0200]
> | 
> | * Cyrill Gorcunov <gorcunov@gmail.com> wrote:
> | 
> | > Use a nested level for 'for' cycle and break long lines.
> | > For apic_print we should countinue using KERNEL_DEBUG if
> | > we have started to.
> | 
> | > @@ -1521,32 +1521,35 @@ static void __init setup_IO_APIC_irqs(vo
> | >  	apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n");
> | >  
> | >  	for (apic = 0; apic < nr_ioapics; apic++) {
> | > -	for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) {
> | > +		for (pin = 0; pin < nr_ioapic_registers[apic]; pin++) {
> | >  
> | > +			idx = find_irq_entry(apic, pin, mp_INT);
> | > +			if (idx == -1) {
> | 
> | hm, i dont really like the super-deep nesting we do here. Could you 
> | please split out the iterator into a separate function? That makes the 
> | code a lot easier to understand and saves two extra tabs as well for 
> | those ugly-looking printk lines.
> | 
> | 	Ingo
> | 
> 
> You know it seems we use such a 'cycle on every pin on io-apics'
> in several places for now:
> 
> io_apic.c
> ---------
> 	clear_IO_APIC
> 	save_mask_IO_APIC_setup
> 	restore_IO_APIC_setup
> 	IO_APIC_irq_trigger
> 	setup_IO_APIC_irqs
> 
> I've made a one-line macro for this (like for_all_ioapics_pins)
> _but_ it looks much more ugly then this two nested for(;;) :)
> 
> If you meant me to make a separate iterator over the pins I think
> it will not help a lot - this function is simple enought so the only
> problem is too-long-printk-form - maybe just print them on separated
> lines instead of tracking apicids? Or it was made in a sake to not
> scroll screen too much?

hm, by iterator i meant the body itself. I.e. something like:

static void __init setup_IO_APIC_irqs(void)
{
        int apic, pin, notcon = 1;

        apic_printk(APIC_VERBOSE, KERN_DEBUG "init IO_APIC IRQs\n");

        for (apic = 0; apic < nr_ioapics; apic++)
		for (pin = 0; pin < nr_ioapic_registers[apic]; pin++)
			notcon = setup_ioapic_irq(apic, pin, notcon);

        if (!notcon)
                apic_printk(APIC_VERBOSE, " not connected.\n");
}

this looks quite a bit cleaner, doesnt it? We lose the 'idx' and 'irq' 
variables and we lose the curly braces as well. The flow looks a lot 
more trivial. And the new setup_ioapic_irq() function will be simpler as 
well - it will only have 'idx' and 'irq' as a local variable, the rest 
comes in as a parameter. It can 'return notcon' instead of 'continue'. 
And it will be 2 levels of tabs aligned to the left, as an added bonus.

Hm?

	Ingo

  reply	other threads:[~2008-09-05 18:11 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20080904183748.950151853@gmail.com>
2008-09-04 18:37 ` [patch 1/3] x86: io-apic - use ARRAY_SIZE macro Cyrill Gorcunov
2008-09-05  8:02   ` Ingo Molnar
2008-09-04 18:37 ` [patch 2/3] x86: io-apic - declare irq_cfg_lock for SPARSE_IRQ only Cyrill Gorcunov
2008-09-05  8:03   ` Ingo Molnar
2008-09-04 18:37 ` [patch 3/3] x86: io-apic - code style cleaning for setup_IO_APIC_irqs Cyrill Gorcunov
2008-09-05  8:04   ` Ingo Molnar
2008-09-05 13:49     ` Cyrill Gorcunov
2008-09-05 18:01     ` Cyrill Gorcunov
2008-09-05 18:11       ` Ingo Molnar [this message]
2008-09-05 18:33         ` Cyrill Gorcunov
2008-09-05 18:38           ` Ingo Molnar
2008-09-05 19:15             ` Cyrill Gorcunov
2008-09-06 10:15             ` Cyrill Gorcunov
2008-09-06 13:12               ` Ingo Molnar
2008-09-08  0:24                 ` Yinghai Lu
2008-09-08  4:18                   ` Cyrill Gorcunov
2008-09-08  4:20                   ` Cyrill Gorcunov
2008-09-08  4:38                     ` Yinghai Lu
2008-09-08  5:07                       ` Yinghai Lu
2008-09-08  5:17                         ` Cyrill Gorcunov
2008-09-06 18:45               ` Maciej W. Rozycki
2008-09-06 18:49                 ` Ingo Molnar
2008-09-06 20:02                   ` Maciej W. Rozycki
2008-09-07 10:00                   ` Cyrill Gorcunov
2008-09-07 15:47                     ` Ingo Molnar
2008-09-07 16:04                       ` Cyrill Gorcunov
2008-09-06 19:04                 ` Cyrill Gorcunov
2008-09-06 19:16                   ` Yinghai Lu
2008-09-06 19:19                     ` Cyrill Gorcunov
2008-09-06 19:38                     ` Cyrill Gorcunov
2008-09-06 19:44                       ` Cyrill Gorcunov
2008-09-06 20:08                         ` Maciej W. Rozycki
2008-09-06 20:13                           ` Cyrill Gorcunov

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=20080905181111.GG27395@elte.hu \
    --to=mingo@elte.hu \
    --cc=gorcunov@gmail.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=macro@linux-mips.org \
    --cc=tglx@linutronix.de \
    --cc=yhlu.kernel@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox