|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH xenvif] Replace uses of MmAllocatePagesForMdlEx in __AllocatePages()...
> -----Original Message-----
> From: Jan Bakuwel <jan.bakuwel@xxxxxxxxx>
> Sent: 17 June 2020 22:11
> To: paul@xxxxxxx; win-pv-devel@xxxxxxxxxxxxxxxxxxxx
> Cc: Durrant, Paul <pdurrant@xxxxxxxxxxxx>
> Subject: RE: [EXTERNAL] [PATCH xenvif] Replace uses of
> MmAllocatePagesForMdlEx in __AllocatePages()...
>
> CAUTION: This email originated from outside of the organization. Do not click
> links or open
> attachments unless you can confirm the sender and know the content is safe.
>
>
>
> Hi Paul,
>
> On 18/06/20 3:02 am, Paul Durrant wrote:
> >> -----Original Message-----
> >> From: win-pv-devel <win-pv-devel-bounces@xxxxxxxxxxxxxxxxxxxx> On Behalf
> >> Of Paul Durrant
> >> Sent: 16 June 2020 14:03
> >> To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
> >> Cc: Paul Durrant <pdurrant@xxxxxxxxxx>
> >> Subject: [PATCH xenvif] Replace uses of MmAllocatePagesForMdlEx in
> >> __AllocatePages()...
> >>
> >> From: Paul Durrant <pdurrant@xxxxxxxxxx>
> >>
> >> ... again.
> >>
> >> Commit 4f85d004 "Replace uses of MmAllocatePagesForMdlEx in __AllocatePage"
> >> modified __AllocatePage() (only) to use
> >> MmAllocateContinguousMemorySpecifyCache() as its source of memory. As
> >> stated
> >> in that commit:
> >>
> >> "Windows appears to have an edge case bug in which zeroing memory using
> >> MmAllocatePAgesForMdlEx (which in Win 10 1803 happens even if you specify
> >> MM_DONT_ZERO_ALLOCATION) can cause a BSOD 139 1e."
> >>
> >> That commit was reverted by e8fe14f6 since it was believed that the bug in
> >> Windows had been fixed. Subsequently, however, the same symptoms have been
> >> seen with recent updates of Server 2019. The stack is generally of the
> >> form:
> >>
> >> nt!KeBugCheckEx
> >> nt!KiBugCheckDispatch+0x69
> >> nt!KiFastFailDispatch+0xd0
> >> nt!KiRaiseSecurityCheckFailure+0x30e
> >> nt!KiAcquireThreadStateLock+0x11fa90
> >> nt!KeSetIdealProcessorThreadEx+0xd0
> >> nt!MiZeroInParallelWorker+0x115016
> >> nt!MiZeroInParallel+0x11c
> >> nt!MiInitializeMdlBatchPages+0x2ae
> >> nt!MiAllocatePagesForMdl+0x192
> >> nt!MmAllocatePartitionNodePagesForMdlEx+0xc9
> >> nt!MmAllocatePagesForMdlEx+0x4d
> >>
> >> Hence, this patch re-instates the fix originally put in place by 4f85d004
> >> but generalizes it to include AllocatePages() rather than just
> >> AllocatePage().
> >>
> >> Reported-by: Jan Bakuwel <jan.bakuwel@xxxxxxxxx>
> >> Signed-off-by: Paul Durrant <pdurrant@xxxxxxxxxx>
> >> ---
> >>
> >> This fix will also be propogated to all other PV drivers.
> > This is actually failing in xenvbd, trying to allocate 2 pages for the
> > shared ring, so I'm going to
> try the simpler alternative of
> > continuing to use MmAllocatePagesForMdlEx() but without passing the "don't
> > zero" flag.
>
> Many thanks. Will you apply the fix to both 8.2.2 and 9.0 drivers?
>
> I've raised on issue in the xcp-ng/xcp github repo linking to the mail
> archive of this list, so hopefully the patches will be pulled in there
> as well. The XCP-NG driver (so far) is the only one I can install
> without issues on Windows 2019 Server.
>
Hi Jan,
I'll apply the fix for 9.0 and then let it churn through the build system. I
would appreciate it if you could things when they are ready. I'm not plan to
apply the fix to the 8.2 branch at this point though.
Cheers,
Paul
> Jan
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |