All of lore.kernel.org
 help / color / mirror / Atom feed
* RE: [Xen-tools] [RFC] xm interface proposed changes
@ 2005-08-02 11:10 Ian Pratt
  2005-08-02 11:32 ` Sean Dague
  2005-08-02 11:39 ` Daniel Hulme
  0 siblings, 2 replies; 13+ messages in thread
From: Ian Pratt @ 2005-08-02 11:10 UTC (permalink / raw)
  To: Sean Dague, xen-tools; +Cc: xen-devel


Sean,

Thanks for having a go at this. I've appended a few suggestions in-line.
 
> ===================================================================
> ---------XM Proposed-----------------------------------------------
> help                Print help.
> 
> Commands related to consoles:
> 
> console <DomId>  Open a console to a domain.
> * console-list        Get information about domain consoles.
> 
> Commands on domains:
> 
> domid   <DomName>         Convert a domain name to a domain id.
> domname <DomId>           Convert a domain id to a domain name.
> 
> create  <ConfigFile>      Create a domain.
> destroy <DomId>           Terminate a domain immediately.
> restore <File>            Create a domain from a saved state.
> save    <DomId> <File>    Save domain state (and config) to file.
> * shutdown [-w|-a] <DomId>  Shutdown a domain.
> + reboot   [-w|-a] <DomId>  Reboot a domain.
> 
> list                      List information about domains.
> 
> * mem-max <DomId> <Mem>             Set domain maximum memory limit.
> * mem-set <DomId> <Mem>             Set the domain's memory 
> dynamically.

I think this should be mem-set-max and mem-set-target ?

> * cpus-set <DomId> <VCpu> <CPUS>    Set which cpus a VCPU can use. 

I'm not sure about this one, but an struggling to think of anything
better. 
cpu-set-affinity ?

> + cpus-list <DomId> <VCpu>          Get the list of cpus for a VCPU
> * vcpu-enable <DomId> <VCPU>        Disable VCPU in a domain.
> + vcpu-disable <DomId> <VCPU>       Enable VCPU in a domain
> + vcpu-list <DomId>                 Get the list of VCPUs for a domain
> 
> migrate [options] <DomId> <Host> Migrate a domain to another machine.
> 
> sysrq   <DomId> <letter>    Send a sysrq to a domain.
> pause   <DomId>           Pause execution of a domain.
> unpause <DomId>           Unpause a paused domain.

Perhaps we should list these with the other domain-specific ones e.g.
shutdown and friends.

> Commands related to the xen host (node):
> 
> dmesg   [--clear]         Read or clear Xen's message buffer.
> info                      Get information about the xen host.
> log                       Print the xend log.
> 
> Comands controlling scheduling:
> 
> bvt DOM MCUADV WARPBACK WARPVALUE WARPL WARPU   Set BVT 
> scheduler parameters.
> bvt_ctxallow CTX_ALLOW                          Set the BVT 
> scheduler context switch allowance.
> sedf DOM PERIOD SLICE LATENCY EXTRATIME WEIGHT  Set simple 
> EDF parameters.

It would be nice to list only the ones for the currenty active
scheduler, or at least have it such that the commands fail if the
scheduler isn't in use.

> Commands related to virtual block devices:
> 
> * block-create <DomId> <BackDev> <FrontDev> <Mode> 
> [BackDomId]    Create a new virtual block device for a domain
> * block-destroy <DomId> <DevId>  Destroy a domain's virtual 
> block device

add/remove (or add/del) might sound a little less brutal than
create/destroy.

> * block-list    <DomId>          List virtual block devices 
> for a domain.
> * block-refresh <DomId> <DevId>  Refresh a virtual block 
> device for a domain
> 
> Commands related to virtual network interfaces:
> 
> * network-limit   <DomId> <Vif> <Credit> <Period> Limit the 
> transmission rate of a virtual network interface.
> * network-list    <DomId> List virtual network interfaces for 
> a domain.

We should have commands for network-add and network-del.

In fact, are network and block the right nouns? 
Would vblock/vnetif be better?

Best,
Ian

^ permalink raw reply	[flat|nested] 13+ messages in thread
* RE: RE: [Xen-tools] [RFC] xm interface proposed changes
@ 2005-08-02 14:49 Ian Pratt
  0 siblings, 0 replies; 13+ messages in thread
