
On 03/24/2015 07:41 AM, Ján Tomko wrote:
On Mon, Mar 23, 2015 at 05:46:23PM -0400, John Ferlan wrote:
...
Mostly for my edification... These examples previously although indicating they were "auto-assign" (of sorts) really weren't - they were more force-assign for each example.
Force-assign after this patch? Otherwise I don't understand.
I started writing this before figuring out the second part and just didn't go back re-read my original thought... But I think I was trying to point out that the "existing" code doesn't really auto assign and after your patch these changes are doing that, hence why set to port='0'... I agree with not force-assign, but was just making sure...
The way to auto-assign is by setting port='0', correct?
Yes.
However, I'm still missing something from the *auto.args output. It seems the controller='#' is ignored and I guess I don't understand that...
I must've overlooked that. It shouldn't be a problem to take it as a hint in virDomainVirtioSerialAddrAssign.
Right so I figured out after I sent this, but figured you'd know that anyway.
Sure "port='0'" (meaning first available port on the controller), but I would have expected to see :
kvm.port.0 use "virtio.serial.0.0,nr=1..." (which it does) kvm.port.foo use "virtio.serial.1.0,nr=1..." (on controller 0?, but XML has controller='1') kvm.port.bar use "virtio.serial.1.0,nr=3..." (which it does) kvm.port.wizz use "virtio.serial.0.0,nr=2" (incorrect due to others) kvm.port.ooh use "virtio.serial.1.0,nr=2", (on controller 0?, but XML has controller='1' kvm.port.lla use "virtio.serial.2.0,nr=1" (on controller 0?, but XML has controller='2')
Now if been if "lla" used controller='0', then I assume would nr=4 be chosen since 1,2 were auto-assigned, 3 was specifically assigned, thus 4 would be the next one.
Continuing with that same logic, the *-autoassign example could have shown that if controller='0',port='2' and 'controller='1',port='1' were preassigned, then the controllers/ports assigned would be 0.0,nr=1, 0.0,nr=3, 0.0,nr=4, 1.0,nr=2 (since only 4 ports on controller='0' can be used w/ 2 be static and controller='1' having port '1' already in use).
nr=4 is out of bounds for a controller with 4 ports. The ports are numbered from 0, but port number 0 can only be used for virtconsoles, not channels.
Oh yeah - right...doh! Too much context switching sometimes causes loses of brain to finger functions... John