Sorry for coming so late to this thread... Alon Levy <al...@redhat.com> writes:
> On Thu, Oct 21, 2010 at 08:13:19AM -0500, Anthony Liguori wrote: >> On 10/21/2010 08:03 AM, Gerd Hoffmann wrote: >> >On 10/21/10 08:36, Alon Levy wrote: >> >>v2->v3 changes: >> >> * add configure parameter >> >> * fix docs >> >> >> >>v2 message: >> >>This patchset uses id like device_del for attaching/detaching usb >> >>devices. The first two patches ready the way: >> >> 1. makes qdev_find_recursive non static and in qdev.h >> >> 2. adds a usb_device_by_id which goes over the usb buses calling >> >> qdev_find_recursive >> >> 3. adds the commands that use usb_device_by_id >> >> >> >>Alon Levy (3): >> >> qdev: make qdev_find_recursive public >> >> usb: add public usb_device_by_id >> >> monitor: add usb_attach and usb_detach (v2) >> >> >> > >> >Acked-by: Gerd Hoffmann <kra...@redhat.com> >> >> Okay, I am still confused about the use-case for this and I don't >> see any further explanation in the commit messages. I've seen >> "debugging" but can you be a bit more specific about which cases >> it's needed for? >> > > I use it for debugging the usb-ccid device. I think it's useful for > any other usb device tests as well. The existing commands are not > good enough to do a remove/insert of a usb device, since deleting > a device also deletes any chardev associated with it, and there is > no monitor command to add a chardev. Also sometimes you don't want > to close the chardev, just have the guest see a removal/reinsert of > the device. [...] Let's see whether I get you: detach removes the device, but doesn't destroy it. The only thing you can do with a detached device is attach it. Detach+attach is basically the same as del+add with the same configuration. Except shortcomings in our command set make it impossible to recreate the configuration sometimes. Correct? Questions: 1. If we add commands so that you can always recreate the configuration, is detach+attach still useful? Why? 2. Why is this a USB problem, and not a general problem? In other words, why usb_{detach,attach}, and not device_{detach,attach}?