From: Geoff Levand <geoffrey.levand@am.sony.com>
To: Milton Miller <miltonm@bga.com>
Cc: ppcdev <linuxppc-dev@ozlabs.org>
Subject: Re: [patch 08/18] PS3: Kexec support (and a tutoral on the kexec flow for 64 bit powerpc)
Date: Sat, 09 Jun 2007 15:47:17 -0700 [thread overview]
Message-ID: <466B2DF5.7050603@am.sony.com> (raw)
In-Reply-To: <aedf9b62aefb7f14cb71ba5bba9c5e38@bga.com>
Hi Milton.
Milton Miller wrote:
> On Wed Jun 6 13:00:15 EST 2007, Geoff Levand wrote:
>
>> Fixup the core platform parts needed for kexec to work on the PS3.
>> - Setup ps3_hpte_clear correctly.
>> - Mask interrupts on irq removal.
>> - Release all hypervisor resources.
>> static void ps3_hpte_clear(void)
>> {
>> - /* Make sure to clean up the frame buffer device first */
>> - ps3fb_cleanup();
>
> I'm glad to see this go. Which patch added the call to the driver?
I don't know the exact history, but I am pretty sure that is a left
over from before the framebuffer driver used the dma support now
provided by the ps3_system_bus. The old fb code managed its own
IOPTE's, and I think this call cleaned those. But as Geert was
re-writing the fb driver ps3fb_cleanup became a place to put general
fb shutdown code. At the time we were working to just get it to boot
and run, and had no concern what happened at shutdown let alone
kexec. It wasn't like someone consciously made a single change to
do driver shutdown here, it just was a result of the churn.
>> + int result;
>>
>> - lv1_unmap_htab(htab_addr);
>> + DBG(" -> %s:%d\n", __func__, __LINE__);
>> +
>> + result = lv1_unmap_htab(htab_addr);
>> + BUG_ON(result);
>> +
>> + ps3_mm_shutdown();
>> +
>> + ps3_mm_vas_destroy();
>>
> I tried to look at these to check that nothing dynamically allocated
> was being touched. I didn't find anything if the memory had been
> hot-unplugged, but it also looked like they skipped the last one.
By 'last one' I guess you mean the rm region (map.rm). That is
the 'real mode' boot mem region. It is allocated by the hypervisor
for the life of the lpar. It's not hot-pluggable.
>> @@ -209,31 +209,28 @@ static int __init ps3_probe(void)
>> #if defined(CONFIG_KEXEC)
>> static void ps3_kexec_cpu_down(int crash_shutdown, int secondary)
>> {
>> - DBG(" -> %s:%d\n", __func__, __LINE__);
>> + int result;
>> + u64 ppe_id;
>> + u64 thread_id = secondary ? 1 : 0;
>
> This is wrong. This is not what secondary means. To get the
> thread_id you must use smp_processor_id for logical or
> hard_smp_processor_id() for the hardware thread id.
>
>> + DBG(" -> %s:%d: (%d)\n", __func__, __LINE__, secondary);
>> + ps3_smp_cleanup_cpu(thread_id);
>> +
>> + lv1_get_logical_ppe_id(&ppe_id);
>> + result = lv1_configure_irq_state_bitmap(ppe_id, secondary ? 0
>> : 1, 0);
>> + /* seems to fail on second call */
>> + DBG("%s:%d: lv1_configure_irq_state_bitmap (%d) %s\n",
>
> As the second argument is thread id, again this is wrong.
OK, I setup a new routine ps3_shutdown_IRQ() to mirror ps3_init_IRQ().
ps3_shutdown_IRQ() uses the hard processor id.
> Once linux is running, all processors are identical. That is the S in
...
> location as it must when started from open firmware.
Thanks for the explanation. I wish I had that before starting this
work, but it still explained a few points I still wasn't clear on.
I think we should put it somewhere formal like the kernel source
Documentntation directory. What do you think?
-Geoff
next prev parent reply other threads:[~2007-06-09 22:47 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070606024407.786638029@am.sony.com>
2007-06-06 2:59 ` [patch 01/18] Cell: Add spu shutdown method Geoff Levand
2007-06-06 4:08 ` Michael Ellerman
2007-06-06 14:41 ` André Detsch
2007-06-06 2:59 ` [patch 02/18] PS3: Rename IPI symbols Geoff Levand
2007-06-06 3:11 ` Stephen Rothwell
2007-06-06 14:48 ` Will Schmidt
2007-06-06 20:47 ` Geoff Levand
2007-06-06 20:49 ` Geoff Levand
2007-06-06 2:59 ` [patch 03/18] PS3: Use __maybe_unused Geoff Levand
2007-06-06 4:05 ` Michael Ellerman
2007-06-06 22:37 ` Geoff Levand
2007-06-06 2:59 ` [patch 04/18] PS3: Compare firmware version Geoff Levand
2007-06-06 2:59 ` [patch 05/18] PS3: Fix sparse warnings Geoff Levand
2007-06-06 14:21 ` Arnd Bergmann
2007-06-07 14:34 ` Geoff Levand
2007-06-08 5:59 ` Takao Shinohara
2007-06-06 2:59 ` [patch 06/18] PS3: Add support for HDMI RGB Full Range mode Geoff Levand
2007-06-06 3:00 ` [patch 07/18] PS3: Make ps3av.h usable from user space Geoff Levand
2007-06-06 7:46 ` Christoph Hellwig
2007-06-06 11:27 ` Geert Uytterhoeven
2007-06-06 16:44 ` Geoff Levand
2007-06-07 19:15 ` Christoph Hellwig
2007-06-06 3:00 ` [patch 08/18] PS3: Kexec support Geoff Levand
2007-06-06 4:01 ` Michael Ellerman
2007-06-06 21:55 ` Geoff Levand
2007-06-07 1:25 ` Stephen Rothwell
2007-06-07 1:33 ` Geoff Levand
2007-06-07 2:48 ` Stephen Rothwell
2007-06-07 2:31 ` Michael Ellerman
2007-06-07 2:54 ` Benjamin Herrenschmidt
2007-06-10 0:13 ` Geoff Levand
2007-06-09 8:17 ` [patch 08/18] PS3: Kexec support (and a tutoral on the kexec flow for 64 bit powerpc) Milton Miller
2007-06-09 22:47 ` Geoff Levand [this message]
2007-06-06 3:00 ` [patch 09/18] PS3: System-bus rework Geoff Levand
2007-06-06 6:43 ` Geert Uytterhoeven
2007-06-11 7:07 ` Milton Miller
2007-06-11 15:39 ` Geoff Levand
2007-06-11 15:45 ` Geert Uytterhoeven
2007-06-06 3:00 ` [patch 10/18] PS3: System-bus uevent Geoff Levand
2007-06-06 3:00 ` [patch 11/18] PS3: System-bus modinfo attribute Geoff Levand
2007-06-06 3:17 ` Stephen Rothwell
2007-06-06 3:00 ` [patch 12/18] PS3: Repository probe cleanups Geoff Levand
2007-06-06 3:01 ` [patch 13/18] PS3: USB system-bus rework Geoff Levand
2007-06-06 3:01 ` [patch 14/18] PS3: Vuart rework Geoff Levand
2007-06-06 3:01 ` [patch 15/18] PS3: System manager re-work Geoff Levand
2007-06-06 6:51 ` Geert Uytterhoeven
2007-06-06 3:01 ` [patch 16/18] PS3: Rework AV settings driver Geoff Levand
2007-06-06 6:49 ` Geert Uytterhoeven
2007-06-06 3:01 ` [patch 17/18] PS3: Frame buffer system-bus rework Geoff Levand
2007-06-06 6:51 ` Geert Uytterhoeven
2007-06-06 6:51 ` Geert Uytterhoeven
2007-06-06 15:56 ` [Linux-fbdev-devel] " Antonino A. Daplas
2007-06-06 23:08 ` Geoff Levand
2007-06-06 23:37 ` Antonino A. Daplas
2007-06-06 3:01 ` [patch 18/18] PS3: Device registration routines Geoff Levand
2007-06-06 6:57 ` Geert Uytterhoeven
2007-06-06 12:21 ` Geert Uytterhoeven
2007-06-06 3:04 ` [patch 13/18] PS3: USB system-bus rework Geoff Levand
2007-06-08 23:22 ` [patch] PS3: Fix USB return value Geoff Levand
2007-06-25 7:30 ` Greg KH
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=466B2DF5.7050603@am.sony.com \
--to=geoffrey.levand@am.sony.com \
--cc=linuxppc-dev@ozlabs.org \
--cc=miltonm@bga.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.