From: Jack Steiner <steiner@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: Re: IA64 kexec/kdump 2.6.18-rc5 patch
Date: Tue, 12 Sep 2006 19:59:18 +0000 [thread overview]
Message-ID: <20060912195918.GA22050@sgi.com> (raw)
In-Reply-To: <1156837594.2598.15.camel@linux-znh>
On Tue, Sep 12, 2006 at 12:13:51PM -0500, Jack Steiner wrote:
> > Hi,
> > Below is the IA64 kexec/kdump patch against 2.6.18-rc5.
> >
> ...
> > 3. put AP to a loop of hint.pause instead of call pal_halt_light.
> > diff -Nraup linux-2.6.18-rc5/arch/ia64/kernel/smp.c linux-2.6.18-rc5-kdump/arch/ia64/kernel/smp.c
> > --- linux-2.6.18-rc5/arch/ia64/kernel/smp.c 2006-06-18 09:49:35.000000000 +0800
> > +++ linux-2.6.18-rc5-kdump/arch/ia64/kernel/smp.c 2006-08-30 10:36:01.000000000 +0800
> ...
> > +void
> > +kexec_stop_this_cpu (void *func)
> > +{
> > + unsigned long pta, impl_va_bits, pal_base;
> > +
> > + /*
> > + * Remove this CPU by putting it into fake SAL rendezvous
> > + */
> > + cpu_clear(smp_processor_id(), cpu_online_map);
> > + max_xtp();
> > + ia64_eoi();
> > +
> > + /* Disable VHPT */
> > + impl_va_bits = ffz(~(local_cpu_data->unimpl_va_mask | (7UL << 61)));
> > + pta = POW2(61) - POW2(vmlpt_bits);
> > + ia64_set_pta(pta | (0 << 8) | (vmlpt_bits << 2) | 0);
> > +
> > + local_irq_disable();
> > + pal_base = __get_cpu_var(ia64_mca_pal_base);
> > + kexec_fake_sal_rendez(func, ap_wakeup_vector, pal_base);
> > +}
> > +#endif
>
> What was the reason for introducing the kexec_fake_sal_rendez() function instead of
> actually returning to the real SAL slave loop. The HOTPLUG_CPU code in play_dead()
> in arch/ia64/kernel/process.c is very similar to what is needed.
Hmmm. I may have answered at least part of my question. It appears that the boot cpu
cannot exit back to the SAL slave loop since it was never in the slave loop to start with.
This will take some thought..... More later.
>
>
> I'm sure the problem is platform specific, but on the SN platform, the other cpus must be
> sent back to the real SAL slave loops. Otherwise, targeting of IO interrupts
> will not work correctly in the new kexec'd kernel.
>
> IO interrupts are distributed across cpus that are not in the SAL slave loop. If
> cpus are idled in the OS instead of SAL, interrrupts are incorrected targeted
> to cpus that cannot respond.
>
>
>
> -- jack
next prev parent reply other threads:[~2006-09-12 19:59 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-29 7:46 IA64 kexec/kdump 2.6.18-rc5 patch Zou Nan hai
2006-08-29 19:38 ` Bjorn Helgaas
2006-08-29 22:03 ` Zou Nan hai
2006-08-30 8:27 ` Horms
2006-08-30 8:27 ` Horms
2006-08-30 8:27 ` Horms
2006-09-01 2:24 ` Horms
2006-09-12 17:13 ` Jack Steiner
2006-09-12 19:59 ` Jack Steiner [this message]
2006-09-12 20:23 ` Luck, Tony
2006-09-12 21:25 ` Jack Steiner
2006-09-12 22:56 ` Zou Nan hai
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=20060912195918.GA22050@sgi.com \
--to=steiner@sgi.com \
--cc=linux-ia64@vger.kernel.org \
/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