login
Login
/
Register
Search
Search this site:
Forums
News
Blogs
Features
Site
Home
»
Mailing list archives
»
linux-kernel
»
2010
»
October
»
1
Re: [patch 14/47] genirq: Implement a sane sparse_irq allocator
view
thread
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
[view in full thread]
From: Yinghai Lu
Subject:
Re: [patch 14/47] genirq: Implement a sane sparse_irq allocator
Date: Thursday, September 30, 2010 - 10:28 pm
On 09/30/2010 04:15 PM, Thomas Gleixner wrote: ......
quoted text
> --- > include/linux/irq.h | 25 +++++ > kernel/irq/irqdesc.c | 226 +++++++++++++++++++++++++++++++++++++++++++++++++-- > 2 files changed, 243 insertions(+), 8 deletions(-) > > Index: linux-2.6-tip/include/linux/irq.h > =================================================================== > --- linux-2.6-tip.orig/include/linux/irq.h > +++ linux-2.6-tip/include/linux/irq.h > @@ -276,6 +276,31 @@ static inline struct irq_desc *move_irq_ > > extern struct irq_desc *irq_to_desc_alloc_node(unsigned int irq, int node); > > +int irq_alloc_descs(unsigned int irq, unsigned int from, unsigned int cnt, int node); > + > +static inline int irq_alloc_desc(int node) > +{ > + return irq_alloc_descs(0, 0, 1, node); > +} > + > +static inline int > +irq_alloc_desc_at(unsigned int at, int node) > +{ > + return irq_alloc_descs(at, 0, 1, node);
need to change to return irq_alloc_descs(at, at, 1, node);
quoted text
> +} > +
...
quoted text
> Index: linux-2.6-tip/kernel/irq/irqdesc.c > =================================================================== > --- linux-2.6-tip.orig/kernel/irq/irqdesc.c > +++ linux-2.6-tip/kernel/irq/irqdesc.c
...
quoted text
> +/** > + * irq_alloc_descs - allocate and initialize a range of irq descriptors > + * @irq: Allocate for specific irq number if irq > 0 > + * @from: Start the search from this irq number > + * @cnt: Number of consecutive irqs to allocate. > + * @node: Preferred node on which the irq descriptor should be allocated > + * > + * Returns the first irq number or error code > + */ > +int __ref > +irq_alloc_descs(unsigned int irq, unsigned int from, unsigned int cnt, int node) > +{ > + unsigned long flags; > + int start, ret; > + > + if (!cnt) > + return -EINVAL; > + > + raw_spin_lock_irqsave(&sparse_irq_lock, flags); > +
or add if (irq) from = irq; here.
quoted text
> + start = bitmap_find_next_zero_area(allocated_irqs, nr_irqs, from, cnt, 0); > + ret = -EEXIST; > + if (irq && start != irq) > + goto err; > + > + ret = -ENOMEM; > + if (start >= nr_irqs) > + goto err; > + > + bitmap_set(allocated_irqs, start, cnt); > + raw_spin_unlock_irqrestore(&sparse_irq_lock, flags); > + return alloc_descs(start, cnt, node); > + > +err: > + raw_spin_unlock_irqrestore(&sparse_irq_lock, flags); > + return ret; > +}
Yinghai --
unsubscribe notice
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Previous message: [
thread
] [
date
] [
author
]
Next message: [
thread
] [
date
] [
author
]
Messages in current thread:
[patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Thu Sep 30, 4:14 pm)
[patch 01/47] x86: Plug memory leak in sparse irq
, Thomas Gleixner
, (Thu Sep 30, 4:14 pm)
[patch 02/47] x86: Hpet: Fix bogus error check in hpet_ass ...
, Thomas Gleixner
, (Thu Sep 30, 4:14 pm)
[patch 03/47] genirq: Provide status modifier
, Thomas Gleixner
, (Thu Sep 30, 4:14 pm)
[patch 04/47] arm: Use irq status modifier
, Thomas Gleixner
, (Thu Sep 30, 4:14 pm)
[patch 05/47] genirq-sanitize-irq-data-accessors.patch
, Thomas Gleixner
, (Thu Sep 30, 4:14 pm)
[patch 06/47] genirq: Distangle kernel/irq/handle.c
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 07/47] genirq: Remove early_init_irq_lock_class()
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 08/47] genirq: Move core only inlines to kernel/irq
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 09/47] isdn: hisax: Replace the bogus access to irq ...
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 10/47] genirq: Remove export of kstat_irqs_cpu
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 11/47] genirq: Provide default irq init flags
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 12/47] arm: Use ARCH_IRQ_INIT_FLAGS
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 13/47] powerpc: Use ARCH_IRQ_INIT_FLAGS
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 14/47] genirq: Implement a sane sparse_irq allocator
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 15/47] genirq: Prepare proc for real sparse irq support
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 16/47] genirq: Implement sane enumeration
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 17/47] genirq-update-kerneldoc.patch
, Thomas Gleixner
, (Thu Sep 30, 4:15 pm)
[patch 18/47] genirq: Use sane sparse allocator
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 19/47] genirq: Query arch for number of early descr ...
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 20/47] x86: Remove useless reinitialization of irq ...
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 21/47] x86: Sanitize apb timer interrupt handling
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 22/47] x86: lguest: Convert to new irq chip functions
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 23/47] x86: Cleanup visws interrupt handling
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 24/47] x86: i8259: Convert to new irq_chip functions
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 25/47] x86: Cleanup io_apic
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 26/47] x86: io_apic: Convert startup to new irq_chi ...
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 27/47] x86: ioapic: Convert mask to new irq_chip fu ...
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 28/47] x86: ioapic/hpet: Convert to new chip functions
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 29/47] pci: Convert msi to new irq_chip functions
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 30/47] dmar: Convert to new irq chip functions
, Thomas Gleixner
, (Thu Sep 30, 4:16 pm)
[patch 31/47] ht: Convert to new irq_chip functions
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 32/47] x86: ioapic: Clean up the direct access to i ...
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 33/47] pci: Cleanup the irq_desc mess in msi
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 34/47] x86: ioapic: Convert irq affinity to new chi ...
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 35/47] x86: ioapic: Cleanup some more
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 36/47] x86: ioapic: Cleanup sparse irq code
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 37/47] x86: uv: Clean up the direct access to irq_desc
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 38/47] x86: Use sane enumeration
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 39/47] genirq: Remove arch_init_chip_data()
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 40/47] genirq: Sanitize dynamic irq handling
, Thomas Gleixner
, (Thu Sep 30, 4:17 pm)
[patch 41/47] arm: davinci: Cleanup irq_desc access
, Thomas Gleixner
, (Thu Sep 30, 4:18 pm)
[patch 42/47] genirq: Remove the now unused sparse irq lef ...
, Thomas Gleixner
, (Thu Sep 30, 4:18 pm)
[patch 43/47] x86: xen: Sanitise sparse_irq handling
, Thomas Gleixner
, (Thu Sep 30, 4:18 pm)
[patch 44/47] sh: Sanitize sparse irq
, Thomas Gleixner
, (Thu Sep 30, 4:18 pm)
[patch 45/47] x86: lguest: Use new irq allocator
, Thomas Gleixner
, (Thu Sep 30, 4:18 pm)
[patch 46/47] powerpc: Use new irq allocator
, Thomas Gleixner
, (Thu Sep 30, 4:18 pm)
[patch 47/47] genirq: Remove the old sparse irq allocator ...
, Thomas Gleixner
, (Thu Sep 30, 4:18 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Benjamin Herrenschmidt
, (Thu Sep 30, 5:42 pm)
Re: [patch 00/47] Sparse irq rework
, Linus Torvalds
, (Thu Sep 30, 8:32 pm)
Re: [patch 14/47] genirq: Implement a sane sparse_irq allo ...
, Yinghai Lu
, (Thu Sep 30, 10:28 pm)
Re: [patch 40/47] genirq: Sanitize dynamic irq handling
, Yinghai Lu
, (Thu Sep 30, 10:47 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Thu Sep 30, 10:54 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Thomas Gleixner
, (Fri Oct 1, 6:07 am)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Fri Oct 1, 1:35 pm)
Re: [patch 14/47] genirq: Implement a sane sparse_irq allo ...
, Thomas Gleixner
, (Fri Oct 1, 1:36 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Benjamin Herrenschmidt
, (Fri Oct 1, 1:46 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Grant Likely
, (Fri Oct 1, 2:11 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Benjamin Herrenschmidt
, (Fri Oct 1, 2:17 pm)
Re: [patch 16/47] genirq: Implement sane enumeration
, Grant Likely
, (Sun Oct 3, 3:55 am)
Re: [patch 00/47] Sparse irq rework
, Grant Likely
, (Sun Oct 3, 4:23 am)
Re: [patch 00/47] Sparse irq rework
, Russell King - ARM Linux
, (Sun Oct 3, 4:29 am)
Re: [patch 00/47] Sparse irq rework
, Grant Likely
, (Sun Oct 3, 4:57 am)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Sun Oct 3, 6:48 am)
Re: [patch 20/47] x86: Remove useless reinitialization of ...
, Eric W. Biederman
, (Sun Oct 3, 8:21 am)
Re: [patch 00/47] Sparse irq rework
, Eric W. Biederman
, (Sun Oct 3, 9:41 am)
Re: [patch 46/47] powerpc: Use new irq allocator
, Eric W. Biederman
, (Sun Oct 3, 9:53 am)
Re: [patch 20/47] x86: Remove useless reinitialization of ...
, Thomas Gleixner
, (Sun Oct 3, 11:26 am)
Re: [patch 46/47] powerpc: Use new irq allocator
, Thomas Gleixner
, (Sun Oct 3, 11:34 am)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Sun Oct 3, 12:16 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Thomas Gleixner
, (Sun Oct 3, 1:04 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Benjamin Herrenschmidt
, (Sun Oct 3, 3:54 pm)
Re: [patch 00/47] Sparse irq rework
, Benjamin Herrenschmidt
, (Sun Oct 3, 3:57 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Eric W. Biederman
, (Sun Oct 3, 5:15 pm)
Re: [patch 46/47] powerpc: Use new irq allocator
, Benjamin Herrenschmidt
, (Sun Oct 3, 5:37 pm)
Re: [patch 00/47] Sparse irq rework
, Eric W. Biederman
, (Sun Oct 3, 5:49 pm)
Re: [patch 00/47] Sparse irq rework
, Eric W. Biederman
, (Sun Oct 3, 6:13 pm)
Re: [patch 00/47] Sparse irq rework
, Ingo Molnar
, (Sun Oct 3, 11:36 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Mon Oct 4, 1:05 am)
Re: [patch 00/47] Sparse irq rework
, Grant Likely
, (Mon Oct 4, 9:31 am)
Re: [patch 46/47] powerpc: Use new irq allocator
, Grant Likely
, (Mon Oct 4, 9:46 am)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Tue Oct 5, 3:22 am)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Wed Oct 6, 3:45 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Wed Oct 6, 3:52 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Wed Oct 6, 4:37 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Wed Oct 6, 5:16 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Wed Oct 6, 9:01 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Wed Oct 6, 9:38 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Fri Oct 8, 2:50 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Fri Oct 8, 2:54 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Fri Oct 8, 9:26 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Fri Oct 8, 10:44 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Fri Oct 8, 11:10 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Fri Oct 8, 11:34 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Sat Oct 9, 12:03 am)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Sat Oct 9, 12:08 am)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Sat Oct 9, 5:08 am)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Sat Oct 9, 5:12 am)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Sat Oct 9, 7:32 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Sat Oct 9, 10:11 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Sun Oct 10, 1:20 am)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Sun Oct 10, 2:32 am)
Re: [patch 00/47] Sparse irq rework
, Anca Emanuel
, (Sun Oct 10, 6:30 am)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Sun Oct 10, 7:20 pm)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Sun Oct 10, 8:50 pm)
Re: [patch 00/47] Sparse irq rework
, Thomas Gleixner
, (Mon Oct 11, 1:16 am)
Re: [patch 00/47] Sparse irq rework
, Benjamin Herrenschmidt
, (Mon Oct 11, 4:34 am)
Re: [patch 00/47] Sparse irq rework
, Yinghai Lu
, (Mon Oct 11, 9:19 am)
Re: [patch 33/47] pci: Cleanup the irq_desc mess in msi
, Jesse Barnes
, (Mon Oct 11, 10:08 am)
Re: [patch 29/47] pci: Convert msi to new irq_chip functions
, Jesse Barnes
, (Mon Oct 11, 10:09 am)
[tip:irq/core] x86: Don't setup ioapic irq for sci twice
, tip-bot for Yinghai Lu
, (Tue Oct 12, 1:23 pm)
Navigation
Mailing list archives
Recent posts
Popular discussions
linux-kernel
:
Ken Chen
[patch] sched: fix inconsistency when redistribute per-cpu tg->cfs_rq shares.
Hugh Dickins
Re: Linux 2.6.26-rc1 - pgtable_32.c:178 pmd_bad
Bernhard Beck
[PATCH 001/001] usb-serial: Add ThinkOptics WavIT
Oleg Nesterov
Re: [PATCH 4/5] don't panic if /sbin/init exits or killed
Greg KH
[patch 07/21] rtc-pcf8563: detect polarity of century bit automatically
git
:
Jonathan del Strother
Re: [PATCH] Fixing path quoting issues
Gerrit Pape
[PATCH] fix skipping merge-order test with NO_OPENSSL=1.
Linus Torvalds
Re: Implementing branch attributes in git config
Johannes Schindelin
Re: Trying to use git-filter-branch to compress history by removing large, obsolet...
Gerrit Pape
[PATCH] hooks--update: fix test for properly set up project description file
linux-netdev
:
David Miller
Re: [PATCH 04/15] tg3: Preserve LAA when device control is released
Jean-Louis Dupond
Re: tg3 driver not advertising 1000mbit
Sven Wegener
[PATCH] ipvs: Add missing locking during connection table hashing and unhashing
David Miller
Re: [PATCH] qlcnic: dont assume NET_IP_ALIGN is 2
Stephen Hemminger
[PATCH 2/2] sky2: fix transmit state on resume
git-commits-head
:
Linux Kernel Mailing List
[SCSI] scsi ioctl: fix kernel-doc warning
Linux Kernel Mailing List
ALSA: HDA - Correct trivial typos in comments.
Linux Kernel Mailing List
i2c-viapro: Add support for SMBus Process Call transactions
Linux Kernel Mailing List
i2c: Documentation: upgrading clients HOWTO
Linux Kernel Mailing List
[PATCH] fix sysctl_nr_open bugs
openbsd-misc
:
Die Gestalt
Re: How to re-build openssl with SHA1 support?
Edwin Eyan Moragas
Re: managing routes for multiple PPPoE connections
Brian Candler
Re: OBSD's perspective on SELinux
Jonathan Schleifer
Why is getaddrinfo breaking POSIX?
Predrag Punosevac
Re: Kernel developers guide/tutorial
Colocation donated by:
Syndicate