[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: Races in power IRP handling path.
- To: Paul Durrant <xadimgnik@xxxxxxxxx>, "win-pv-devel@xxxxxxxxxxxxxxxxxxxx" <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
- From: Martin Harvey <martin.harvey@xxxxxxxxxx>
- Date: Wed, 12 Oct 2022 12:11:35 +0000
- Accept-language: en-US
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=01qdm5E8mA9G1tKeNJqMJYOIcMd/45TO44graWhRvPc=; b=XpZbBxYwiyBLiPtxw4gdBytyLjlPJOURnrfekfAQpnlBsJJRYpMqnY48B5JUDQEM2sUf6o9oQmZUeNV+7PrqNP0sLg26yWpnYhWMJxDQVHRSIeOeRpl/FfWbhOHNXQf3g07f2QsNw1E20rJDBzpyq+OYukJ5yxvifXx31qFwD9gseRyvC51rcb+210uFeHO/dqTLiySDNEjesWYa5KCzq9kfDe03NkUpNJJ46Hlb3p3lgFSzCiZ8MY9r+Tm7h5oeTWhKVQzfQBg78NONWX2CRmZRUt3d8KA4/jaTA4a59eO2n+foEF0xv9HzRqVZLZsiiK4JiAGt5/G8KXgbCoFTTA==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I9ez8/c8J1y8m/Gx8OjqOtwjgW5kKzpK7+uTQaZ2KEpN1PZkyATA0at72+gIIE/varuNlyasD3kGfxwKRJEtMG9JMj+1uemP5ve9cIK4dIC8K2KQ0SPVh1OjTm/Kg69/aGwLJEtglWlnqm3Gq4qPqwZkCt2NEzMQcsz0qV76WcHzE+DI/ZQ4FRBeokZqlKZWm4nm+b0jA/I9hZlXkhvtzxTWvk3QRbUFOfes4w3RXPv67pdIUZj5gDuGlHYR4Eg4hfjvhKe4plndQHtwbW+E3cfJIhsphOgazUyMPlIZPDzfay8guYguErarLuM4HHhr9IZkhzozea7H2LmHIBNzmw==
- Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
- Delivery-date: Wed, 12 Oct 2022 12:11:46 +0000
- Ironport-data: A9a23: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
- List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>
- Thread-index: AdjdfgIYsgA4b4/cQtWn6fzH2WpcQgAAk9gAACyk8cA=
- Thread-topic: Races in power IRP handling path.
Okay. Well, if no-one else is covering the outstanding power issues (there are
a few bugchecks down the powerdown / hibernation path) then I'll address them
as follows:
- Some revisions of the OS may have had a system power thread / and a device
power thread per stack, we shouldn't need to replicate that bit of structure in
our drivers (none of the others do).
- It should be possible to handle power IRP's with standard dispatch and
completion routines most of the time. Only reason I can see to farm the work
off into a separate thread is if the IRQL is not suitable. In such cases,
Marking IRP pending with later completion should be fine, exception being
blocking power-irps, where we have to "continue" a completion chain. Since we
can't fail power IRP's could always succeed these, and pass off the real work
into a work item.
- Issues with completions not being called - perhaps multiple drivers marking
as pending down the stack? Hopefully an async model will help this. I will
need to remove the xenfilt handling to get to the bottom of what's going on
here.
- I'll have to rewrite the FDO handling before the bus drivers (I'm afraid).
This might or might not fix all the outstanding bugchecks (prob not).
- An asynchronous / state driver model is to be far preferred to synchronous
passdown.
MH.
|