From: Ian Pratt @ 2005-08-02 14:49 UTC (permalink / raw)
  To: Sean Dague, Mark Williamson; +Cc: xen-tools, xen-devel

 
> It isn't in xm info today.  It could be added, or given it's 
> own place. 
> Honestly, it might make sense to make all the sched commands 
> have a sched- prefix, mostly to make it clear to the user 
> what bvt really is.

Yep, having a sched- prefix is definitely helpful.

Ian

^ permalink raw reply	[flat|nested] 13+ messages in thread
* RE: [Xen-tools] [RFC] xm interface proposed changes
@ 2005-08-02 12:07 Ian Pratt
  2005-08-02 13:17 ` Mark Williamson
  0 siblings, 1 reply; 13+ messages in thread
From: Ian Pratt @ 2005-08-02 12:07 UTC (permalink / raw)
  To: Sean Dague; +Cc: xen-tools, xen-devel

 
> > > * mem-max <DomId> <Mem>             Set domain maximum 
> memory limit.
> > > * mem-set <DomId> <Mem>             Set the domain's memory 
> > > dynamically.
> > 
> > I think this should be mem-set-max and mem-set-target ?
> 
> My only concern is that those are getting pretty long to type 
> out, and I'm not sure that -target helps clarify.

That's a fair point about making them too long to type. 

However, its useful to indicate that it is a 'target', and the domain
may not actually be able to relinquish that much memory. Using mem-max
can be a fairly brutal operation if you haven't adjusted the target
first.
 
> what about mem-limit and mem-set?

mem-max and mem-target ?

> > 
> > > * cpus-set <DomId> <VCpu> <CPUS>    Set which cpus a VCPU 
> can use. 
> > 
> > I'm not sure about this one, but an struggling to think of anything 
> > better.
> > cpu-set-affinity ?
> 
> Yeh, I was scratching my head a lot on this one too.  Trying 
> to brainstorm now (help in this regard would be good):
> 
> cpu-allocate <DomId> <VCpu> <CPUS>?
> vcpu-set <DomId> <VCpu> <CPUS>?

It's a propery of the vcpu. Perhaps vcpu-affinity ?
vcpu-set isn't too bad.

> > > Commands related to the xen host (node):
> > > 
> > > dmesg   [--clear]         Read or clear Xen's message buffer.
> > > info                      Get information about the xen host.
> > > log                       Print the xend log.
> > > 
> > > Comands controlling scheduling:
> > > 
> > > bvt DOM MCUADV WARPBACK WARPVALUE WARPL WARPU   Set BVT 
> > > scheduler parameters.
> > > bvt_ctxallow CTX_ALLOW                          Set the BVT 
> > > scheduler context switch allowance.
> > > sedf DOM PERIOD SLICE LATENCY EXTRATIME WEIGHT  Set simple EDF 
> > > parameters.
> > 
> > It would be nice to list only the ones for the currenty active 
> > scheduler, or at least have it such that the commands fail if the 
> > scheduler isn't in use.
> 
> I 100% agree.  It is actually sort of amazing how many 
> commands can fail but don't return error codes right now.  
> I'm hoping to fix that.

Excellent.
 
> sched-list might be useful to also expose the current 
> scheduler, and provide a graceful failure message if you try 
> to run a command for the wrong one.

Yep. I think (hope?) 'xm info' reports this.

> > > * block-list    <DomId>          List virtual block devices 
> > > for a domain.
> > > * block-refresh <DomId> <DevId>  Refresh a virtual block 
> device for 
> > > a domain
> > > 
> > > Commands related to virtual network interfaces:
> > > 
> > > * network-limit   <DomId> <Vif> <Credit> <Period> Limit the 
> > > transmission rate of a virtual network interface.
> > > * network-list    <DomId> List virtual network interfaces for 
> > > a domain.
> > 
> > We should have commands for network-add and network-del.
> > 
> > In fact, are network and block the right nouns? 
> > Would vblock/vnetif be better?
> 
> It seems to me that network and block are known concepts, and 
> the user is already in a virtual control environment, so the 
> "virtual" part should be implied by the fact that you are 
> running xm in the first place.  So I would lean towards 
> network or netif and block directly without the "v".  

I was thinking 'v' as we needed it for vcpu. Not sure if we may have
similar controls for setting up 'physical' networking in future e.g.
tweaking the bridge setup. My inclination would be for vblock and
vnetif, but I'll go with flow...

Ian

^ permalink raw reply	[flat|nested] 13+ messages in thread
* [RFC] xm interface proposed changes
@ 2005-07-29 13:04 Sean Dague
  2005-07-29 14:25 ` [Xen-tools] " harry
  0 siblings, 1 reply; 13+ messages in thread
