On 10/08/2016 01:37 PM, Paolo Bonzini wrote: >> Even though most put/get have no issues now, when somebody writes a new >> > put, he or she could run into issues if only checking the type >> > signature. It makes the code more readable. > No, it doesn't because one is left wondering what is VMS_LINKED about. I agree with Paolo. IMHO VMS_LINKED is conceptually difficult in a sense that it's quite different that what we have currently. I have the feeling, conceptually, we are trying to fit in something like data structures with a type parameter (the element type) here. AFAIU what vmstate currently can is directed acyclic graphs of certain stuff (and also completely custom handling based on custom put/get). > What is the relation between linked datastructures and passing some > arguments as NULL/noon-NULL? IFAIU we need those for the datastructure because it's linked and has a type parameter (element type). The two last arguments are for the element type. These were added by the previous patch because the old VMStateInfo did not need these. So we drastically changed the scope of VMStateInfo with the previous patch and I'm not sure I like this. I will have to stare at this a bit longer to bring something more constructive than these (largely feeling-based) remarks. Cheers, Halil