On Fri, 13 Dec 2019 17:50:02 +0100 Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote: > On 2019-12-13 10:50, Cornelia Huck wrote: > > [This also got me thinking about your start_subchannel function > > again... do you also want to allow flags like e.g. SLI? It's not > > unusual for commands to return different lengths of data depending on > > what features are available; it might be worthwhile to allow short data > > if you're not sure that e.g. a command returns either the short or the > > long version of a structure.] > > I would prefer to keep simple it in this series if you agree. Sure, that's fine. > > AFAIU the current QEMU implementation use a fix length and if a short > read occurs it is an error. > Since we test on PONG, there should be no error. It all depends on how the QEMU device is supposed to work. For a command reading/writing some data, I'd usually expect the following: - If SLI is not set, require the length to be the exact value expected by the device; otherwise, generate an error. - If SLI is set, require the length to be between the minimum length that makes sense and the full length of the buffer; otherwise, generate an error. Of course, if minimum length == full length, SLI has no real effect :) > > I agree that for a general test we should change this, but currently the > goal is just to verify that the remote device is PONG. > > If we accept variable length, we need to check the length of what we > received, and this could need some infrastructure changes that I would > like to do later. You mean at the device level? At the driver level (== here), you should simply get an error or not, I guess. > > When the series is accepted I will begin to do more complicated things like: > - checking the exceptions for wrong parameters > This is the first I will add. Agreed, that's probably the most useful one. > - checking the response difference on flags (SLI, SKP) > - using CC and CD flags for chaining > - TIC, NOP, suspend/resume and PCI > > These last one will be fun, we can also trying to play with prefetch > while at it. :) I think any kind of ccw chain will already be fun :) It's probably not so well tested anyway, as virtio is basically single-command.