From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 53CD1A04B5; Sun, 13 Dec 2020 15:39:45 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A01E64C7B; Sun, 13 Dec 2020 15:39:43 +0100 (CET) Received: from inbox.dpdk.org (xvm-172-178.dc0.ghst.net [95.142.172.178]) by dpdk.org (Postfix) with ESMTP id CCB693257 for ; Sun, 13 Dec 2020 15:39:42 +0100 (CET) Received: by inbox.dpdk.org (Postfix, from userid 33) id 9B45AA09EE; Sun, 13 Dec 2020 15:39:41 +0100 (CET) From: bugzilla@dpdk.org To: dev@dpdk.org Date: Sun, 13 Dec 2020 14:39:41 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: DPDK X-Bugzilla-Component: core X-Bugzilla-Version: 20.08 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: odia@nvidia.com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: Normal X-Bugzilla-Assigned-To: dev@dpdk.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.dpdk.org/ Auto-Submitted: auto-generated X-Auto-Response-Suppress: All MIME-Version: 1.0 Subject: [dpdk-dev] [Bug 600] Windows DPDK real-time priority threads causing thread starvation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" https://bugs.dpdk.org/show_bug.cgi?id=3D600 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 polli= ng threads, which run in REALTIME_PRIORITY_CLASS are causing starvation to oth= er 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 mod= e. 2) The thread is blocking the system function NtSetSystemInformation (ExpUpdateTimerConfiguration) in another thread from=20 switching to core-0 via KeSetSystemGroupAffinityThread since the calling thread is priority 15.=20 3) NtSetSystemInformation exclusively acquired system-wide lock (ExpTimeRefreshLock) hence=20 it blocks other threads (e.g. calling NtQuerySystemInformation). Call stack of the issue (from windbg): # RetAddr : Args to Child=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20 : 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 --=20 You are receiving this mail because: You are the assignee for the bug.=