I spent some time cleaning up and documenting all this. There are likely
still some things to fix/improve, but we need some user feedback at some
point. Should start a long release-candidate cycle by doing a 1.3rc1
with the current trunk and fix many remaining things in the next RCs?
The worst that could happen is people disagreeing with the way we store
I/O object in the topology. It's better to get feedback about that early.
Ideally, we would only have to improve the documentation and some
"minor" things like the way command-line tools manipulate I/O devices.
We can fix these after rc1.
For the record, I changed the way to specify I/O devices on the
command-line (hwloc-bind and hwloc-calc):
* pci=0000:00:03.2 for specifying a pci device by bus ID (domain is
optional, function and device are not yet)
* os=eth0 for specifying the "eth0" software/OS device
This new "equal" sign becomes a way to find a object by a unique identifier.
We actually also support pci:vendor:device:index but I didn't document
this one because I am not sure it will help in the end. If there's a
single PCI device with these vendor/device IDs, no need to specify its
index. If there are multiple of them, it's nearly impossible for the
application to know whether it's using the first or the second one (PCI
numbering varies with OS/BIOS/...).
By the way, while documenting all this, I found out that "software
device" may be a better name than our current "OS device".