From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [dpdk-dev] [Bug 600] Windows DPDK real-time priority threads causing thread starvation
Date: Sun, 13 Dec 2020 14:39:41 +0000 [thread overview]
Message-ID: <bug-600-3@http.bugs.dpdk.org/> (raw)
https://bugs.dpdk.org/show_bug.cgi?id=600
Bug ID: 600
Summary: Windows DPDK real-time priority threads causing thread
starvation
Product: DPDK
Version: 20.08
Hardware: All
OS: Windows
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: core
Assignee: dev@dpdk.org
Reporter: odia@nvidia.com
Target Milestone: ---
During our verification tests on Windows DPDK we've noticed that DPDK polling
threads, which run in REALTIME_PRIORITY_CLASS are causing starvation to other
threads from the OS which need to change affinity and run in lower priority.
While running an application for a while we see the OS thread waits for 2:30
minutes and raises a bugcheck, see below example of such flow:
1) DPDK thread running on core-0 in real-time high priority(24) polling mode.
2) The thread is blocking the system function NtSetSystemInformation
(ExpUpdateTimerConfiguration) in another thread from
switching to core-0 via KeSetSystemGroupAffinityThread since the calling
thread is priority 15.
3) NtSetSystemInformation exclusively acquired system-wide lock
(ExpTimeRefreshLock) hence
it blocks other threads (e.g. calling NtQuerySystemInformation).
Call stack of the issue (from windbg):
# RetAddr : Args to Child
: Call Site
00 fffff802`4f43abba : fffff802`4f80bd20 fffffe0d`9d18e838 fffffe0d`00010224
fffff802`4f564050 : nt!ExpWaitForResource+0x1576d2
01 fffff802`4fabbd66 : fffffe0d`9d18eb80 00000000`00000000 00000000`0000002c
00000040`738fc2f0 : nt!ExAcquireResourceExclusiveLite+0x18a
02 fffff802`4f9bc3e9 : 00000000`00000000 00000040`00028000 0000017e`dc3be000
00000000`00000000 : nt!ExAcquireTimeRefreshLock+0x22
03 fffff802`4f9bb83b : 00000000`00000000 00000000`00002001 0000017e`dc3a7d90
00000000`00000000 : nt!ExpQuerySystemInformation+0xa89
04 fffff802`4f5ce605 : ffffae0f`258382c0 0000017e`dc3699d0 fffffe0d`9d18eb80
ffffae0f`2c96c2e0 : nt!NtQuerySystemInformation+0x2b
05 00007ffa`b0befe24 : 00007ffa`acd300d1 00007ffa`9fa5d858 0000017e`dbb3e130
00000000`0000004a : nt!KiSystemServiceCopyEnd+0x25
06 00007ffa`acd300d1 : 00007ffa`9fa5d858 0000017e`dbb3e130 00000000`0000004a
00007ffa`9f9d8269 : ntdll!NtQuerySystemInformation+0x14
07 00007ffa`8a35dcc4 : 0000017e`dc5534d4 00000000`00000000 00000000`00000000
0000017e`dc3bd110 : KERNELBASE!GetTimeZoneInformation+0x51
08 00007ffa`9e019abc : 0000017e`dc3814f0 00000040`738fc670 00007ffa`9e209540
0000017e`dc3814f0 : framedynos!CInstance::SetDateTime+0x264
09 00007ffa`9e01a2f5 : 0000017e`dc3bd110 00000000`00000000 00007ffa`9e209540
0000017e`dc3814f0 : cimwin32!Process::LoadCheapPropertiesNT+0x45c
0a 00007ffa`8a3559a2 : 00000000`00000000 0000017e`dc380b70 00000000`00000000
0000017e`dc383410 : cimwin32!Process::Enumerate+0x155
0b 00007ffa`8a356f9d : 00000000`00000000 00000040`738fde09 0000017e`dc380b70
0000017e`00000000 : framedynos!Provider::ExecuteQuery+0x92
0c 00007ff6`337527f5 : 0000017e`dbb3a380 0000017e`dbad5690 0000017e`dba750f8
0000017e`dbb3a370 : framedynos!CWbemProviderGlue::ExecQueryAsync+0x21d
0d 00007ff6`33752473 : 00000000`00000000 00000000`00000000 0000017e`dba75010
00000000`00001000 :
wmiprvse!CInterceptor_IWbemSyncProvider::Helper_ExecQueryAsync+0x2b5
0e 00007ffa`aee07853 : 0000017e`00000000 0000017e`dbae5cc8 0000017e`dc5504c8
00000000`00000000 :
wmiprvse!CInterceptor_IWbemSyncProvider::ExecQueryAsync+0x143
--
You are receiving this mail because:
You are the assignee for the bug.
next reply other threads:[~2020-12-13 14:39 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-13 14:39 bugzilla [this message]
2021-03-16 15:13 ` [dpdk-dev] [Bug 600] Windows DPDK real-time priority threads causing thread starvation bugzilla
2021-03-30 10:30 ` bugzilla
2021-04-01 23:44 ` bugzilla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-600-3@http.bugs.dpdk.org/ \
--to=bugzilla@dpdk.org \
--cc=dev@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.