From: Sean Dague @ 2005-07-29 13:04 UTC (permalink / raw)
  To: xen-tools; +Cc: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 7822 bytes --]

In order to have this discussion in a structured way, we should figure out
how we want commands structured in general (i.e. where is the verb).

It seems the following policy would be mostly in line with the existing
command set.

If the command direct object is a xen domain (it does something directly to
a domain core) then we use "verb" (i.e. create, destroy, save...).  If the
command direct object is a part of a domain, like a block device or memory,
we use "object-verb", mostly so the object commands cluster in a directly
command listing.  Examples today would be "vbd-list" for instance.  If there
is a difference of opinion here, we should hammer that out first, because
the rest of the discussion is pretty pointless without at least these ground
rules. :)

To make this easier, here is the command help today (with attributes added
in to each command).

=========================================================================
---------XM HELP TODAY---------------------------------------------------
call                Call xend api functions
help                Print help.

Commands related to consoles:

console <DomainId>  Open a console to a domain.
consoles            Get information about domain consoles.

Commands on domains:

balloon <DomainId> <Mem>  Set the domain's memory footprint using the balloon driver.
create <ConfigFile>       Create a domain.
destroy <DomainId>        Terminate a domain immediately.
domid   <DomainName>      Convert a domain name to a domain id.
domname <DomainId>        Convert a domain id to a domain name.
list                      List information about domains.
maxmem <DomainId> <Mem>   Set domain memory limit.
migrate [options] <DomId> <Host> Migrate a domain to another machine.
pause  <DomainId>         Pause execution of a domain.
pincpu <DomId> <VCpu> <CPUS>    Set which cpus a VCPU can use. 
restore <File>            Create a domain from a saved state.
save    <DomId> <File>    Save domain state (and config) to file.
shutdown [options] <DomId>  Shutdown a domain.
sysrq   <DomId> <letter>    Send a sysrq to a domain.
unpause <DomId>           Unpause a paused domain.
vcpu-hotplug <DomId> <VCPU> <0|1> Enable or disable a VCPU in a domain.

Commands related to the xen host (node):

dmesg   [--clear]         Read or clear Xen's message buffer.
info                      Get information about the xen host.
log                       Print the xend log.

Comands controlling scheduling:

bvt DOM MCUADV WARPBACK WARPVALUE WARPL WARPU   Set BVT scheduler parameters.
bvt_ctxallow CTX_ALLOW                          Set the BVT scheduler context switch allowance.
sedf DOM PERIOD SLICE LATENCY EXTRATIME WEIGHT  Set simple EDF parameters.

Commands related to virtual block devices:

vbd-create <DomId> <BackDev> <FrontDev> <Mode> [BackDomId]    Create a new virtual block device for a domain
vbd-destroy <DomId> <DevId>  Destroy a domain's virtual block device
vbd-list    <DomId>          List virtual block devices for a domain.
vbd-refresh <DomId> <DevId>  Refresh a virtual block device for a domain

Commands related to virtual network interfaces:

vif-limit   <DomId> <Vif> <Credit> <Period> Limit the transmission rate of a virtual network interface.
vif-list    <DomId> List virtual network interfaces for a domain.

Try '/usr/sbin/xm help CMD' for help on CMD
-------------------------------------------------------------------



The following is a proposed set of changes based on the "obj-verb" paradigm,
plus trying to make commands make more sense to a user that may not know
things about Xen internals.  Commands that have renames are marked with (*),
commands that are "new" to create what seems like a complete interface are
marked with (+).

===================================================================
---------XM Proposed-----------------------------------------------
help                Print help.

Commands related to consoles:

console <DomId>  Open a console to a domain.
* console-list        Get information about domain consoles.

Commands on domains:

domid   <DomName>         Convert a domain name to a domain id.
domname <DomId>           Convert a domain id to a domain name.

