From: Manish Ahuja <ahuja@austin.ibm.com>
To: linuxppc-dev@ozlabs.org
Cc: mahuja@us.ibm.com, linasvepstas@gmail.com, lkessler@us.ibm.com,
strosake@us.ibm.com
Subject: [PATCH 8/8] pseries: phyp dump: Tracking memory range freed.
Date: Mon, 07 Jan 2008 18:39:52 -0600 [thread overview]
Message-ID: <4782C658.4050901@austin.ibm.com> (raw)
In-Reply-To: <4782B985.2090508@austin.ibm.com>
This patch tracks the size freed. For now it does a simple
rudimentary calculation of the ranges freed. The idea is
to keep it simple at the external shell script level and
send in large chunks for now.
Signed-off-by: Manish Ahuja <mahuja@us.ibm.com>
-----
---
arch/powerpc/platforms/pseries/phyp_dump.c | 36 +++++++++++++++++++++++++++++
include/asm-powerpc/phyp_dump.h | 3 ++
2 files changed, 39 insertions(+)
Index: 2.6.24-rc5/include/asm-powerpc/phyp_dump.h
===================================================================
--- 2.6.24-rc5.orig/include/asm-powerpc/phyp_dump.h 2008-01-07 22:55:28.000000000 -0600
+++ 2.6.24-rc5/include/asm-powerpc/phyp_dump.h 2008-01-07 22:58:02.000000000 -0600
@@ -24,6 +24,9 @@ struct phyp_dump {
/* Memory that is reserved during very early boot. */
unsigned long init_reserve_start;
unsigned long init_reserve_size;
+ /* Scratch area memory details */
+ unsigned long scratch_reserve_start;
+ unsigned long scratch_reserve_size;
};
extern struct phyp_dump *phyp_dump_info;
Index: 2.6.24-rc5/arch/powerpc/platforms/pseries/phyp_dump.c
===================================================================
--- 2.6.24-rc5.orig/arch/powerpc/platforms/pseries/phyp_dump.c 2008-01-07 22:57:27.000000000 -0600
+++ 2.6.24-rc5/arch/powerpc/platforms/pseries/phyp_dump.c 2008-01-07 22:58:02.000000000 -0600
@@ -287,6 +287,39 @@ release_memory_range(unsigned long start
}
}
+/**
+ * track_freed_range -- Counts the range being freed.
+ * Once the counter goes to zero, it re-registers dump for
+ * future use.
+ */
+static void
+track_freed_range(unsigned long addr, unsigned long length)
+{
+ static unsigned long scratch_area_size, reserved_area_size;
+
+ if (addr < phyp_dump_info->init_reserve_start)
+ return;
+
+ if ((addr >= phyp_dump_info->init_reserve_start) &&
+ (addr <= phyp_dump_info->init_reserve_start +
+ phyp_dump_info->init_reserve_size))
+ reserved_area_size += length;
+
+ if ((addr >= phyp_dump_info->scratch_reserve_start) &&
+ (addr <= phyp_dump_info->scratch_reserve_start +
+ phyp_dump_info->scratch_reserve_size))
+ scratch_area_size += length;
+
+ if ((reserved_area_size == phyp_dump_info->init_reserve_start) &&
+ (scratch_area_size == phyp_dump_info->scratch_reserve_size)) {
+
+ invalidate_last_dump(&phdr,
+ phyp_dump_info->scratch_reserve_start);
+ register_dump_area (&phdr,
+ phyp_dump_info->scratch_reserve_start);
+ }
+}
+
/* ------------------------------------------------- */
/**
* sysfs_release_region -- sysfs interface to release memory range.
@@ -310,6 +343,8 @@ store_release_region(struct kset *kset,
if (ret != 2)
return -EINVAL;
+ track_freed_range(start_addr, length);
+
/* Range-check - don't free any reserved memory that
* wasn't reserved for phyp-dump */
if (start_addr < phyp_dump_info->init_reserve_start)
@@ -414,6 +449,7 @@ static int __init phyp_dump_setup(void)
}
/* Don't allow user to release the 256MB scratch area */
+ /* this might be wrong */
phyp_dump_info->init_reserve_size = free_area_length;
/* Should we create a dump_subsys, analogous to s390/ipl.c ? */
next prev parent reply other threads:[~2008-01-08 0:39 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-07 23:45 [PATCH 0/8] pseries: phyp dump: hypervisor-assisted dump Manish Ahuja
2008-01-08 0:13 ` [PATCH 1/8] pseries: phyp dump: Docmentation Manish Ahuja
2008-01-09 4:29 ` Nathan Lynch
2008-01-09 4:58 ` Michael Ellerman
2008-01-09 15:31 ` Linas Vepstas
2008-01-09 18:44 ` Nathan Lynch
2008-01-09 19:28 ` Manish Ahuja
2008-01-09 22:59 ` Michael Ellerman
2008-01-09 23:18 ` Manish Ahuja
2008-01-10 2:47 ` Linas Vepstas
2008-01-10 3:55 ` Michael Ellerman
2008-01-10 2:33 ` Linas Vepstas
2008-01-10 3:17 ` Olof Johansson
2008-01-10 4:12 ` Linas Vepstas
2008-01-10 4:52 ` Michael Ellerman
2008-01-10 16:21 ` Olof Johansson
2008-01-10 16:34 ` Linas Vepstas
2008-01-10 21:46 ` Mike Strosaker
2008-01-11 1:26 ` Nathan Lynch
2008-01-11 16:57 ` Linas Vepstas
2008-01-14 5:24 ` Olof Johansson
2008-01-14 15:21 ` Linas Vepstas
2008-01-08 0:16 ` [PATCH 2/8] pseries: phyp dump: config file Manish Ahuja
2008-01-08 3:18 ` Stephen Rothwell
2008-01-08 0:21 ` [PATCH 4/8] pseries: phyp dump: use sysfs to release reserved mem Manish Ahuja
2008-01-08 3:45 ` Stephen Rothwell
2008-01-08 18:34 ` Linas Vepstas
2008-01-08 0:25 ` [PATCH 3/8] pseries: phyp dump: reserve-release proof-of-concept Manish Ahuja
2008-01-08 3:16 ` Stephen Rothwell
2008-01-16 4:21 ` Paul Mackerras
2008-01-08 0:28 ` [PATCH 5/8] pseries: phyp dump: register dump area Manish Ahuja
2008-01-08 3:59 ` Stephen Rothwell
2008-01-08 0:35 ` [PATCH 6/8] pseries: phyp dump: debugging print routines Manish Ahuja
2008-01-08 0:49 ` Arnd Bergmann
2008-01-08 4:03 ` Stephen Rothwell
2008-01-08 0:37 ` [PATCH 7/8] pseries: phyp dump: Unregister and print dump areas Manish Ahuja
2008-01-08 4:25 ` Stephen Rothwell
2008-01-08 22:56 ` Manish Ahuja
2008-01-08 0:39 ` Manish Ahuja [this message]
2008-02-12 6:31 ` [PATCH 0/8] pseries: phyp dump: hypervisor-assisted dump Manish Ahuja
2008-02-12 6:53 ` [PATCH 1/8] pseries: phyp dump: Docmentation Manish Ahuja
2008-02-12 7:08 ` [PATCH 2/8] pseries: phyp dump: reserve-release proof-of-concept Manish Ahuja
2008-02-12 8:48 ` Michael Ellerman
2008-02-12 16:38 ` Manish Ahuja
2008-02-14 3:46 ` Tony Breeds
2008-02-14 23:12 ` Olof Johansson
2008-02-15 7:16 ` Manish Ahuja
2008-02-12 7:11 ` [PATCH 3/8] pseries: phyp dump: use sysfs to release reserved mem Manish Ahuja
2008-02-12 10:08 ` Stephen Rothwell
2008-02-12 16:40 ` Manish Ahuja
2008-02-15 1:05 ` Tony Breeds
2008-02-15 7:17 ` Manish Ahuja
2008-02-15 22:32 ` Tony Breeds
2008-02-15 17:30 ` Linas Vepstas
2008-02-12 7:14 ` [PATCH 4/8] pseries: phyp dump: register dump area Manish Ahuja
2008-02-12 10:11 ` Stephen Rothwell
2008-02-12 16:31 ` Manish Ahuja
2008-02-12 7:16 ` [PATCH 5/8] pseries: phyp dump: debugging print routines Manish Ahuja
2008-02-12 7:18 ` [PATCH 6/8] pseries: phyp dump: Invalidate and print dump areas Manish Ahuja
2008-02-12 10:18 ` Stephen Rothwell
2008-02-12 16:32 ` Manish Ahuja
2008-02-13 21:43 ` Manish Ahuja
2008-02-12 7:20 ` [PATCH 7/8] pseries: phyp dump: Tracking memory range freed Manish Ahuja
2008-02-12 7:21 ` [PATCH 8/8] pseries: phyp dump: config file Manish Ahuja
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4782C658.4050901@austin.ibm.com \
--to=ahuja@austin.ibm.com \
--cc=linasvepstas@gmail.com \
--cc=linuxppc-dev@ozlabs.org \
--cc=lkessler@us.ibm.com \
--cc=mahuja@us.ibm.com \
--cc=strosake@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.