* RE: powerpc: Add printk companion for ppc_md.progress
@ 2011-06-17 5:39 Benjamin Herrenschmidt
2011-06-17 6:21 ` Benjamin Herrenschmidt
0 siblings, 1 reply; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2011-06-17 5:39 UTC (permalink / raw)
To: dtcarroll; +Cc: linuxppc-dev, miltonm
(Original mail lost in my email cleanup so this isn't a proper reply)
I'll apply that for now, but I'd very much like somebody to just get rid
of the whole ppc_md.progress business.
We have printk working early enough nowadays (and we can use udbg for
debugging).
It was meant to display magic numbers on the panel of IBM machines, I
don't think it was every useful...
Cheers,
Ben.
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: powerpc: Add printk companion for ppc_md.progress
2011-06-17 5:39 Benjamin Herrenschmidt
@ 2011-06-17 6:21 ` Benjamin Herrenschmidt
0 siblings, 0 replies; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2011-06-17 6:21 UTC (permalink / raw)
To: dtcarroll; +Cc: linuxppc-dev, miltonm
On Fri, 2011-06-17 at 15:39 +1000, Benjamin Herrenschmidt wrote:
> (Original mail lost in my email cleanup so this isn't a proper reply)
>
> I'll apply that for now, but I'd very much like somebody to just get rid
> of the whole ppc_md.progress business.
>
> We have printk working early enough nowadays (and we can use udbg for
> debugging).
>
> It was meant to display magic numbers on the panel of IBM machines, I
> don't think it was every useful...
Hrm.. none of your 2 pending patches applies cleanly (factoring
free_initmem & that one). Haven't had a chance to check why yet, can you
check on your side ?
Cheers,
Ben.
^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: powerpc: Add printk companion for ppc_md.progress
[not found] <522F24EF533FC546962ECFA2054FF777373072AB9B@MAILSERVER2.cos.astekcorp.com>
@ 2011-06-17 22:43 ` Benjamin Herrenschmidt
2011-06-18 17:36 ` [PATCH 1/2][v2] powerpc: Move free_initmem to common code Dave Carroll
0 siblings, 1 reply; 5+ messages in thread
From: Benjamin Herrenschmidt @ 2011-06-17 22:43 UTC (permalink / raw)
To: Dave Carroll; +Cc: linuxppc-dev, dtcarroll@gmail.com
On Fri, 2011-06-17 at 10:03 -0600, Dave Carroll wrote:
> > On Fri, 2011-06-17 at 15:39 +1000, Benjamin Herrenschmidt wrote:
> >
> > Hrm.. none of your 2 pending patches applies cleanly (factoring
> > free_initmem & that one). Haven't had a chance to check why yet, can you
> > check on your side ?
> >
> Hi Ben,
>
> I rebased with Linus' current tree, and the patches are identical. Is there another tree
> that I should use to get the patches clean?
Maybe they got corrupted by your mailer ? I will double check on monday.
Cheers,
Ben.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2][v2] powerpc: Move free_initmem to common code
2011-06-17 22:43 ` powerpc: Add printk companion for ppc_md.progress Benjamin Herrenschmidt
@ 2011-06-18 17:36 ` Dave Carroll
2011-06-18 17:36 ` [PATCH 2/2][v2] powerpc: Add printk companion for ppc_md.progress Dave Carroll
0 siblings, 1 reply; 5+ messages in thread
From: Dave Carroll @ 2011-06-18 17:36 UTC (permalink / raw)
To: Milton Miller, Benjamin Herrenschmidt; +Cc: Dave Carroll, LPPC, LKML
From: Dave Carroll <dcarroll@astekcorp.com>
The free_initmem function is basically duplicated in mm/init_32,
and init_64, and is moved to the common 32/64-bit mm/mem.c.
All other sections except init were removed in v2.6.15 by
6c45ab992e4299c869fb26427944a8f8ea177024 (powerpc: Remove section
free() and linker script bits), and therefore the bulk of the executed
code is identical.
This patch also removes updating ppc_md.progress to NULL in the powermac
late_initcall.
Suggested-by: Milton Miller <miltonm@bga.com>
Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Dave Carroll <dcarroll@astekcorp.com>
---
[v2] This is a rebase of the original patch to Linus' current tree
arch/powerpc/mm/init_32.c | 32 -------------------------------
arch/powerpc/mm/init_64.c | 16 ---------------
arch/powerpc/mm/mem.c | 19 ++++++++++++++++++
arch/powerpc/platforms/powermac/setup.c | 3 --
4 files changed, 19 insertions(+), 51 deletions(-)
diff --git a/arch/powerpc/mm/init_32.c b/arch/powerpc/mm/init_32.c
index 5de0f25..c77fef5 100644
--- a/arch/powerpc/mm/init_32.c
+++ b/arch/powerpc/mm/init_32.c
@@ -191,38 +191,6 @@ void __init *early_get_page(void)
return __va(memblock_alloc(PAGE_SIZE, PAGE_SIZE));
}
-/* Free up now-unused memory */
-static void free_sec(unsigned long start, unsigned long end, const char *name)
-{
- unsigned long cnt = 0;
-
- while (start < end) {
- ClearPageReserved(virt_to_page(start));
- init_page_count(virt_to_page(start));
- free_page(start);
- cnt++;
- start += PAGE_SIZE;
- }
- if (cnt) {
- printk(" %ldk %s", cnt << (PAGE_SHIFT - 10), name);
- totalram_pages += cnt;
- }
-}
-
-void free_initmem(void)
-{
-#define FREESEC(TYPE) \
- free_sec((unsigned long)(&__ ## TYPE ## _begin), \
- (unsigned long)(&__ ## TYPE ## _end), \
- #TYPE);
-
- printk ("Freeing unused kernel memory:");
- FREESEC(init);
- printk("\n");
- ppc_md.progress = NULL;
-#undef FREESEC
-}
-
#ifdef CONFIG_8xx /* No 8xx specific .c file to put that in ... */
void setup_initial_memory_limit(phys_addr_t first_memblock_base,
phys_addr_t first_memblock_size)
diff --git a/arch/powerpc/mm/init_64.c b/arch/powerpc/mm/init_64.c
index f6dbb4c..e94b57f 100644
--- a/arch/powerpc/mm/init_64.c
+++ b/arch/powerpc/mm/init_64.c
@@ -83,22 +83,6 @@ EXPORT_SYMBOL_GPL(memstart_addr);
phys_addr_t kernstart_addr;
EXPORT_SYMBOL_GPL(kernstart_addr);
-void free_initmem(void)
-{
- unsigned long addr;
-
- addr = (unsigned long)__init_begin;
- for (; addr < (unsigned long)__init_end; addr += PAGE_SIZE) {
- memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
- ClearPageReserved(virt_to_page(addr));
- init_page_count(virt_to_page(addr));
- free_page(addr);
- totalram_pages++;
- }
- printk ("Freeing unused kernel memory: %luk freed\n",
- ((unsigned long)__init_end - (unsigned long)__init_begin) >> 10);
-}
-
static void pgd_ctor(void *addr)
{
memset(addr, 0, PGD_TABLE_SIZE);
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index 29d4dde..f4e6408 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -382,6 +382,25 @@ void __init mem_init(void)
mem_init_done = 1;
}
+void free_initmem(void)
+{
+ unsigned long addr;
+
+ ppc_md.progress = NULL;
+
+ addr = (unsigned long)__init_begin;
+ for (; addr < (unsigned long)__init_end; addr += PAGE_SIZE) {
+ memset((void *)addr, POISON_FREE_INITMEM, PAGE_SIZE);
+ ClearPageReserved(virt_to_page(addr));
+ init_page_count(virt_to_page(addr));
+ free_page(addr);
+ totalram_pages++;
+ }
+ pr_info("Freeing unused kernel memory: %luk freed\n",
+ ((unsigned long)__init_end -
+ (unsigned long)__init_begin) >> 10);
+}
+
#ifdef CONFIG_BLK_DEV_INITRD
void __init free_initrd_mem(unsigned long start, unsigned long end)
{
diff --git a/arch/powerpc/platforms/powermac/setup.c b/arch/powerpc/platforms/powermac/setup.c
index aa45281..a028f08 100644
--- a/arch/powerpc/platforms/powermac/setup.c
+++ b/arch/powerpc/platforms/powermac/setup.c
@@ -355,9 +355,6 @@ static int initializing = 1;
static int pmac_late_init(void)
{
initializing = 0;
- /* this is udbg (which is __init) and we can later use it during
- * cpu hotplug (in smp_core99_kick_cpu) */
- ppc_md.progress = NULL;
return 0;
}
machine_late_initcall(powermac, pmac_late_init);
--
1.7.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2][v2] powerpc: Add printk companion for ppc_md.progress
2011-06-18 17:36 ` [PATCH 1/2][v2] powerpc: Move free_initmem to common code Dave Carroll
@ 2011-06-18 17:36 ` Dave Carroll
0 siblings, 0 replies; 5+ messages in thread
From: Dave Carroll @ 2011-06-18 17:36 UTC (permalink / raw)
To: Milton Miller, Benjamin Herrenschmidt; +Cc: Dave Carroll, LPPC, LKML
From: Dave Carroll <dcarroll@astekcorp.com>
This patch adds a printk companion to replace the udbg progress function
when initmem is freed.
Suggested-by: Milton Miller <miltonm@bga.com>
Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Dave Carroll <dcarroll@astekcorp.com>
---
[v2] This is a rebase of the original patch to Linus' current tree
arch/powerpc/include/asm/setup.h | 2 ++
arch/powerpc/kernel/setup-common.c | 5 +++++
arch/powerpc/mm/mem.c | 2 +-
3 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/include/asm/setup.h b/arch/powerpc/include/asm/setup.h
index dae1934..c77cb7a 100644
--- a/arch/powerpc/include/asm/setup.h
+++ b/arch/powerpc/include/asm/setup.h
@@ -3,4 +3,6 @@
#include <asm-generic/setup.h>
+extern void ppc_printk_progress(char *s, unsigned short hex);
+
#endif /* _ASM_POWERPC_SETUP_H */
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 79fca26..e053b16 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -704,6 +704,11 @@ static int powerpc_debugfs_init(void)
arch_initcall(powerpc_debugfs_init);
#endif
+void ppc_printk_progress(char *s, unsigned short hex)
+{
+ pr_info("%s\n", s);
+}
+
static int ppc_dflt_bus_notify(struct notifier_block *nb,
unsigned long action, void *data)
{
diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c
index f4e6408..e0d2aa0 100644
--- a/arch/powerpc/mm/mem.c
+++ b/arch/powerpc/mm/mem.c
@@ -386,7 +386,7 @@ void free_initmem(void)
{
unsigned long addr;
- ppc_md.progress = NULL;
+ ppc_md.progress = ppc_printk_progress;
addr = (unsigned long)__init_begin;
for (; addr < (unsigned long)__init_end; addr += PAGE_SIZE) {
--
1.7.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-06-18 17:55 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <522F24EF533FC546962ECFA2054FF777373072AB9B@MAILSERVER2.cos.astekcorp.com>
2011-06-17 22:43 ` powerpc: Add printk companion for ppc_md.progress Benjamin Herrenschmidt
2011-06-18 17:36 ` [PATCH 1/2][v2] powerpc: Move free_initmem to common code Dave Carroll
2011-06-18 17:36 ` [PATCH 2/2][v2] powerpc: Add printk companion for ppc_md.progress Dave Carroll
2011-06-17 5:39 Benjamin Herrenschmidt
2011-06-17 6:21 ` Benjamin Herrenschmidt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).