diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 5e56dae306..9f077eb2b7 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -194,7 +194,7 @@
<memoryBacking>
<hugepages/>
</memoryBacking>
- <vcpu>1</vcpu>
+ <vcpu cpuset="1-4,^3,6">2</vcpu>
...
@@ -213,7 +213,15 @@
hugepages instead of the normal native page size.
vcpu
- The content of this element defines the number of virtual
- CPUs allocated for the guest OS.
+ CPUs allocated for the guest OS, which must be between 1 and
+ the maximum supported by the hypervisor. Since
+ 0.4.4, this element can contain an optional
+ cpuset
attribute, which is a comma-separated
+ list of physical CPU numbers that virtual CPUs can be pinned
+ to. Each element in that list is either a single CPU number,
+ a range of CPU numbers, or a caret followed by a CPU number to
+ be excluded from a previous range.
+
diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng
index ccb8cf39a4..2e0457bb32 100644
--- a/docs/schemas/domain.rng
+++ b/docs/schemas/domain.rng
@@ -302,7 +302,9 @@
-
+
+
+
@@ -1785,6 +1787,11 @@
[0-9]+
+
+
+ ([0-9]+(-[0-9]+)?|\^[0-9]+)(,([0-9]+(-[0-9]+)?|\^[0-9]+))*
+
+
[0-9]+
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index e05d5d73e4..afb06e839a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5270,7 +5270,7 @@ virDomainCpuNumberParse(const char **str, int maxcpu)
*
* Serialize the cpuset to a string
*
- * Returns the new string NULL in case of error. The string need to be
+ * Returns the new string NULL in case of error. The string needs to be
* freed by the caller.
*/
char *
@@ -5329,8 +5329,8 @@ virDomainCpuSetFormat(char *cpuset, int maxcpu)
* @maxcpu: number of elements available in @cpuset
*
* Parse the cpu set, it will set the value for enabled CPUs in the @cpuset
- * to 1, and 0 otherwise. The syntax allows coma separated entries each
- * can be either a CPU number, ^N to unset that CPU or N-M for ranges.
+ * to 1, and 0 otherwise. The syntax allows comma separated entries; each
+ * can be either a CPU number, ^N to unset that CPU, or N-M for ranges.
*
* Returns the number of CPU found in that set, or -1 in case of error.
* @cpuset is modified accordingly to the value parsed.