[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] xen: Fix XenStore initialisation for XS_LOCAL
- To: David Woodhouse <dwmw2@xxxxxxxxxxxxx>, Jürgen Groß <jgross@xxxxxxxx>, x86@xxxxxxxxxx
- From: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
- Date: Tue, 26 Jan 2021 16:36:41 -0500
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MjaBl2bwap93hpQHomgGidTwdzEE6FGZpMkG6vFc0I8=; b=eOJcn/peXpF8t/qzS6R1S648QqxBneBOteEujiqSRLkFe0LfkO/zIboVG3AE4yiwUtvF813FWQKRqa50FCNuIokQblm86EjMNijl6FraeACwEL+LkAmniZUEyzHehik0Mr64MWm/gb8VEAET4DfZwZdetLMuQxpGb9HENkrhT2F+sDKEn+0EXnjDOtlQ/gSWTw1OG6xkZ8tNtJXgL9J544yXnGdlXOoSE5lJbrAiVmXM81gTdI6TLyAquXSansBI3GnDTap4US9kM0q5DeWRaJaL8in++gL8jWVp7cqJ68B544B7n2XagJZ+dHZrFsCQkZ0OGovBuOjQ1D3lEjEg/A==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kfl8aDDHaklK/KljYpWXAasja7lTIhfcT3u3mrG9ftwhoe1R/M9RCU5oHqu6gvBj7jjXtef9tAb9gi8SGXgqQKQdUfoISe3zNsMsWo5DQ7MBYjJT8iAxVRSz2b0poddC3jZyNnM3Cu1uACdzc/FfacDjEZT6XUwqiKQAuBU2FfuOvjHqp/4XM1CINKss1gD1++9R07TAnKkeMdUGwKGmYkvZ0F96g/yZv3UoeBRKsjJquATEwSiYJRwZp0YsUw1Z9a80SV4Jd58EDXFSvmCtCXZk5737LbWq/AbDv6DBKBuRB5KvXnHBMCnTFXUCOa6jELTdcR1pJe5ZBFj+x6wArQ==
- Authentication-results: lists.xenproject.org; dkim=none (message not signed) header.d=none;lists.xenproject.org; dmarc=none action=none header.from=oracle.com;
- Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Paul Durrant <pdurrant@xxxxxxxxxx>, jgrall@xxxxxxxxxx, karahmed@xxxxxxxxx, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
- Delivery-date: Tue, 26 Jan 2021 21:39:11 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
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)
-boris
|