[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.