create  <ConfigFile>      Create a domain.
destroy <DomId>           Terminate a domain immediately.
restore <File>            Create a domain from a saved state.
save    <DomId> <File>    Save domain state (and config) to file.
* shutdown [-w|-a] <DomId>  Shutdown a domain.
+ reboot   [-w|-a] <DomId>  Reboot a domain.

list                      List information about domains.

* mem-max <DomId> <Mem>             Set domain maximum memory limit.
* mem-set <DomId> <Mem>             Set the domain's memory dynamically.
* cpus-set <DomId> <VCpu> <CPUS>    Set which cpus a VCPU can use. 
+ cpus-list <DomId> <VCpu>          Get the list of cpus for a VCPU
* vcpu-enable <DomId> <VCPU>        Disable VCPU in a domain.
+ vcpu-disable <DomId> <VCPU>       Enable VCPU in a domain
+ vcpu-list <DomId>                 Get the list of VCPUs for a domain

migrate [options] <DomId> <Host> Migrate a domain to another machine.

sysrq   <DomId> <letter>    Send a sysrq to a domain.
pause   <DomId>           Pause execution of a domain.
unpause <DomId>           Unpause a paused domain.

Commands related to the xen host (node):

dmesg   [--clear]         Read or clear Xen's message buffer.
info                      Get information about the xen host.
log                       Print the xend log.

Comands controlling scheduling:

bvt DOM MCUADV WARPBACK WARPVALUE WARPL WARPU   Set BVT scheduler parameters.
bvt_ctxallow CTX_ALLOW                          Set the BVT scheduler context switch allowance.
sedf DOM PERIOD SLICE LATENCY EXTRATIME WEIGHT  Set simple EDF parameters.

Commands related to virtual block devices:

* block-create <DomId> <BackDev> <FrontDev> <Mode> [BackDomId]    Create a new virtual block device for a domain
* block-destroy <DomId> <DevId>  Destroy a domain's virtual block device
* block-list    <DomId>          List virtual block devices for a domain.
* block-refresh <DomId> <DevId>  Refresh a virtual block device for a domain

Commands related to virtual network interfaces:

* network-limit   <DomId> <Vif> <Credit> <Period> Limit the transmission rate of a virtual network interface.
* network-list    <DomId> List virtual network interfaces for a domain.

Try '/usr/sbin/xm help CMD' for help on CMD
-----------------------------------------------------------------



Additionally, if we are to move to a model where command aliasing can easily
be done (for backwards compatibility), I actually think we need to majorly
restructure main.py from an object based model to a declaritive model, where
main() would be a dispatcher to possibly many functions that would be the
equiv of the main methods in each object today.  I also believe that this is
the only way to get 'xm help' to run as non-root, which I consider a goal. 
I'd like at least tenative approval for this idea before I code it up, but I
am *willing to volunteer* for this conversion of main.py from object based
-> declaritive structure.

Comments welcome, flame away.

	-Sean

-- 
__________________________________________________________________

Sean Dague                                       Mid-Hudson Valley
sean at dague dot net                            Linux Users Group
http://dague.net                                 http://mhvlug.org

There is no silver bullet.  Plus, werewolves make better neighbors
than zombies, and they tend to keep the vampire population down.
__________________________________________________________________

[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 138 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2005-08-02 23:12 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-08-02 11:10 [Xen-tools] [RFC] xm interface proposed changes Ian Pratt
2005-08-02 11:32 ` Sean Dague
2005-08-02 13:12   ` Mark Williamson
2005-08-02 23:12   ` Josh Triplett
2005-08-02 11:39 ` Daniel Hulme
2005-08-02 13:25   ` Sean Dague
  -- strict thread matches above, loose matches on Subject: below --
2005-08-02 14:49 RE: [Xen-tools] " Ian Pratt
2005-08-02 12:07 Ian Pratt
2005-08-02 13:17 ` Mark Williamson
2005-08-02 13:23   ` Sean Dague
2005-07-29 13:04 Sean Dague
2005-07-29 14:25 ` [Xen-tools] " harry
2005-07-29 14:44   ` Sean Dague
2005-07-29 14:54     ` Ronald G. Minnich
2005-07-29 16:18       ` harry
2005-07-29 15:28     ` harry
2005-07-29 17:35       ` Sean Dague

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.