Re: [PATCH 04/11] ACPI: pci_link: remove acpi_irq_balance_set() interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



applied to acpi-test

thanks,
-len

On Wed, 5 Nov 2008, Bjorn Helgaas wrote:

> This removes the acpi_irq_balance_set() interface from the PCI
> interrupt link driver.
> 
> x86 used acpi_irq_balance_set() to tell the PCI interrupt link
> driver to configure links to minimize IRQ sharing.  But the link
> driver can easily figure out whether to turn on IRQ balancing
> based on the IRQ model (PIC/IOAPIC/etc), so we can get rid of
> that external interface.
> 
> It's better for the driver to figure this out at init-time.  If
> we set it externally via the x86 code, the interface reduces
> modularity, and we depend on the fact that acpi_process_madt()
> happens before we process the kernel command line.
> 
> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
> ---
>  arch/x86/include/asm/acpi.h |    1 -
>  arch/x86/kernel/acpi/boot.c |    1 -
>  drivers/acpi/pci_link.c     |   11 +++++++++--
>  3 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h
> index 8d676d8..9830681 100644
> --- a/arch/x86/include/asm/acpi.h
> +++ b/arch/x86/include/asm/acpi.h
> @@ -113,7 +113,6 @@ static inline void acpi_disable_pci(void)
>  	acpi_pci_disabled = 1;
>  	acpi_noirq_set();
>  }
> -extern int acpi_irq_balance_set(char *str);
>  
>  /* routines for saving/restoring kernel state */
>  extern int acpi_save_state_mem(void);
> diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
> index 8c1f76a..4c51a2f 100644
> --- a/arch/x86/kernel/acpi/boot.c
> +++ b/arch/x86/kernel/acpi/boot.c
> @@ -1343,7 +1343,6 @@ static void __init acpi_process_madt(void)
>  			error = acpi_parse_madt_ioapic_entries();
>  			if (!error) {
>  				acpi_irq_model = ACPI_IRQ_MODEL_IOAPIC;
> -				acpi_irq_balance_set(NULL);
>  				acpi_ioapic = 1;
>  
>  				smp_found_config = 1;
> diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
> index fcfdef7..e52ad91 100644
> --- a/drivers/acpi/pci_link.c
> +++ b/drivers/acpi/pci_link.c
> @@ -531,7 +531,7 @@ int __init acpi_irq_penalty_init(void)
>  	return 0;
>  }
>  
> -static int acpi_irq_balance;	/* 0: static, 1: balance */
> +static int acpi_irq_balance = -1;	/* 0: static, 1: balance */
>  
>  static int acpi_pci_link_allocate(struct acpi_pci_link *link)
>  {
> @@ -950,10 +950,17 @@ device_initcall(irqrouter_init_sysfs);
>  
>  static int __init acpi_pci_link_init(void)
>  {
> -
>  	if (acpi_noirq)
>  		return 0;
>  
> +	if (acpi_irq_balance == -1) {
> +		/* no command line switch: enable balancing in IOAPIC mode */
> +		if (acpi_irq_model == ACPI_IRQ_MODEL_IOAPIC)
> +			acpi_irq_balance = 1;
> +		else
> +			acpi_irq_balance = 0;
> +	}
> +
>  	acpi_link.count = 0;
>  	INIT_LIST_HEAD(&acpi_link.entries);
>  
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux