[Skiboot] [PATCH 5/5] fast-reset: free fdt on fast reset, count fast reboots
Stewart Smith
stewart at linux.vnet.ibm.com
Fri Oct 14 17:01:33 AEDT 2016
A bit of a hack to free the flattened device tree on fast reset.
This means we don't leak ~500kb memory every fast reset.
We also count the number of fast resets we've done (if enabled),
which means that for stress testing, we have a hope of finding out
how many we managed to do before we hit a problem.
Signed-off-by: Stewart Smith <stewart at linux.vnet.ibm.com>
---
core/fast-reboot.c | 6 +++++-
core/init.c | 3 ++-
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/core/fast-reboot.c b/core/fast-reboot.c
index cf8b3d481021..37744b8903f1 100644
--- a/core/fast-reboot.c
+++ b/core/fast-reboot.c
@@ -278,9 +278,12 @@ static bool fast_reset_p8(void)
return true;
}
+extern void *fdt;
+
void fast_reboot(void)
{
bool success;
+ static int fast_reboot_count = 0;
if (proc_gen != proc_gen_p8) {
prlog(PR_DEBUG,
@@ -293,7 +296,8 @@ void fast_reboot(void)
return;
}
- prlog(PR_INFO, "RESET: Initiating fast reboot...\n");
+ prlog(PR_NOTICE, "RESET: Initiating fast reboot %d...\n", ++fast_reboot_count);
+ free(fdt);
/* XXX We need a way to ensure that no other CPU is in skiboot
* holding locks (via the OPAL APIs) and if they are, we need
diff --git a/core/init.c b/core/init.c
index bc14da7e789f..790db147aa09 100644
--- a/core/init.c
+++ b/core/init.c
@@ -453,12 +453,13 @@ static void load_initramfs(void)
int64_t mem_dump_free(void);
+void *fdt;
+
void __noreturn load_and_boot_kernel(bool is_reboot)
{
const struct dt_property *memprop;
const char *cmdline;
uint64_t mem_top;
- void *fdt;
memprop = dt_find_property(dt_root, DT_PRIVATE "maxmem");
if (memprop)
--
2.1.4
More information about the Skiboot
mailing list