linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Michael Ellerman <michael@ellerman.id.au>
To: linasvepstas@gmail.com
Cc: mahuja@us.ibm.com, linuxppc-dev@ozlabs.org, lkessler@us.ibm.com,
	Nathan Lynch <ntl@pobox.com>,
	strosake@us.ibm.com
Subject: Re: [PATCH 1/8] pseries: phyp dump: Docmentation
Date: Thu, 10 Jan 2008 14:55:50 +1100	[thread overview]
Message-ID: <1199937350.7880.30.camel@concordia> (raw)
In-Reply-To: <3ae3aa420801091847l189df8dwb2348624f0267af@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 3344 bytes --]

On Wed, 2008-01-09 at 20:47 -0600, Linas Vepstas wrote:
> On 09/01/2008, Michael Ellerman <michael@ellerman.id.au> wrote:
> >
> > > > Only if you can get at rtas, but you can't get at rtas at that point.
> >
> > AFAICT you don't need to get at RTAS, you just need to look at the
> > device tree to see if the property is present, and that is trivial.
> >
> > You probably just need to add a check in early_init_dt_scan_rtas() which
> > sets a flag for the PHYP dump stuff, or add your own scan routine if you
> > need.
> 
> I no longer remember the details. I do remember spending a lot of time
> trying to figure out how to do this. I know I didn't want to write my own scan
> routine; maybe that's what stopped me.  As it happens, we also did most
> of the development on a broken phyp which simply did not even have
> this property, no matter what, and so that may have brain-damaged me.

Sure, the API docs for the kernel are a little lacking ;)

> I went for the "most elegant" solution, where "most elegant" is defined
> as "fewest lines of code", "least effort", etc.
> 
> Manish may need some hands-on help to extract this token during
> early boot.  Hopefully, he'll let us know.

It would just be something like:

--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -901,6 +901,11 @@ int __init early_init_dt_scan_rtas(unsigned long node,
                rtas.size = *sizep;
        }
 
+#ifdef CONFIG_PHYP_DUMP
+       if (of_get_flat_dt_prop(node, "ibm,dump-kernel", NULL))
+               phyp_dump_is_active++;
+#endif
+
 #ifdef CONFIG_UDBG_RTAS_CONSOLE
        basep = of_get_flat_dt_prop(node, "put-term-char", NULL);
        if (basep)


Or to do your own scan routine:


diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index acc0d24..442134e 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -1022,6 +1022,7 @@ void __init early_init_devtree(void *params)
        /* Some machines might need RTAS info for debugging, grab it now. */
        of_scan_flat_dt(early_init_dt_scan_rtas, NULL);
 #endif
+       of_scan_flat_dt(early_init_dt_scan_phyp_dump, NULL);
 
        /* Retrieve various informations from the /chosen node of the
         * device-tree, including the platform type, initrd location and
diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c
index 52e95c2..af2b6e8 100644
--- a/arch/powerpc/kernel/rtas.c
+++ b/arch/powerpc/kernel/rtas.c
@@ -883,6 +883,19 @@ void __init rtas_initialize(void)
 #endif
 }
 
+int __init early_init_dt_scan_phyp_dump(unsigned long node,
+               const char *uname, int depth, void *data)
+{
+#ifdef CONFIG_PHYP_DUMP
+       if (depth != 1 || strcmp(uname, "rtas") != 0)
+               return 0;
+
+       if (of_get_flat_dt_prop(node, "ibm,dump-kernel", NULL))
+               phyp_dump_is_active++;
+#endif
+       return 1;
+}
+
 int __init early_init_dt_scan_rtas(unsigned long node,
                const char *uname, int depth, void *data)
 {


cheers

-- 
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2008-01-10  3:55 UTC|newest]

Thread overview: 66+ 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 [this message]
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 ` [PATCH 8/8] pseries: phyp dump: Tracking memory range freed Manish Ahuja
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
  -- strict thread matches above, loose matches on Subject: below --
2008-01-22 19:12 [PATCH 0/8] pseries: phyp dump: hypervisor-assisted dump Manish Ahuja
2008-01-22 19:26 ` [PATCH 1/8] pseries: phyp dump: Docmentation Manish Ahuja
2008-02-18  4:53 [PATCH 0/8] pseries: phyp dump: hypervisor-assisted dump Manish Ahuja
2008-02-22  0:53 ` Michael Ellerman
2008-02-28 23:57   ` Manish Ahuja
2008-02-29  0:22     ` [PATCH 1/8] pseries: phyp dump: Docmentation 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=1199937350.7880.30.camel@concordia \
    --to=michael@ellerman.id.au \
    --cc=linasvepstas@gmail.com \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=lkessler@us.ibm.com \
    --cc=mahuja@us.ibm.com \
    --cc=ntl@pobox.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 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).