On Fri, 2010-06-11 at 10:48 +0200, Gerd Hoffmann wrote: > On 06/10/10 17:21, Alex Williamson wrote: > > On Thu, 2010-06-10 at 15:49 +0100, Paul Brook wrote: > >>> Ok, we can certainly do<vmsd->name>.<vmsd->instance>\<driver string>. > >>> It seems like this highlights a deficiency in the vmstate matching > >> > >> Why are you forcing this to be a string? > > > > It seemed like a good way to send an identifier. What do you suggest? > > Do it the same way savevm handles device state? I think it simply puts > a u32 for the instance id. I see, so then we'd have: uint8 - string length (should we decide to go with a variable length) buffer - "<vmsd->name>\<driver string>" uint32 - instance_id I'm not sure I see the benefit to that since then we'd have to do both a strcmp and an instance_id match. It's unlikely we'll have instance_ids large enough that even make it a space savings in the protocol stream versus "name.id" ("e1000.0"). The trouble I'm running into is that the SaveStateEntry.instance_id is effectively private, and there's no easy way to associate a SaveStateEntry to a device since it passes an opaque pointer, which could be whatever the driver decides it wants. I'm wondering if we should pass the DeviceState pointer in when registering the vmstate so that we can stuff the instance_id into the DeviceInfo. Or maybe DeviceInfo should include a pointer to the SaveStateEntry. It all seems pretty messy. Any thoughts? Alex -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html