Comment 0 for bug 1470091

Revision history for this message
Andy Whitcroft (apw) wrote :

Fan V2 to V3 transition plan
============================

Currently we have V2 Fan kernel patches paired with an
/etc/defaults/ubuntu-fan based single fan mapping setup. We want to
transition to both V3 Fan kernel patches with fanctl based configuration
allowing multiple fans to be configured together.

The new V3 kernel bits fix a significant limitation wherein we could not
have multiple slices of different overlay address ranges on the same local
address. This update introduces an incompatible kernel interface against
a different device. The new functionality is a full superset of the old.

The new V3 kernel bits require updated iproute2 patches to handle the
new netlink form carrying the expanded map forms.

In order to manage multiple Fan devices we are updating ubuntu-fan to use
the new fanctl command line tool and a new fan specific configuration file.

This plan assumes we are not wedded to the kernel interface, that the
supported API is the /etc/defaults/ubuntu-fan fan configuration.

Considerations
==============
We are unable to depend on kernel features, as we have no meaninful
dependencies to kernel versions.

We need to change the primary configuration file and format for ubuntu-fan
package to allow multiple slices of multiple fans to be configured
together.

We have V2 kernel bits in the wild. We have V2 iproute in the wild.

Steps
=====
1) update fanctl to support both the V2 and V3 kernel interfaces as we cannot
   depend on a kernel version meaningfully.
2) update iproute2 to support configuring both V2 and V3 kernel interfaces.
3) update ubuntu-fan with the updated fanctl, supporting migration
   of the /etc/default/fan contents to /etc/network/fan (or directly
   handling that form), and depending on the updated iproute2 bits.
4) release updated iproute2 bits.
5) release updated ubuntu-fan bits.
6) release updated kernel bits (V3 kernel module).

Testing
=======
Need to test old and new kernels with old and new ubuntu-fan levels.
We obviously do not expect the old userspace to work with the new kernels,
but it should fail obviously.