From: Andi Kleen <andi-Vw/NltI1exuRpAAqCnN02g@public.gmane.org>
To: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org,
mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [PATCH] kexec_load manpage
Date: Sat, 19 Jun 2010 15:26:33 +0200 [thread overview]
Message-ID: <20100619132633.GA24277@basil.fritz.box> (raw)
Here are the beginnings of a kexec_load manpage.
Probably needs some more review from Eric and may need some additional
information.
The syscall is actually only usable with a kernel patch to export
the header I just sent separately.
Also added the kexec subcall to reboot(2)
-Andi
diff --git a/man2/kexec_load.2 b/man2/kexec_load.2
new file mode 100644
index 0000000..f486641
--- /dev/null
+++ b/man2/kexec_load.2
@@ -0,0 +1,94 @@
+.TH KEXEC_LOAD 2 2010-06-16 "Linux" "Linux Programmer's Manual"
+.SH NAME
+kexec_load \- Load a new kernel for later execution.
+.SH SYNOPSIS
+.b #include <linux/kexec.h>
+.br
+.BI "long kexec_load(unsigned long " entry ", unsigned long " nr_segments ","
+.br
+.BI "struct kexec_segment *" segments ", unsigned long " flags ");"
+.SH DESCRIPTION
+.BR kexec_load
+loads a new kernel that can be executed later
+by
+.I reboot(2).
+An alternative approach is to specify
+.B KEXEC_ON_CRASH
+in the
+.I flags
+argument and then the new kernel will be automatically executed on a
+system crash.
+.\" XXX figure out how this is really used
+With
+.B KEXEC_PRESERVE_CONTEXT
+specified in
+.I flags
+kexec will preserve the system hard and
+software state before executing the kexec kernel. This
+could be used for system suspend.
+
+.I flags
+also contains the architecture of the executed kernel or
+be
+.I KEXEC_ARCH_DEFAULT
+for the current architecture.
+Valid architectures are
+.I KEXEC_ARCH_I386,
+.I KEXEC_ARCH_X86_64,
+.I KEXEC_ARCH_PPC,
+.I KEXEC_ARCH_PPC64,
+.I KEXEC_ARCH_IA_64,
+.I KEXEC_ARCH_ARM,
+.I KEXEC_ARCH_S390,
+.I KEXEC_ARCH_SH,
+.I KEXEC_ARCH_MIPS,
+.I KEXEC_ARCH_MIPS_LE.
+The architecture must be executable on the CPU of the system.
+
+.I entry
+is the virtual entry address in the kernel image.
+.I nr_segments
+is the number of segments pointed to by the
+.I segments
+pointer.
+.I segments
+is an array of
+.I struct kexec_segment
+structures which define the kernel layout:
+.in +4n
+.nf
+
+struct kexec_segment {
+ void *buf; /* Buffer in user space */
+ size_t bufsz; /* Buffer length in user space */
+ void *mem; /* Virtual address of kernel */
+ size_t memsz; /* Virtual address length */
+};
+.fi
+.in
+.PP
+.\" XXX elaborate on this
+The kernel image defined by
+.I segments
+is copied from the calling process into previously reserved memory.
+.SH CONFORMING TO
+This system call is Linux-specific.
+.SH NOTES
+kexec_load is currently not defined in glibc. To call it use:
+.in +4n
+.nf
+#define _GNU_SOURCE
+#include <syscall.h>
+#include <asm/unistd.h>
+#include <linux/kexec.h>
+
+ret = syscall(__NR_kexec_load, entry, nr_segments, segments, flags);
+.fi
+.in
+.PP
+.I linux/kexec.h as a exported header is only available in 2.6.38
+and later kernels, in earlier kernels the constants need to be copied
+out of the kernel source.
+.SH SEE ALSO
+.BR syscall (2),
+.BR reboot (2)
diff --git a/man2/reboot.2 b/man2/reboot.2
index 253bd34..87204b1 100644
--- a/man2/reboot.2
+++ b/man2/reboot.2
@@ -139,6 +139,11 @@ For the i386 architecture, the additional argument does not do
anything at present (2.1.122), but the type of reboot can be
determined by kernel command-line arguments ("reboot=...") to be
either warm or cold, and either hard or through the BIOS.
+.TP
+.B LINUX_REBOOT_KEXEC
+executes a kernel that has been loaded earlier
+with
+.I kexec_load(2).
.SH "RETURN VALUE"
For the values of
.I cmd
@@ -177,4 +182,5 @@ and should not be used in programs intended to be portable.
.BR capabilities (7),
.BR ctrlaltdel (8),
.BR halt (8),
-.BR reboot (8)
+.BR reboot (8),
+.BR kexec_load (2)
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next reply other threads:[~2010-06-19 13:26 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-19 13:26 Andi Kleen [this message]
[not found] ` <20100619132633.GA24277-u0/ZJuX+froe6aEkudXLsA@public.gmane.org>
2010-06-19 19:18 ` [PATCH] kexec_load manpage Eric W. Biederman
[not found] ` <m1mxuqu8yr.fsf-+imSwln9KH6u2/kzUuoCbdi2O/JbrIOy@public.gmane.org>
2010-06-19 19:45 ` Andi Kleen
[not found] ` <20100619194532.GQ18946-u0/ZJuX+froe6aEkudXLsA@public.gmane.org>
2010-10-31 6:19 ` Michael Kerrisk
[not found] ` <AANLkTi=eT_6UjgLsrOtQt833xeTOkjDvHXvd=xbEZ34c-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-31 6:58 ` Simon Horman
2010-06-26 13:23 ` Michael Kerrisk
[not found] ` <AANLkTillNx5owgU4O71izNz9FEL06MiI-FquTZ3ofktP-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-09-11 4:46 ` Michael Kerrisk
[not found] ` <AANLkTi=HKMce2UojSRmqVdoLO3H4v+6Xtp-bgFuHwH+D-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-10-24 14:56 ` Michael Kerrisk
2010-10-24 21:38 ` Andi Kleen
[not found] ` <20101024213802.GB9922-u0/ZJuX+froe6aEkudXLsA@public.gmane.org>
2010-10-28 12:14 ` Simon Horman
[not found] ` <20101028121417.GD16206-/R6kz+dDXgpPR4JQBCEnsQ@public.gmane.org>
2010-10-28 12:25 ` Andi Kleen
[not found] ` <20101028122540.GA29759-u0/ZJuX+froe6aEkudXLsA@public.gmane.org>
2010-10-30 2:36 ` Simon Horman
2010-10-31 6:40 ` Michael Kerrisk
2010-10-31 6:19 ` Michael Kerrisk
2010-10-31 6:14 ` Michael Kerrisk
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=20100619132633.GA24277@basil.fritz.box \
--to=andi-vw/nlti1exurpaaqcnn02g@public.gmane.org \
--cc=ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.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;
as well as URLs for NNTP newsgroup(s).