Hi Christoph,

On 14.08.20 10:58, Christoph Gerum wrote:
Hello,

Over the last few months, our team has been working on an automatic
configuration utility for jailhouse. As our effort now nears a usable
state, we would like to present it to the jailhouse community.

Our tooling is available on https://github.com/ekut-es/autojail

The documentation is available on
https://atreus.informatik.uni-tuebingen.de/~gerum/autojail/

The tooling works by extracting information about the target hardware
from the Linux runtime system (currently mainly
/sys/firmware/devicetree/),

As you are processing a device tree already, can you also consume an offline dtb?

Did you also already have a look at system-dt (https://elinux.org/Device_tree_future#System_Device_Tree_2019.2C_2020)? That could become the next logical step for dt-based systems.

and then generating jailhouse cell configs
for root- and guest cells from a minimal configuration file.

Important "detail": It comes with a new human-processable configuration format, you YAML schema, right? Is that format as powerful (or low-level) as the binary format, i.e. a full replacement of the current C files? Or does it provide abstractions like "give me 1GB, I don't care where", or "give me device B, with whatever I/O resources it comes"?

How is the (planned) workflow then? Currently on x86, you call "config create" and then perform manual tuning on the resulting C config for the root cell to make it work. I suspect that is what "autojail extract" is about. In your case, tuning would be done on to the yml file? How would will the workflow be for non-root cell configs?

Hint: Add a user story to your documents would help getting a big picture quicker.


It differs from the current jailhouse config in the following ways:


I suspect you meant the current config generator.

    - It targets aarch64 instead of x86_64.

A final architecture will have to address all archs, even if the input for x86 will remain different.

    - It supports configuration of guest and root cells.
    - It allows a simplified configuration of IVSHMEM_NET.

The current release has the following limitations, which we would like
to address in the coming weeks:

    - No generation of configuration for the inmates (networking,
device-tree)
    - Dead Simple Memory allocator that will probably give up at a
relatively low memory pressure.

Where does the memory allocator come into play?

    - Configuration of inter-cell communication is supported for
IVSHMEM_NET devices only
    - Only tested on Raspberry  PI 4B
    - No configuration of SMMU or other IOMMUs

The current release has so far only been tested on Raspberry PI 4B, and
this announcement mainly is here as a request for comments, and to
evaluate how our work might fit into the general jailhouse ecosystem.

    - Would there be interest to somehow integrate it more closely into
the jailhouse ecosystem?
    - We would be very interested, if we could use it as a configuration
generator for the current work on memory coloring in jailhouse.

Specifically coloring is a scenario where more tooling support for config generation and validation is needed, indeed. You may have seen that new "jailhouse config check" command which performs the latter (and should work with your approach as well as it processes binary configs), but we also need more of the former.

So, yes, there is definitely interest in new ideas and concrete solutions, specifically for arm64 (though not only). After having to refactor configs/ recently, more than once, I would appreciate a lot if we could reduce the manual maintenance.

What needs careful thoughts are the possible use cases and workflows. We need a solution that automates what can be safely automated, ideally warns when user input or validation is needed and does not stand in the way when manual tweaking must be applied. That is due to the low abstraction level of the binary config format the hypervisor consumes.

Jan

--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux

--
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/a588e2a5-b7cd-7df8-7341-2e7f9da79b6f%40siemens.com.

Reply via email to