Re: kexec/kdump for Xen - implementation question

From: Daniel Kiper
Date: Thu Jun 09 2011 - 10:15:18 EST


On Tue, Jun 07, 2011 at 11:29:26AM +0100, Ian Campbell wrote:
> On Mon, 2011-06-06 at 17:04 +0100, Daniel Kiper wrote:
> > Hi,
> >
> > Currently, I am working on kexec/kdump for Xen with emphasis on dom0
> > implementation issues. After reviewing relevant Xen Linux Kernel
> > Ver. 2.6.18 code I realized (as I expected) that original kexec/kdump
> > in mainline kernel should be extensively amended. Further, after some
> > discussion with Konrad Rzeszutek Wilk and Ian Campbell it was clear
> > for me that it could be done in a few diffrent ways. Due to this facts
> > I decided to establish general implementation details with LKML and
> > Xen-devel community to avoid extensive code rewrite in case my own
> > proposal would not be accepted.
> >
> > Now I think about four solutions. I will present them in order of my
> > preference. However, if you have another soultions to that problem
> > please drop me a line.
> >
> > 1) Currently existing kexec/kdump implementation should be amended
> > by adding Xen specific code mainly in arch/i386. It should look
> > like:
> >
> > void machine_kexec(struct kimage *image)
> > {
> > #ifdef CONFIG_XEN
> > if (xen_initial_domain()) {
> > ...
> > Xen specific code
> > ...
> > }
> > #endif
> >
> > ...
> > generic kexec/kdump code
> > ...
> > }
>
> This is about the ugliest way to do things and should be avoided.

I think that in this case it is to some extent. I decided put
this solution before struct machine_kexec_ops solution because
this (let say conditional solution) touches only x86 code (and
if it be required IA-64). struct machine_kexec_ops proposal
require changes for 8 archs. I am not sure it could be accepted
by kexec/kdump and relevant archs maintainers quickly. However,
I think that struct machine_kexec_ops is better as longterm
solution.

Daniel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/