[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20131113091408.GH22256@yliu-dev.sh.intel.com>
Date: Wed, 13 Nov 2013 17:14:08 +0800
From: Yuanhan Liu <yuanhan.liu@...ux.intel.com>
To: John Stultz <john.stultz@...aro.org>
Cc: Fengguang Wu <fengguang.wu@...el.com>,
Huang Ying <ying.huang@...el.com>, linux-kernel@...r.kernel.org
Subject: performance regressions by "seqcount: Add lockdep functionality to
seqcount/seqlock structures"
Hi,
FYI, we found some performance regressions caused by commit 1ca7d67c
("seqcount: Add lockdep functionality to seqcount/seqlock structures")
---
1ca7d67cf5d5a2aef26a8d9afd789006fa098347 is the first bad commit
commit 1ca7d67cf5d5a2aef26a8d9afd789006fa098347
Author: John Stultz <john.stultz@...aro.org>
Date: Mon Oct 7 15:51:59 2013 -0700
seqcount: Add lockdep functionality to seqcount/seqlock structures
Currently seqlocks and seqcounts don't support lockdep.
After running across a seqcount related deadlock in the timekeeping
code, I used a less-refined and more focused variant of this patch
to narrow down the cause of the issue.
This is a first-pass attempt to properly enable lockdep functionality
on seqlocks and seqcounts.
Since seqcounts are used in the vdso gettimeofday code, I've provided
non-lockdep accessors for those needs.
I've also handled one case where there were nested seqlock writers
and there may be more edge cases.
Comments and feedback would be appreciated!
Signed-off-by: John Stultz <john.stultz@...aro.org>
Signed-off-by: Peter Zijlstra <peterz@...radead.org>
Cc: Eric Dumazet <eric.dumazet@...il.com>
Cc: Li Zefan <lizefan@...wei.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@...icios.com>
Cc: Steven Rostedt <rostedt@...dmis.org>
Cc: "David S. Miller" <davem@...emloft.net>
Cc: netdev@...r.kernel.org
Link: http://lkml.kernel.org/r/1381186321-4906-3-git-send-email-john.stultz@linaro.org
Signed-off-by: Ingo Molnar <mingo@...nel.org>
:040000 040000 cfee9d56dac9192e1ff45a0bb1dfb953c87798a8 c99b3921b61be2bac7de96bdc68fa4a3ecbe7ded M arch
:040000 040000 9ded4e8cc971a768488ab0041962c1f2edc15927 9fb40a547f803cd36ccadb8f2c03311cbee021b5 M fs
:040000 040000 715572039d89ec3c5a61ee96e2b8058291b39d0a 682f4023369ce622b66ffb6a7a3e0d7b478a6c51 M include
:040000 040000 fddfb5e3c86bb930bdb979185b059904a469b919 8dd70520aebac4f7abaeaf40a8dfedbbee0029aa M mm
bisect run success
# bad: [b132a89a2bd3020081e2b9af82af88f2ce7e8065] Merge 'clk/clk-next' into devel-hourly-2013111208
# good: [5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52] Linux 3.12
git bisect start 'b132a89a2bd3020081e2b9af82af88f2ce7e8065' '5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52' '--'
# good: [3eb5b6a57cdd494e8e39d8faef0b4f63b8c51e1c] Merge branch 'next/dt' into HEAD
git bisect good 3eb5b6a57cdd494e8e39d8faef0b4f63b8c51e1c
# bad: [18b43ee507b9383e1dd1b4af9243346aaa3dd488] Merge 'tip/sched/core' into devel-hourly-2013111208
git bisect bad 18b43ee507b9383e1dd1b4af9243346aaa3dd488
# good: [ac51bb09837098c422a8825bc155ccd736b9632d] drm/nouveau/core: Allow asymmetric nouveau_event_get/_put
git bisect good ac51bb09837098c422a8825bc155ccd736b9632d
# good: [18e30be0b99a9545bc18d131398c45b74ab992d4] Merge remote-tracking branch 'drm-upstream/drm-next' into drm-intel-nightly
git bisect good 18e30be0b99a9545bc18d131398c45b74ab992d4
# good: [e5137b50a0640009fd63a3e65c14bc6e1be8796a] ftrace, sched: Add TRACE_FLAG_PREEMPT_RESCHED
git bisect good e5137b50a0640009fd63a3e65c14bc6e1be8796a
# good: [e78709cd691cd62ce04c9d22f9df1de4c3fd1595] Merge 'shawnguo/staging-3.13' into devel-hourly-2013111208
git bisect good e78709cd691cd62ce04c9d22f9df1de4c3fd1595
# good: [ecf1f014325ba60f4df35edae1a357c67c5d4eb1] Merge branch 'core/rcu' into core/locking, to prepare the kernel/locking/ file move
git bisect good ecf1f014325ba60f4df35edae1a357c67c5d4eb1
# good: [3378b7f40d79930f0f447a164c7e8fcbe4480e40] nfsd4: fix discarded security labels on setattr
git bisect good 3378b7f40d79930f0f447a164c7e8fcbe4480e40
# good: [32cf7c3c94623514eb882addae307212c1507239] locking: Move the percpu-rwsem code to kernel/locking/
git bisect good 32cf7c3c94623514eb882addae307212c1507239
# bad: [67a6de49bf545c34eb8dee99abbb92d9ea268200] locking/doc: Update references to kernel/mutex.c
git bisect bad 67a6de49bf545c34eb8dee99abbb92d9ea268200
# bad: [1ca7d67cf5d5a2aef26a8d9afd789006fa098347] seqcount: Add lockdep functionality to seqcount/seqlock structures
git bisect bad 1ca7d67cf5d5a2aef26a8d9afd789006fa098347
# good: [827da44c61419f29ae3be198c342e2147f1a10cb] net: Explicitly initialize u64_stats_sync structures for lockdep
git bisect good 827da44c61419f29ae3be198c342e2147f1a10cb
# first bad commit: [1ca7d67cf5d5a2aef26a8d9afd789006fa098347] seqcount: Add lockdep functionality to seqcount/seqlock structures
Here is a performance regression list we got so far:
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
6156637.80 -27.9% 4439431.60 lkp-sbx04/micro/will-it-scale/pread1
6156637.80 -27.9% 4439431.60 TOTAL will-it-scale.pread1.8.processes
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
13396131.20 -25.8% 9937484.80 lkp-sbx04/micro/will-it-scale/pread2
13396131.20 -25.8% 9937484.80 TOTAL will-it-scale.pread2.16.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
26792262.40 -25.8% 19874969.60 lkp-sbx04/micro/will-it-scale/pread2
26792262.40 -25.8% 19874969.60 TOTAL will-it-scale.pread2.32.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
20094196.80 -25.8% 14906227.20 lkp-sbx04/micro/will-it-scale/pread2
20094196.80 -25.8% 14906227.20 TOTAL will-it-scale.pread2.24.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
53584524.80 -25.8% 39749939.20 lkp-sbx04/micro/will-it-scale/pread2
53584524.80 -25.8% 39749939.20 TOTAL will-it-scale.pread2.64.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
40188393.60 -25.8% 29812454.40 lkp-sbx04/micro/will-it-scale/pread2
40188393.60 -25.8% 29812454.40 TOTAL will-it-scale.pread2.48.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
6698065.60 -25.8% 4968742.40 lkp-sbx04/micro/will-it-scale/pread2
6698065.60 -25.8% 4968742.40 TOTAL will-it-scale.pread2.8.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
837258.20 -25.8% 621092.80 lkp-sbx04/micro/will-it-scale/pread2
837258.20 -25.8% 621092.80 TOTAL will-it-scale.pread2.1.processes
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
837258.20 -25.8% 621092.80 lkp-sbx04/micro/will-it-scale/pread2
837258.20 -25.8% 621092.80 TOTAL will-it-scale.pread2.1.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
40202380.80 -25.8% 29840668.80 lkp-sbx04/micro/will-it-scale/pread1
40202380.80 -25.8% 29840668.80 TOTAL will-it-scale.pread1.48.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
20101190.40 -25.8% 14920334.40 lkp-sbx04/micro/will-it-scale/pread1
20101190.40 -25.8% 14920334.40 TOTAL will-it-scale.pread1.24.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
6700396.80 -25.8% 4973444.80 lkp-sbx04/micro/will-it-scale/pread1
6700396.80 -25.8% 4973444.80 TOTAL will-it-scale.pread1.8.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
53603174.40 -25.8% 39787558.40 lkp-sbx04/micro/will-it-scale/pread1
53603174.40 -25.8% 39787558.40 TOTAL will-it-scale.pread1.64.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
837549.60 -25.8% 621680.60 lkp-sbx04/micro/will-it-scale/pread1
837549.60 -25.8% 621680.60 TOTAL will-it-scale.pread1.1.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
837549.60 -25.8% 621680.60 lkp-sbx04/micro/will-it-scale/pread1
837549.60 -25.8% 621680.60 TOTAL will-it-scale.pread1.1.processes
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
26801587.20 -25.8% 19893779.20 lkp-sbx04/micro/will-it-scale/pread1
26801587.20 -25.8% 19893779.20 TOTAL will-it-scale.pread1.32.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
13400793.60 -25.8% 9946889.60 lkp-sbx04/micro/will-it-scale/pread1
13400793.60 -25.8% 9946889.60 TOTAL will-it-scale.pread1.16.linear
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
16103348.20 -25.2% 12039259.40 lkp-sbx04/micro/will-it-scale/pread1
16103348.20 -25.2% 12039259.40 TOTAL will-it-scale.pread1.64.processes
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
11062366.00 -23.2% 8501004.20 lkp-sbx04/micro/will-it-scale/pread1
11062366.00 -23.2% 8501004.20 TOTAL will-it-scale.pread1.48.processes
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
596765.40 -20.1% 477000.60 lkp-sbx04/micro/will-it-scale/pread1
596765.40 -20.1% 477000.60 TOTAL will-it-scale.pread1.1.threads
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
9155848.00 -17.7% 7538214.20 lkp-sbx04/micro/will-it-scale/pread1
9155848.00 -17.7% 7538214.20 TOTAL will-it-scale.pread1.8.threads
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
595761.80 -19.9% 477296.20 lkp-sbx04/micro/will-it-scale/pread2
595761.80 -19.9% 477296.20 TOTAL will-it-scale.pread2.1.threads
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
5743713.40 -12.2% 5040736.60 lkp-sbx04/micro/will-it-scale/pread1
5743713.40 -12.2% 5040736.60 TOTAL will-it-scale.pread1.24.processes
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
345893.67 -11.3% 306922.00 lkp-a06/crypto/tcrypt/2s-500-504
345893.67 -11.3% 306922.00 TOTAL tcrypt.async_xts_serpent_encryption_2.512_bit_key.256_byte_blocks
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
346216.33 -11.2% 307554.00 lkp-a06/crypto/tcrypt/2s-500-504
346216.33 -11.2% 307554.00 TOTAL tcrypt.async_xts_serpent_encryption_2.256_bit_key.256_byte_blocks
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
415605.00 -11.2% 369082.20 lkp-sbx04/micro/will-it-scale/pread2
415605.00 -11.2% 369082.20 TOTAL will-it-scale.pread2.8.processes
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
7010726.40 -10.4% 6282367.20 lkp-sbx04/micro/will-it-scale/pread1
7010726.40 -10.4% 6282367.20 TOTAL will-it-scale.pread1.16.processes
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
259.18 -10.0% 233.32 lkp-a06/micro/dbench/100%
4387.50 -8.4% 4020.88 nhm8/micro/dbench/100%
4646.68 -8.4% 4254.20 TOTAL dbench.throughput-MB/sec
827da44c61419f29ae3b 1ca7d67cf5d5a2aef26a
------------------------ ------------------------
243.33 -4.7% 232.00 lkp-a04/micro/netperf/120s-200%-TCP_MAERTS
189.33 -5.3% 179.33 lkp-a04/micro/netperf/120s-200%-TCP_SENDFILE
240.33 -5.3% 227.67 lkp-a04/micro/netperf/120s-200%-TCP_STREAM
3272.33 -10.5% 2928.00 lkp-t410/micro/netperf/120s-200%-TCP_MAERTS
1950.33 -7.1% 1811.00 lkp-t410/micro/netperf/120s-200%-TCP_SENDFILE
3338.67 -11.9% 2941.00 lkp-t410/micro/netperf/120s-200%-TCP_STREAM
9234.33 -9.9% 8319.00 TOTAL netperf.Throughput_Mbps
BTW, Kernel config is attached.
--yliu
View attachment "config-3.12.0-00181-g1ca7d67" of type "text/plain" (80193 bytes)
Powered by blists - more mailing lists