[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH] xen: Fix XenStore initialisation for XS_LOCAL
On 26.01.21 22:36, Boris Ostrovsky wrote: On 1/26/21 12:01 PM, David Woodhouse wrote:From: David Woodhouse <dwmw@xxxxxxxxxxxx> In commit 3499ba8198ca ("xen: Fix event channel callback via INTX/GSI") I reworked the triggering of xenbus_probe(). I tried to simplify things by taking out the workqueue based startup triggered from wake_waiting(); the somewhat poorly named xenbus IRQ handler. I missed the fact that in the XS_LOCAL case (Dom0 starting its own xenstored or xenstore-stubdom, which happens after the kernel is booted completely), that IRQ-based trigger is still actually needed. So... put it back, except more cleanly. By just spawning a xenbus_probe thread which waits on xb_waitq and runs the probe the first time it gets woken, just as the workqueue-based hack did. This is actually a nicer approach for *all* the back ends with different interrupt methods, and we can switch them all over to that without the complex conditions for when to trigger it. But not in -rc6. This is the minimal fix for the regression, although it's a step in the right direction instead of doing a partial revert and actually putting the workqueue back. It's also simpler than the workqueue.Wouldn't the minimal fix be to restore wake_waiting() to its previous if (unlikely(xenstored_ready == 0)) { xenstored_ready = 1; schedule_work(&probe_work); } (And to avoid changing xenbus_probe()'s signature just create a wrapper) David and I had a longer chat on IRC regarding this fix. The long term idea is to have just his current thread based variant for all cases calling xenbus_probe() (so no call of xenbus_probe() at any other place). We agreed that this approach would be too risky now, but we wanted to go in the right direction with the current fix. This is the outcome. Juergen Attachment:
OpenPGP_0xB0DE9DD628BF132F.asc Attachment:
OpenPGP_signature
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |