1. 15 2月, 2012 1 次提交
  2. 29 3月, 2011 1 次提交
  3. 19 2月, 2011 6 次提交
  4. 04 10月, 2010 4 次提交
  5. 15 12月, 2009 1 次提交
  6. 08 1月, 2009 1 次提交
    • A
      async: Asynchronous function calls to speed up kernel boot · 22a9d645
      Arjan van de Ven 提交于
      Right now, most of the kernel boot is strictly synchronous, such that
      various hardware delays are done sequentially.
      
      In order to make the kernel boot faster, this patch introduces
      infrastructure to allow doing some of the initialization steps
      asynchronously, which will hide significant portions of the hardware delays
      in practice.
      
      In order to not change device order and other similar observables, this
      patch does NOT do full parallel initialization.
      
      Rather, it operates more in the way an out of order CPU does; the work may
      be done out of order and asynchronous, but the observable effects
      (instruction retiring for the CPU) are still done in the original sequence.
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      22a9d645
  7. 26 12月, 2008 1 次提交
  8. 08 12月, 2008 1 次提交
    • Y
      sparse irq_desc[] array: core kernel and x86 changes · 0b8f1efa
      Yinghai Lu 提交于
      Impact: new feature
      
      Problem on distro kernels: irq_desc[NR_IRQS] takes megabytes of RAM with
      NR_CPUS set to large values. The goal is to be able to scale up to much
      larger NR_IRQS value without impacting the (important) common case.
      
      To solve this, we generalize irq_desc[NR_IRQS] to an (optional) array of
      irq_desc pointers.
      
      When CONFIG_SPARSE_IRQ=y is used, we use kzalloc_node to get irq_desc,
      this also makes the IRQ descriptors NUMA-local (to the site that calls
      request_irq()).
      
      This gets rid of the irq_cfg[] static array on x86 as well: irq_cfg now
      uses desc->chip_data for x86 to store irq_cfg.
      Signed-off-by: NYinghai Lu <yinghai@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      0b8f1efa
  9. 16 10月, 2008 5 次提交
    • T
      genirq: fix name space collision of nr_irqs in autoprobe.c · 63d659d5
      Thomas Gleixner 提交于
      probe_irq_off() is disfunctional as the local nr_irqs is referenced
      instead of the global one for the for_each_irq_desc() iterator.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      63d659d5
    • T
      genirq: use iterators for irq_desc loops · 10e58084
      Thomas Gleixner 提交于
      Use for_each_irq_desc[_reverse] for all the iteration loops.
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      10e58084
    • I
      irq: sparse irqs, fix IRQ auto-probe crash · 3bf52a4d
      Ingo Molnar 提交于
      fix:
      
      [   10.631533] calling  yenta_socket_init+0x0/0x20
      [   10.631533] Yenta: CardBus bridge found at 0000:15:00.0 [17aa:2012]
      [   10.631533] Yenta: Using INTVAL to route CSC interrupts to PCI
      [   10.631533] Yenta: Routing CardBus interrupts to PCI
      [   10.631533] Yenta TI: socket 0000:15:00.0, mfunc 0x01d01002, devctl 0x64
      [   10.731599] BUG: unable to handle kernel NULL pointer dereference at 00000040
      [   10.731838] IP: [<c0c95b5f>] _spin_lock_irq+0xf/0x20
      [   10.732221] *pde = 00000000
      [   10.732741] Oops: 0002 [#1] SMP
      [   10.733453]
      [   10.734253] Pid: 1, comm: swapper Tainted: G        W (2.6.27-rc3-tip-00173-gd7eaa4f-dirty #1)
      [   10.735188] EIP: 0060:[<c0c95b5f>] EFLAGS: 00010002 CPU: 0
      [   10.735523] EIP is at _spin_lock_irq+0xf/0x20
      [   10.735523] EAX: 00000040 EBX: 00000000 ECX: f6e04c90 EDX: 00000100
      [   10.735523] ESI: 000000df EDI: f6e04c90 EBP: f7867df0 ESP: f7867df0
      [   10.735523]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
      [   10.735523] Process swapper (pid: 1, ti=f7867000 task=f7870000 task.ti=f7867000)
      [   10.735523] Stack: f7867e04 c0155fbd 00000000 00000000 f6e04c90 f7867e5c c0c6e319 c0f6a074
      [   10.735523]        f6e04c90 000017aa 00002012 c112b648 f791f240 c112b5e0 f7867e44 c010440b
      [   10.735523]        f791f240 f791f29c c112b8ec f791f240 00000000 f7867e5c c048f893 03c0b648
      [   10.735523] Call Trace:
      [   10.735523]  [<c0155fbd>] ? probe_irq_on+0x3d/0x140
      [   10.735523]  [<c0c6e319>] ? yenta_probe+0x529/0x640
      [   10.735523]  [<c010440b>] ? mcount_call+0x5/0xa
      [   10.735523]  [<c048f893>] ? pci_match_device+0xa3/0xb0
      [   10.735523]  [<c048fc1e>] ? pci_device_probe+0x5e/0x80
      [   10.735523]  [<c0515423>] ? driver_probe_device+0x83/0x180
      [   10.735523]  [<c0515594>] ? __driver_attach+0x74/0x80
      [   10.735523]  [<c0514b69>] ? bus_for_each_dev+0x49/0x70
      [   10.735523]  [<c051528e>] ? driver_attach+0x1e/0x20
      [   10.735523]  [<c0515520>] ? __driver_attach+0x0/0x80
      [   10.735523]  [<c05150d3>] ? bus_add_driver+0x1a3/0x220
      [   10.735523]  [<c048fb60>] ? pci_device_remove+0x0/0x40
      [   10.735523]  [<c05157f4>] ? driver_register+0x54/0x130
      [   10.735523]  [<c048fe2f>] ? __pci_register_driver+0x4f/0x90
      [   10.735523]  [<c11e9419>] ? yenta_socket_init+0x19/0x20
      [   10.735523]  [<c0101125>] ? do_one_initcall+0x35/0x160
      [   10.735523]  [<c11e9400>] ? yenta_socket_init+0x0/0x20
      [   10.735523]  [<c01391a6>] ? __queue_work+0x36/0x50
      [   10.735523]  [<c013922d>] ? queue_work_on+0x3d/0x50
      [   10.735523]  [<c11a2758>] ? kernel_init+0x148/0x210
      [   10.735523]  [<c11a2610>] ? kernel_init+0x0/0x210
      [   10.735523]  [<c01043f3>] ? kernel_thread_helper+0x7/0x10
      [   10.735523]  =======================
      [   10.735523] Code: 10 38 f2 74 06 f3 90 8a 10 eb f6 5d 89 c8 c3 8d b6 00 00 00 00 8d bc 27 00 00 00 00 55 89 e5 e8 a4 e8 46 ff fa ba 00 01 00 00 90 <66> 0f c1 10 38 f2 74 06 f3 90 8a 10 eb f6 5d c3 90 55 89 e5 53
      
      as auto-probing wants to iterate over existing irqs.
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3bf52a4d
    • Y
      generic: sparse irqs: use irq_desc() together with dyn_array, instead of irq_desc[] · 08678b08
      Yinghai Lu 提交于
      add CONFIG_HAVE_SPARSE_IRQ to for use condensed array.
      Get rid of irq_desc[] array assumptions.
      
      Preallocate 32 irq_desc, and irq_desc() will try to get more.
      
      ( No change in functionality is expected anywhere, except the odd build
        failure where we missed a code site or where a crossing commit itroduces
        new irq_desc[] usage. )
      
      v2: according to Eric, change get_irq_desc() to irq_desc()
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      08678b08
    • Y
      irq: introduce nr_irqs · 85c0f909
      Yinghai Lu 提交于
      at this point nr_irqs is equal NR_IRQS
      
      convert a few easy users from NR_IRQS to dynamic nr_irqs.
      
      v2: according to Eric, we need to take care of arch without generic_hardirqs
      Signed-off-by: NYinghai Lu <yhlu.kernel@gmail.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      85c0f909
  10. 30 6月, 2006 7 次提交
  11. 29 6月, 2005 1 次提交
  12. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4