lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 15 Nov 2012 10:04:05 +0000
From:	Lee Jones <lee.jones@...aro.org>
To:	linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Cc:	arnd@...db.de, linus.walleij@...ricsson.com,
	jonas.aberg@...ricsson.com, linux@....linux.org.uk,
	will.deacon@....com
Subject: [PATCH 0/2] Boottime: measure bootloader and kernel bootup time

This patchset supplies a new tool which measures boottime inclusive
of bootloader involvement. It seems to be accurate and adds no
latency to the booting of the system.

In the first round of testing we booted the kernel 3 times each with
boottime enabled and disabled. Actually, when it was disabled, the
code was completely removed from the kernel source and the kernel was
rebuilt. The difference between present & enabled and completely
removed was very little indeed. In fact, averaging out the 3 runs of
each, when boottime was enabled the system booted 4ms _faster_, go
figure!

             Enabled    Disabled
  1st run    2.983093   2.985168
  2nd run    2.973266   2.971801
  3rd run    2.975402   2.987304
  Average    2.977254   2.981424   -0.004171 (-4ms)


For the next round of testing, we delayed the bootloader for varying
amounts of time, then started to remove key components from kernel
functionality to see if the boottime system would pick-up on them.

  /* Hang around in the bootloader for a while. */
  $ cat /sys/kernel/debug/boottime/summary 
    kernel: 42864 msecs
    total: 42864 msecs
    kernel: cpu0 system: 56% idle: 43% iowait: 0% irq: 0% 
            cpu1 system: 4% idle: 95% iowait: 0% irq: 0%

  /* Hang around in the bootloader for a smaller amount of time. */
    kernel: 12351 msecs
    total: 12351 msecs
    kernel: cpu0 system: 56% idle: 43% iowait: 0% irq: 0% 
            cpu1 system: 2% idle: 97% iowait: 0% irq: 0%
  
  /* Instant boot. (1st run) */
    kernel: 7833 msecs
    total: 7833 msecs
    kernel: cpu0 system: 55% idle: 44% iowait: 0% irq: 0% 
            cpu1 system: 3% idle: 96% iowait: 0% irq: 0%

  /* Instant boot. (2nd run) */
    kernel: 7817 msecs
    total: 7817 msecs
    kernel: cpu0 system: 53% idle: 46% iowait: 0% irq: 0% 
            cpu1 system: 8% idle: 91% iowait: 0% irq: 0%

  /* Instant boot. (3rd run) */
    kernel: 7747 msecs
    total: 7747 msecs
    kernel: cpu0 system: 56% idle: 42% iowait: 0% irq: 0% 
            cpu1 system: 2% idle: 97% iowait: 0% irq: 0%

  /* Instant boot. (4th run)
          -CONFIG_INPUT_TOUCHSCREEN=y
          +# CONFIG_INPUT_TOUCHSCREEN is not set
  */
    kernel: 7046 msecs
    total: 7046 msecs
    kernel: cpu0 system: 72% idle: 27% iowait: 0% irq: 0% 
            cpu1 system: 5% idle: 94% iowait: 0% irq: 0%

  /* Instant boot. (5th run)
          -CONFIG_MMC=y
          +# CONFIG_MMC is not set
  */
    kernel: 6778 msecs
    total: 6778 msecs
    kernel: cpu0 system: 81% idle: 18% iowait: 0% irq: 0% 
            cpu1 system: 1% idle: 98% iowait: 0% irq: 0%

 arch/arm/common/Makefile                  |    1 +
 arch/arm/common/boottime.c                |   46 +++
 arch/arm/include/uapi/asm/setup.h         |   22 ++
 drivers/clocksource/clksrc-dbx500-prcmu.c |   20 ++
 include/linux/boottime.h                  |   89 ++++++
 init/Kconfig                              |    9 +
 init/Makefile                             |    1 +
 init/boottime.c                           |  475 +++++++++++++++++++++++++++++
 init/main.c                               |    6 +
 9 files changed, 669 insertions(+)


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