NewFeatureTemplate: Difference between revisions

From QEMU
No edit summary
No edit summary
Line 3: Line 3:
Template to use for new features and changes that update user-visible interface options (command line options, QMP, etc.).  Use the source of this page to populate a new one for the new feature, and then add the info.
Template to use for new features and changes that update user-visible interface options (command line options, QMP, etc.).  Use the source of this page to populate a new one for the new feature, and then add the info.


== Feature Name ==
== Feature name ==




== Short Description ==
== Short description ==




== Feature Authors / Maintainers ==
== Feature authors / maintainers ==






== Detailed Description ==
== Detailed description ==




Line 106: Line 106:




== Supporting Documentation ==
== Supporting documentation ==
e.g.
e.g.
*  blog posts
*  blog posts

Revision as of 05:52, 5 October 2015

New Feature Template

Template to use for new features and changes that update user-visible interface options (command line options, QMP, etc.). Use the source of this page to populate a new one for the new feature, and then add the info.

Feature name

Short description

Feature authors / maintainers

Detailed description

Benefits to QEMU and upper layers (libvirt, OpenStack, oVirt, etc.)

  • includes benefits to users


Scope

[ ] Changes to QEMU

[ ] Changes to guest agent

[ ] Changes to firmware (seabios, vgabios, pxe roms, etc.


[ ] Affects all archs

[ ] Affects specific archs: x86, ppc, arm, s390, etc.


[ ] Affects all guests

[ ] Affects specific guests: Linux, Windows, etc.

If the changes affect only specific architectures or guests, describe how in the detailed description section.


Are any settings added / removed / deprecated / changed which are exposed to higher layers or users?

e.g.

  • qemu config options
  • qemu command line options
  • qmp commands
  • hmp commands

For new options / settings, what are the recommended values, and the ranges? If settings are workload-specific, describe in brief. This helps testers and higher layers to pick proper defaults.


Other debugging options / tunables

e.g.

  • new tracepoints

When filing a bug for this feature / area, what kind of debug data will be most helpful? Anything that will make the bug reports more meaningful. Also, any tips on helping to narrow down the problems to this subsystem? e.g. A minimal command line that reproduces is always helpful.


Will this feature result in a noticeable change for users?

If so, how?

Conflicts / enhances / deprecates any existing features

e.g.

  • effectively disables feature X since both are exclusive
  • boosts performance of feature Y transparently


Update plans

Is the feature complete? Are new things going to come in future releases? What are these pending changes?


How to test the feature

If possible, include instructions to also test with other projects - e.g. libvirt interfaces with qemu

Include as much information as possible. e.g.:

  • How to test while disabling and enabling this feature / change
  • Expected results when disabled
  • Expected results when enabled
  • Setup required - e.g. RDMA network connection between hosts
  • Cases where feature shines
  • Cases where feature doesn't shine
  • Other features / subsystems that influence this one which should be tested together
  • If there is performance-sensitive stuff here, how to setup such tests and test for regressions
  • Are automated tests for Avocado added?
  • Any cases that can test for scalability?
  • In case of a qemu feature that's exposed to guests: how to check host's setting and guest values match? (e.g. # of MSI vectors exposed from qemu for a PCI device; and checking the #vectors in the guest via lspci)
  • Description of all options for a new device -- ie options that can be set via the cmdline, and how they influence the performance / functionality
  • If a feature uses a different feature with various options, what options make sense for this feature? e.g. virtio-scsi-pci added that uses -drive; or vhost-user added that uses other facilities: what options make sense together?


List of commits

(e.g. output from git log --pretty=oneline)


Dependencies

e.g.

  • depends on a new systemd feature / release
  • upstream releases where these changes are included


Supporting documentation

e.g.

  • blog posts
  • mailing list conversations
  • slides / videos from conferences
  • feature pages or commits from other projects (kernel, libvirt, etc.)


Revisions