direct-io.hg

changeset 7805:4f56eb7d814a

This patch adds more content around the scheduler portions of the xm.1 man
page. Most of this content came from the xensource wiki or the sedf doc in
the Xen tree. It still needs more work, but it is a good first start.

Signed-off-by: Sean Dague <sean@dague.net>
author emellor@leeni.uk.xensource.com
date Tue Nov 15 15:27:48 2005 +0100 (2005-11-15)
parents c395b060b45d
children 97d11e40d8ca
files docs/man/xm.pod.1
line diff
     1.1 --- a/docs/man/xm.pod.1	Tue Nov 15 15:26:37 2005 +0100
     1.2 +++ b/docs/man/xm.pod.1	Tue Nov 15 15:27:48 2005 +0100
     1.3 @@ -488,49 +488,126 @@ explainitory.
     1.4  
     1.5  =head1 SCHEDULER SUBCOMMANDS
     1.6  
     1.7 +Xen ships with a number of domain schedulers, which can be set at boot
     1.8 +time with the I<sched=> parameter on the Xen command line.  By
     1.9 +default I<sedf> is used for scheduling.
    1.10 +
    1.11  FIXME: we really need a scheduler expert to write up this section.
    1.12  
    1.13  =over 4
    1.14  
    1.15 -=item I<sched-bvt> <Parameters>
    1.16 +=item I<sched-bvt> <mcuadv> <warpback> <warpvalue> <warpl> <warpu>
    1.17 +
    1.18 +Performs runtime adjustments to the default parameters for the
    1.19 +Borrowed Virtual Time (BVT) scheduler.  For full information on the
    1.20 +BVT concept, please consult the base paper listed in the B<SEE ALSO>
    1.21 +section.
    1.22  
    1.23  Set Borrowed Virtual Time (BVT) scheduler parameters. There are five
    1.24 -parameters, which are given in order below.
    1.25 +required parameters, which are given in order below.
    1.26 +
    1.27 +B<PARAMETERS>
    1.28  
    1.29  =over 4
    1.30  
    1.31 -Parameters:
    1.32 +=item L<mcuadv>
    1.33 +
    1.34 +The MCU (Minimum Charging Unit) advance determines the proportional
    1.35 +share of the CPU that a domain receives. It is set inversely
    1.36 +proportionally to a domain's sharing weight.
    1.37 +
    1.38 +=item L<warpback>
    1.39 +
    1.40 +The amount of `virtual time' the domain is allowed to warp backwards.
    1.41 +
    1.42 +=item L<warpvalue>
    1.43  
    1.44 -    mcuadv - Minimum Charging Unit (MCU) advance.
    1.45 -    warpback - Warp back time allowed.
    1.46 -    warpvalue - Warp value.
    1.47 -    warpl - Warp maximum limit.
    1.48 -    warpu - Unwarped minimum limit.
    1.49 +
    1.50 +Warp value
    1.51 +
    1.52 +=item L<warpl>
    1.53 +
    1.54 +The warp limit is the maximum time a domain can run warped for.
    1.55 +
    1.56 +=item L<warpu>
    1.57 +
    1.58 +The unwarp requirement is the minimum time a domain must run unwarped
    1.59 +for before it can warp again.
    1.60  
    1.61  =back 
    1.62  
    1.63  =item I<sched-bvt-ctxallow> <Allow>
    1.64  
    1.65 -Sets the BVT scheduler's context switch allowance. Allow is the
    1.66 -minimum time slice allowed to run before being pre-empted.
    1.67 +Sets the BVT scheduler's context switch allowance. 
    1.68 +
    1.69 +The context switch allowance is similar to the ``quantum'' in
    1.70 +traditional schedulers. It is the minimum time that a scheduled domain
    1.71 +will be allowed to run before being preempted.
    1.72  
    1.73 -=item I<sched-sedf> <Parameters>
    1.74 +=item I<sched-sedf> <period> <slice> <latency-hint> <extratime> <weight>
    1.75  
    1.76 -Set simple sEDF scheduler parameters. Use the following parametersin
    1.77 -order.
    1.78 +Set Simple EDF scheduler parameters.  This scheduler provides weighted
    1.79 +CPU sharing in an intuitive way and uses realtime-algorithms to ensure
    1.80 +time guarantees.  For more information see
    1.81 +docs/misc/sedf_scheduler_mini-HOWTO.txt in the Xen distribution.
    1.82 +
    1.83 +B<PARAMETERS>
    1.84  
    1.85  =over 4
    1.86  
    1.87 -Parameters:
    1.88 +=item I<period>
    1.89 +
    1.90 +The normal EDF scheduling usage in nanosecs
    1.91 +
    1.92 +=item I<slice>
    1.93 +
    1.94 +The normal EDF scheduling usage in nanosecs
    1.95 +
    1.96 +FIXME: these are lame, should explain more.
    1.97  
    1.98 -    period - in nanoseconds
    1.99 -    slice - in nanoseconds
   1.100 -    latency-hint - scaled period if domain is doing heavy I/O
   1.101 -    extratime - flag for allowing domain to run in extra time.
   1.102 -    weight - another way of setting cpu slice.
   1.103 +=item I<latency-hint>
   1.104 +
   1.105 +Scaled period if domain is doing heavy I/O.
   1.106 +
   1.107 +=item I<extratime>
   1.108 +
   1.109 +Flag for allowing domain to run in extra time.
   1.110 +
   1.111 +=item I<weight>
   1.112 +
   1.113 +Another way of setting cpu slice.
   1.114  
   1.115  =back
   1.116  
   1.117 +B<EXAMPLES>
   1.118 +
   1.119 +normal EDF (20ms/5ms):
   1.120 +
   1.121 +    xm sched-sedf <dom-id> 20000000 5000000 0 0 0
   1.122 +  
   1.123 +best-effort domains (i.e. non-realtime):
   1.124 +
   1.125 +    xm sched-sedf <dom-id> 20000000 0 0 1 0
   1.126    1.127 +normal EDF (20ms/5ms) + share of extra-time:
   1.128    1.129 +    xm sched-sedf <dom-id> 20000000 5000000 0 1 0
   1.130 +
   1.131 +4 domains with weights 2:3:4:2
   1.132 +
   1.133 +    xm sched-sedf <d1> 0 0 0 0 2
   1.134 +    xm sched-sedf <d2> 0 0 0 0 3
   1.135 +    xm sched-sedf <d3> 0 0 0 0 4
   1.136 +    xm sched-sedf <d4> 0 0 0 0 2
   1.137 +  
   1.138 +1 fully-specified (10ms/3ms) domain, 3 other domains share available
   1.139 +rest in 2:7:3 ratio:   
   1.140 +
   1.141 +    xm sched-sedf <d1> 10000000 3000000 0 0 0   
   1.142 +    xm sched-sedf <d2> 0 0 0 0 2   
   1.143 +    xm sched-sedf <d3> 0 0 0 0 7
   1.144 +    xm sched-sedf <d4> 0 0 0 0 3
   1.145 +
   1.146  =back
   1.147  
   1.148  =head1 VIRTUAL DEVICE COMMANDS
   1.149 @@ -541,7 +618,7 @@ event.
   1.150  
   1.151  =over 4
   1.152  
   1.153 -=item I<block-attach <DomId> <BackDev> <FrontDev> <Mode> [BackDomId]
   1.154 +=item I<block-attach> <DomId> <BackDev> <FrontDev> <Mode> [BackDomId]
   1.155  
   1.156  Create a new virtual block device
   1.157  
   1.158 @@ -590,6 +667,12 @@ Delete a vnet.
   1.159  
   1.160  B<xmdomain.cfg>(5)
   1.161  
   1.162 +BVT scheduling paper: K.J. Duda and D.R. Cheriton. Borrowed Virtual
   1.163 +Time (BVT) scheduling: supporting latency-sensitive threads in a
   1.164 +general purpose scheduler. In proceedings of the 17th ACM SIGOPS
   1.165 +Symposium on Operating Systems principles, volume 33(5) of ACM
   1.166 +Operating Systems Review, pages 261-267
   1.167 +
   1.168  =head1 AUTHOR
   1.169  
   1.170    Sean Dague <sean at dague dot net>