1. 12 10月, 2008 5 次提交
    • A
      raid: make RAID autodetect default a KConfig option · a364092a
      Arjan van de Ven 提交于
      RAID autodetect has the side effect of requiring synchronisation
      of all device drivers, which can make the boot several seconds longer
      (I've measured 7 on one of my laptops).... even for systems that don't
      have RAID setup for the root filesystem (the only FS where this matters).
      
      This patch makes the default for autodetect a config option; either way
      the user can always override via the kernel command line.
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Acked-by: NNeilBrown <neilb@suse.de>
      a364092a
    • I
      warning: fix init do_mounts_md c · 82cbc11a
      Ingo Molnar 提交于
      fix warning:
      
        init/do_mounts_md.c: In function ‘md_run_setup’:
        init/do_mounts_md.c:282: warning: ISO C90 forbids mixed declarations and code
      
      also, use the opportunity to put the RAID autodetection code
      into a separate function - this also solves a checkpatch style warning.
      
      No code changed:
      
      md5:
         aa36a35faef371b05f1974ad583bdbbd  do_mounts_md.o.before.asm
         aa36a35faef371b05f1974ad583bdbbd  do_mounts_md.o.after.asm
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      82cbc11a
    • A
      fastboot: make the RAID autostart code print a message just before waiting · 02c15def
      Arjan van de Ven 提交于
      As requested/suggested by Neil Brown: make the raid code print that it's
      about to wait for probing to be done as well as give a suggestion on how
      to disable the probing if the user doesn't use raid.
      
      Signed-off-by: Arjan van de Ven <arjan@linux.intel.com
      02c15def
    • A
      fastboot: make the raid autodetect code wait for all devices to init · 589f800b
      Arjan van de Ven 提交于
      The raid autodetect code really needs to have all devices probed before
      it can detect raid arrays; not doing so would give rather messy situations
      where arrays would get detected as degraded while they shouldn't be etc.
      
      This is in preparation of removing the "wait for everything to init"
      code that makes everyone pay, not just raid users.
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      589f800b
    • A
      Add a script to visualize the kernel boot process / time · f9b9796a
      Arjan van de Ven 提交于
      When optimizing the kernel boot time, it's very valuable to visualize
      what is going on at which time. In addition, with some of the initializing
      going asynchronous soon, it's valuable to track/print which worker thread
      is executing the initialization.
      
      This patch adds a script to turn a dmesg into a SVG graph (that can be
      shown with tools such as InkScape, Gimp or Firefox) and a small change
      to the initcall code to print the PID of the thread calling the initcall
      (so that the script can work out the parallelism).
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      f9b9796a
  2. 10 10月, 2008 1 次提交
  3. 09 10月, 2008 1 次提交
  4. 04 10月, 2008 1 次提交
  5. 17 8月, 2008 1 次提交
  6. 12 8月, 2008 1 次提交
    • A
      modules: extend initcall_debug functionality to the module loader · 59f9415f
      Arjan van de Ven 提交于
      The kernel has this really nice facility where if you put "initcall_debug"
      on the kernel commandline, it'll print which function it's going to
      execute just before calling an initcall, and then after the call completes
      it will
      
      1) print if it had an error code
      
      2) checks for a few simple bugs (like leaving irqs off)
      and
      
      3) print how long the init call took in milliseconds.
      
      While trying to optimize the boot speed of my laptop, I have been loving
      number 3 to figure out what to optimize...  ...  and then I wished that
      the same thing was done for module loading.
      
      This patch makes the module loader use this exact same functionality; it's
      a logical extension in my view (since modules are just sort of late
      binding initcalls anyway) and so far I've found it quite useful in finding
      where things are too slow in my boot.
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      59f9415f
  7. 07 8月, 2008 1 次提交
  8. 06 8月, 2008 1 次提交
  9. 01 8月, 2008 1 次提交
  10. 31 7月, 2008 1 次提交
  11. 28 7月, 2008 1 次提交
    • J
      x86: remove stray <6> in BogoMIPS printk · d7ba11d0
      Joe Perches 提交于
      Rabin Vincent noticed that there's a stray <6> in BogoMIPS printk:
      
      > Remove the extra KERN_INFO which causes this:
      > Calibrating delay loop... <6>179.40 BogoMIPS (lpj=897024)
      > -	printk(KERN_INFO "%lu.%02lu BogoMIPS (lpj=%lu)\n",
      > -			loops_per_jiffy/(500000/HZ),
      > -			(loops_per_jiffy/(5000/HZ)) % 100, loops_per_jiffy);
      > +	printk("%lu.%02lu BogoMIPS (lpj=%lu)\n",
      > +		loops_per_jiffy/(500000/HZ),
      > +		(loops_per_jiffy/(5000/HZ)) % 100, loops_per_jiffy);
      >  }
      
      How about just using KERN_CONT and leaving the whitespace
      for a patch that does the entire file?
      Reported-by: NRabin Vincent <rabin@rab.in>
      d7ba11d0
  12. 27 7月, 2008 3 次提交
  13. 26 7月, 2008 8 次提交
  14. 22 7月, 2008 2 次提交
  15. 21 7月, 2008 1 次提交
    • G
      initrd: Fix virtual/physical mix-up in overwrite test · fb6624eb
      Geert Uytterhoeven 提交于
      On recent kernels, I get the following error when using an initrd:
      
      | initrd overwritten (0x00b78000 < 0x07668000) - disabling it.
      
      My Amiga 4000 has 12 MiB of RAM at physical address 0x07400000 (virtual
      0x00000000).
      The initrd is located at the end of RAM: 0x00b78000 - 0x00c00000 (virtual).
      The overwrite test compares the (virtual) initrd location to the (physical)
      first available memory location, which fails.
      
      This patch converts initrd_start to a page frame number, so it can safely be
      compared with min_low_pfn.
      
      Before the introduction of discontiguous memory support on m68k
      (12d810c1), min_low_pfn was just left
      untouched by the m68k-specific code (zero, I guess), and everything worked
      fine.
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      fb6624eb
  16. 18 7月, 2008 1 次提交
    • M
      cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2) · e761b772
      Max Krasnyansky 提交于
      This is based on Linus' idea of creating cpu_active_map that prevents
      scheduler load balancer from migrating tasks to the cpu that is going
      down.
      
      It allows us to simplify domain management code and avoid unecessary
      domain rebuilds during cpu hotplug event handling.
      
      Please ignore the cpusets part for now. It needs some more work in order
      to avoid crazy lock nesting. Although I did simplfy and unify domain
      reinitialization logic. We now simply call partition_sched_domains() in
      all the cases. This means that we're using exact same code paths as in
      cpusets case and hence the test below cover cpusets too.
      Cpuset changes to make rebuild_sched_domains() callable from various
      contexts are in the separate patch (right next after this one).
      
      This not only boots but also easily handles
      	while true; do make clean; make -j 8; done
      and
      	while true; do on-off-cpu 1; done
      at the same time.
      (on-off-cpu 1 simple does echo 0/1 > /sys/.../cpu1/online thing).
      
      Suprisingly the box (dual-core Core2) is quite usable. In fact I'm typing
      this on right now in gnome-terminal and things are moving just fine.
      
      Also this is running with most of the debug features enabled (lockdep,
      mutex, etc) no BUG_ONs or lockdep complaints so far.
      
      I believe I addressed all of the Dmitry's comments for original Linus'
      version. I changed both fair and rt balancer to mask out non-active cpus.
      And replaced cpu_is_offline() with !cpu_active() in the main scheduler
      code where it made sense (to me).
      Signed-off-by: NMax Krasnyanskiy <maxk@qualcomm.com>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: NGregory Haskins <ghaskins@novell.com>
      Cc: dmitry.adamushko@gmail.com
      Cc: pj@sgi.com
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      e761b772
  17. 15 7月, 2008 1 次提交
  18. 30 6月, 2008 1 次提交
  19. 26 6月, 2008 1 次提交
    • J
      Add generic helpers for arch IPI function calls · 3d442233
      Jens Axboe 提交于
      This adds kernel/smp.c which contains helpers for IPI function calls. In
      addition to supporting the existing smp_call_function() in a more efficient
      manner, it also adds a more scalable variant called smp_call_function_single()
      for calling a given function on a single CPU only.
      
      The core of this is based on the x86-64 patch from Nick Piggin, lots of
      changes since then. "Alan D. Brunelle" <Alan.Brunelle@hp.com> has
      contributed lots of fixes and suggestions as well. Also thanks to
      Paul E. McKenney <paulmck@linux.vnet.ibm.com> for reviewing RCU usage
      and getting rid of the data allocation fallback deadlock.
      Acked-by: NIngo Molnar <mingo@elte.hu>
      Reviewed-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NJens Axboe <jens.axboe@oracle.com>
      3d442233
  20. 24 6月, 2008 2 次提交
    • A
      x86: use cpu_khz for loops_per_jiffy calculation, cleanup · f3f3149f
      Alok Kataria 提交于
      As suggested by Ingo, remove all references to tsc from init/calibrate.c
      
      TSC is x86 specific, and using tsc in variable names in a generic file should
      be avoided. lpj_tsc is now called lpj_fine, since it is related to fine tuning
      of lpj value. Also tsc_rate_*  is called timer_rate_*
      Signed-off-by: NAlok N Kataria <akataria@vmware.com>
      Cc: Arjan van de Ven <arjan@infradead.org>
      Cc: Daniel Hecht <dhecht@vmware.com>
      Cc: Tim Mann <mann@vmware.com>
      Cc: Zach Amsden <zach@vmware.com>
      Cc: Sahil Rihan <srihan@vmware.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f3f3149f
    • A
      x86: use cpu_khz for loops_per_jiffy calculation · 3da757da
      Alok Kataria 提交于
      On the x86 platform we can use the value of tsc_khz computed during tsc
      calibration to calculate the loops_per_jiffy value. Its very important
      to keep the error in lpj values to minimum as any error in that may
      result in kernel panic in check_timer. In virtualization environment, On
      a highly overloaded host the guest delay calibration may sometimes
      result in errors beyond the ~50% that timer_irq_works can handle,
      resulting in the guest panicking.
      
      Does some formating changes to lpj_setup code to now have a single
      printk to print the bogomips value.
      
      We do this only for the boot processor because the AP's can have
      different base frequencies or the BIOS might boot a AP at a different
      frequency.
      Signed-off-by: NAlok N Kataria <akataria@vmware.com>
      Cc: Arjan van de Ven <arjan@infradead.org>
      Cc: Daniel Hecht <dhecht@vmware.com>
      Cc: Tim Mann <mann@vmware.com>
      Cc: Zach Amsden <zach@vmware.com>
      Cc: Sahil Rihan <srihan@vmware.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      3da757da
  21. 26 5月, 2008 1 次提交
    • S
      Kconfig: introduce ARCH_DEFCONFIG to DEFCONFIG_LIST · 73531905
      Sam Ravnborg 提交于
      init/Kconfig contains a list of configs that are searched
      for if 'make *config' are used with no .config present.
      Extend this list to look at the config identified by
      ARCH_DEFCONFIG.
      
      With this change we now try the defconfig targets last.
      
      This fixes a regression reported
      by: Linus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: NSam Ravnborg <sam@ravnborg.org>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      73531905
  22. 25 5月, 2008 1 次提交
  23. 19 5月, 2008 1 次提交
    • P
      rcu: add call_rcu_sched() · 4446a36f
      Paul E. McKenney 提交于
      Fourth cut of patch to provide the call_rcu_sched().  This is again to
      synchronize_sched() as call_rcu() is to synchronize_rcu().
      
      Should be fine for experimental and -rt use, but not ready for inclusion.
      With some luck, I will be able to tell Andrew to come out of hiding on
      the next round.
      
      Passes multi-day rcutorture sessions with concurrent CPU hotplugging.
      
      Fixes since the first version include a bug that could result in
      indefinite blocking (spotted by Gautham Shenoy), better resiliency
      against CPU-hotplug operations, and other minor fixes.
      
      Fixes since the second version include reworking grace-period detection
      to avoid deadlocks that could happen when running concurrently with
      CPU hotplug, adding Mathieu's fix to avoid the softlockup messages,
      as well as Mathieu's fix to allow use earlier in boot.
      
      Fixes since the third version include a wrong-CPU bug spotted by
      Andrew, getting rid of the obsolete synchronize_kernel API that somehow
      snuck back in, merging spin_unlock() and local_irq_restore() in a
      few places, commenting the code that checks for quiescent states based
      on interrupting from user-mode execution or the idle loop, removing
      some inline attributes, and some code-style changes.
      
      Known/suspected shortcomings:
      
      o	I still do not entirely trust the sleep/wakeup logic.  Next step
      	will be to use a private snapshot of the CPU online mask in
      	rcu_sched_grace_period() -- if the CPU wasn't there at the start
      	of the grace period, we don't need to hear from it.  And the
      	bit about accounting for changes in online CPUs inside of
      	rcu_sched_grace_period() is ugly anyway.
      
      o	It might be good for rcu_sched_grace_period() to invoke
      	resched_cpu() when a given CPU wasn't responding quickly,
      	but resched_cpu() is declared static...
      
      This patch also fixes a long-standing bug in the earlier preemptable-RCU
      implementation of synchronize_rcu() that could result in loss of
      concurrent external changes to a task's CPU affinity mask.  I still cannot
      remember who reported this...
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      4446a36f
  24. 16 5月, 2008 2 次提交