Port-xen archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: [domU suspend/resume] Interrupts and event channel code
On Mon, May 12, 2008 at 05:18:03PM +0200, Jean-Yves Migeon wrote:
> Manuel Bouyer wrote:
> >>Which basically removes the handler for xenstored wakeup() calls, in
> >>case xenbus_irq() != 0. Any code path I am not aware of, which
> >>manipulates the xenstored handler and xenbus_irq before xenbus attach?
> >>From my PoV, the event_remove_handler() will never be called here.
> >>
> >I think it's related to suspend/resume, precisely. When xb_init_comms()
> >is called again after a resume, the event channel may have changed, so
> >you have to remove the old one before setting up a new one.
> >Maybe on NetBSD it can be done in a different way.
> >
> >>BTW, shouldn't the handler removal operation rather be part of a
> >>_detach() routine for xenbus?
> >>
> >For suspend/resume you don't want to detach/reattach xenbus, because it'd
> >also means to detach/reattach the child devices.
> >
> Huh, I just noticed I was not clear on this point.
>
> We have two possibilities here (as there are many parts elsewhere, like
> console, where we can do with two different ways):
> 1 - either check upon resuming that the event channels/parameters have
> changed, and update the values accordingly (done in the resume handler code)
> 2 - or invalidate them when calling suspend handlers, and reinstate them
> upon resume.
>
> Option 2 looks cleaner to me. It would make sense to invalidate events
> associated to comms between dom0 and domUs at the same time (especially
> when we are detaching wd* block devices, for example).
Sure, Option 2 looks better.
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index