mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
Merged.
This commit is contained in:
commit
6a889fa0e3
8 files changed
+70
-9
No files matched your search
@@ -72,6 +72,57 @@ A bare minimal config file example might be as follows:
|
||||
|
||||
=item I<builder>
|
||||
|
||||
=back
|
||||
|
||||
=head1 DOMAIN SHUTDOWN OPTIONS
|
||||
|
||||
There are 3 options which control domain shutdown (both planned and
|
||||
unplanned) under certain events. The 3 events currently captured are:
|
||||
|
||||
=over 4
|
||||
|
||||
=item I<shutdown>
|
||||
|
||||
Triggered on either an I<xm shutdown> or graceful shutdown from inside
|
||||
the DomU.
|
||||
|
||||
=item I<reboot>
|
||||
|
||||
Triggered on either an I<xm reboot> or graceful reboot from inside the
|
||||
DomU.
|
||||
|
||||
=item I<crash>
|
||||
|
||||
Triggered when a DomU goes to the crashed state for any reason.
|
||||
|
||||
=back
|
||||
|
||||
All of them take one of 4 valid states listed below.
|
||||
|
||||
=over 4
|
||||
|
||||
=item I<destroy>
|
||||
|
||||
The domain will be cleaned up completely. No attempt at respawning
|
||||
will occur. This is what a typical shutdown would look like.
|
||||
|
||||
=item I<restart>
|
||||
|
||||
The domain will be restarted with the same name as the old domain.
|
||||
This is what a typical reboot would look like.
|
||||
|
||||
=item I<preserve>
|
||||
|
||||
The domain will not be cleaned up at all. This is often useful for
|
||||
crash state domains which ensures that enough evidence is to debug the
|
||||
real issue.
|
||||
|
||||
=item I<rename-restart>
|
||||
|
||||
The old domain will not be cleaned up, but will be renamed so a new
|
||||
domain can be restarted in it's place. (TODO: what does this mean for
|
||||
resources? What is the renamed name?)
|
||||
|
||||
=back
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
@@ -60,7 +60,7 @@ custom variables (for instance, the \path{xmdefconfig} file uses a
|
||||
The available commands are as follows:
|
||||
|
||||
\begin{description}
|
||||
\item[set-mem] Request a domain to adjust its memory footprint.
|
||||
\item[mem-set] Request a domain to adjust its memory footprint.
|
||||
\item[create] Create a new domain.
|
||||
\item[destroy] Kill a domain immediately.
|
||||
\item[list] List running domains.
|
||||
|
||||
@@ -160,12 +160,12 @@ memory at the request of the administrator or the user of the domain.
|
||||
\subsection{Setting memory footprints from dom0}
|
||||
|
||||
The machine administrator can request that a domain alter its memory
|
||||
footprint using the \path{xm set-mem} command. For instance, we can
|
||||
footprint using the \path{xm mem-set} command. For instance, we can
|
||||
request that our example ttylinux domain reduce its memory footprint
|
||||
to 32 megabytes.
|
||||
|
||||
\begin{verbatim}
|
||||
# xm set-mem ttylinux 32
|
||||
# xm mem-set ttylinux 32
|
||||
\end{verbatim}
|
||||
|
||||
We can now see the result of this in the output of \path{xm list}:
|
||||
@@ -181,7 +181,7 @@ The domain has responded to the request by returning memory to Xen. We
|
||||
can restore the domain to its original size using the command line:
|
||||
|
||||
\begin{verbatim}
|
||||
# xm set-mem ttylinux 64
|
||||
# xm mem-set ttylinux 64
|
||||
\end{verbatim}
|
||||
|
||||
\subsection{Setting memory footprints from within a domain}
|
||||
|
||||
@@ -149,7 +149,7 @@
|
||||
#define BX_SUPPORT_FLOPPY 1
|
||||
#define BX_FLOPPY_ON_CNT 37 /* 2 seconds */
|
||||
#define BX_PCIBIOS 1
|
||||
#define BX_APM 1
|
||||
#define BX_APM 0
|
||||
|
||||
#define BX_USE_ATADRV 1
|
||||
#define BX_ELTORITO_BOOT 1
|
||||
|
||||
@@ -376,7 +376,7 @@ gopts.var('sdl', val='',
|
||||
use="""Should the device model use SDL?""")
|
||||
|
||||
gopts.var('display', val='DISPLAY',
|
||||
fn=set_value, default='localhost:0',
|
||||
fn=set_value, default=None,
|
||||
use="X11 display to use")
|
||||
|
||||
|
||||
|
||||
@@ -704,7 +704,6 @@ static char *xenstat_get_domain_name(xenstat_handle *handle, unsigned int domain
|
||||
{
|
||||
char path[80];
|
||||
char *name;
|
||||
unsigned int *len;
|
||||
struct xs_transaction_handle *xstranshandle;
|
||||
|
||||
snprintf(path, sizeof(path),"/local/domain/%i/name", domain_id);
|
||||
@@ -715,7 +714,7 @@ static char *xenstat_get_domain_name(xenstat_handle *handle, unsigned int domain
|
||||
exit(1); /* Change this */
|
||||
}
|
||||
|
||||
name = (char *) xs_read(handle->xshandle, xstranshandle, path, len);
|
||||
name = (char *) xs_read(handle->xshandle, xstranshandle, path, NULL);
|
||||
|
||||
xs_transaction_end(handle->xshandle, xstranshandle, false);
|
||||
|
||||
|
||||
+1
-1
@@ -260,7 +260,7 @@ void trace(u32 event, unsigned long d1, unsigned long d2,
|
||||
}
|
||||
|
||||
rec = &t_recs[smp_processor_id()][buf->prod % nr_recs];
|
||||
rdtscll(rec->cycles);
|
||||
rec->cycles = (u64)get_cycles();
|
||||
rec->event = event;
|
||||
rec->data[0] = d1;
|
||||
rec->data[1] = d2;
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
#ifndef __X86_TIME_H__
|
||||
#define __X86_TIME_H__
|
||||
|
||||
#include <asm/msr.h>
|
||||
|
||||
extern int timer_ack;
|
||||
|
||||
extern void calibrate_tsc_bp(void);
|
||||
@@ -10,4 +12,13 @@ extern void calibrate_tsc_ap(void);
|
||||
struct domain;
|
||||
extern void init_domain_time(struct domain *d);
|
||||
|
||||
typedef u64 cycles_t;
|
||||
|
||||
static inline cycles_t get_cycles(void)
|
||||
{
|
||||
cycles_t c;
|
||||
rdtscll(c);
|
||||
return c;
|
||||
}
|
||||
|
||||
#endif /* __X86_TIME_H__ */
|
||||