[PATCH] docs: add a new User Mode Linux HowTo

Jonathan Corbet corbet at lwn.net
Wed Sep 9 13:52:03 EDT 2020


On Fri,  4 Sep 2020 15:11:15 +0100
anton.ivanov at cambridgegreys.com wrote:

> From: Anton Ivanov <anton.ivanov at cambridgegreys.com>
> 
> The new howto migrates the portions of the old howto which
> are still relevant to a new document, updates them to linux 5.x
> and adds documentation for vector transports and other new
> features.
> 
> Signed-off-by: Anton Ivanov <anton.ivanov at cambridgegreys.com>

Thanks for improving the docs!  Some nits...

>  .../virt/uml/user_mode_linux_howto_v2.rst     | 1304 +++++++++++++++++
>  1 file changed, 1304 insertions(+)
>  create mode 100644 Documentation/virt/uml/user_mode_linux_howto_v2.rst

You need to add this to an index.rst file so it becomes part of the docs
build. 

> diff --git a/Documentation/virt/uml/user_mode_linux_howto_v2.rst b/Documentation/virt/uml/user_mode_linux_howto_v2.rst
> new file mode 100644
> index 000000000000..3bcdd3aaebb5
> --- /dev/null
> +++ b/Documentation/virt/uml/user_mode_linux_howto_v2.rst
> @@ -0,0 +1,1304 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +#########
> +UML HowTo
> +#########

Please follow the markup conventions described in
Documentation/doc-guide/sphinx.rst.

> +:Author:  User Mode Linux Core Team
> +:Last-updated: Friday Sep 04 14:50:55 BST 2020

This isn't needed, that information is in the git commit history.

[...]

> +Why Would I Want User Mode Linux?
> +=================================
> +
> +
> +1. If User Mode Linux kernel crashes, your host kernel is still fine. It
> +   is not accelerated in any way (vhost, kvm, etc) and it is not trying to
> +   access any devices directly.  It is, in fact, a process like any other.
> +
> +#. You can run a usermode kernel as a non-root user (you may need to
> +   arrange appropriate permissions for some devices).

Please don't use the "#." notation.  Remember that we want the docs to be
just as readable in plain-text format.  If the enumeration (as opposed to
just bullets) is really needed, it's needed in plain text too.

> +#. You can run a very small VM with a minimal footprint for a specific
> +   task (f.e. 32M or less).

[...]

> +Creating an image
> +=================
> +
> +Create a sparse raw disk image:
> +
> +.. code-block:: shell
> +
> +    dd if=/dev/zero of=disk_image_name bs=1 count=1 seek=16G

I'd honestly do without all these code-block directives as well; they
clutter things considerably for little advantage.

[...]

> +*************************
> +Setting Up UML Networking
> +*************************
> +
> +UML networking is designed to emulate an Ethernet connection. This
> +connection may be either a point-to-point (similar to a connection
> +between machines using a back-to-back cable) or a connection to a
> +switch. UML supports a wide variety of means to build these
> +connections to all of: local machine, remote machine(s), local and
> +remote UML and other VM instances.
> +
> +.. csv-table:: Supported Transports
> +   :header: "Transport", "Type", "Capabilities", "Speed (on 3.5GHz Ryzen)"
> +   :widths: 20, 10, 30, 20
> +
> +    "tap", "vector", "checksum and tso offloads", "> 8Gbit"
> +    "hybrid", "vector", "checksum and tso offloads, multipacket rx", "> 6GBit"
> +    "raw", "vector", "checksum and tso offloads, multipacket rx, tx", "> 6GBit"
> +    "Ethernet over gre", "vector", "multipacket rx, tx", "> 3Gbit"
> +    "Ethernet over l2tpv3", "vector", "multipacket rx, tx", >" 3Gbit"

This is nearly unreadable in the plain text; please use a normal RST table
for this.

[...]

> +If the channel specification contains two parts separated by comma, the first one
> +is input, the second one output.
> +
> +1. The null channel - Discard all input or output. Example ``con=null`` will set all consoles to null by default.

Please stick to the 80-column limit, it really does affect the readability
of the text.

Thanks,

jon



More information about the linux-um mailing list