Il 27/06/2013 04:08, liu ping fan ha scritto:
>> > qdev_free is triggered by the guest, but free is a misnomer.  It is
>> > really "make it inaccessible from the guest and management" (the kernel
>> > equivalent would be removal of /dev and /sys entries, for example).  The
>> > actual "free" will happen later.
>
> Without seeing your detail design, but I suggest that leaving the
> "exit" as it is, and pick out the inaccessible related code to
> removal.

We already have a reclamation point, it is instance_finalize.

I posted a series a few weeks ago ("[PATCH 00/39] Delay destruction of
memory regions to instance_finalize").

> Finally, when refcnt->0, exit is called, and it play as the
> final sync point for the remaining access.

It is the guest that determines when to start the removal phase.  That's
qdev_free.

refcnt = 0 means that the memory is inaccessible to the guest, and
that's when the reclamation phase is started (asynchronously: the
instance_finalize callback is actually called at the end of the RCU
grace period).

Paolo

Reply via email to