[Skiboot] [RFC v2 PATCH 0/6] Faster fast reboot (2x!)

Stewart Smith stewart at linux.ibm.com
Thu Jun 28 12:54:55 AEST 2018


Currently, on a 128GB p9dsu system (with all that memory on node0), it
takes around 13 seconds in skiboot to do a fast reboot.

By doing the clear in parallel, we get this down to ~11seconds.
By then doing it in parallel with PCI scanning, we're down to ~9
seconds.
By then caching BOOTKERNEL rather than re-reading it, we're down to
~5seconds.

With this patchset, we're down to the following big consumers of time:
- 2.5s decompressing initramfs in BOOTKERNEL
- the amazing amount of time it takes for a linux OS to get to the point
  of issuing 'reboot' to firmware.

Nicholas Piggin (1):
  Add cpu_queue_job_on_node() to do node local jobs

Stewart Smith (5):
  fast-reboot: parallel memory clearing
  Scan PCI and clear memory simultaneously
  mem_region: log region name on mem_alloc failure
  mem_check(): Correct alignment assumptions
  core/flash.c: cache loaded resources

 core/cpu.c                                    |  77 ++++++++---
 core/device.c                                 |   2 +-
 core/fast-reboot.c                            |  12 +-
 core/flash.c                                  |  49 ++++++-
 core/init.c                                   |  24 ++--
 core/mem_region.c                             | 121 +++++++++++++++++-
 core/test/dummy-cpu.h                         |  40 ++++++
 core/test/run-malloc-speed.c                  |   7 +-
 core/test/run-malloc.c                        |   7 +-
 core/test/run-mem_range_is_reserved.c         |   8 +-
 core/test/run-mem_region.c                    |  10 +-
 core/test/run-mem_region_init.c               |   8 +-
 core/test/run-mem_region_next.c               |   8 +-
 core/test/run-mem_region_release_unused.c     |   8 +-
 .../run-mem_region_release_unused_noalloc.c   |   8 +-
 core/test/run-mem_region_reservations.c       |   8 +-
 core/test/stubs.c                             |  44 +++++++
 hdata/test/hdata_to_dt.c                      |   9 ++
 hdata/test/stubs.c                            |  47 +++++++
 include/cpu.h                                 |   4 +
 include/device.h                              |   5 +-
 include/mem_region.h                          |   3 +-
 include/skiboot.h                             |   4 +-
 23 files changed, 413 insertions(+), 100 deletions(-)
 create mode 100644 core/test/dummy-cpu.h

-- 
2.17.1



More information about the Skiboot mailing list