From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Cc: linux-samsung-soc@vger.kernel.org,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Kukjin Kim <kgene.kim@samsung.com>,
Tomasz Figa <t.figa@samsung.com>
Subject: Re: exynos4: cpu hotplug + cpuidle/AFTR broken
Date: Tue, 01 Apr 2014 13:51:12 +0200 [thread overview]
Message-ID: <533AA830.3080908@linaro.org> (raw)
In-Reply-To: <1396350258.4250.7.camel@AMDC1943>
On 04/01/2014 01:04 PM, Krzysztof Kozlowski wrote:
>
> On Tue, 2014-04-01 at 12:43 +0200, Daniel Lezcano wrote:
>> Hi all,
>>
>> I tried the v3.14 kernel and unplugged the cpu1. That leads to a kernel
>> hang without any trace.
>>
>> If I disable the cpuidle AFTR state through sysfs before unplugging
>> cpu1, it works well.
>
> Hi,
>
> Can you describe the hardware (at least SoC)?
Yes, Exynos 4210.
>
> I encountered stalls after CPU hotplugging. In my case affected were
> SOC-s s where MCT local timer interrupt is shared (SPI). It could be
> reproduced easily by continuous hotplugging CPU1.
>
> Fix for one issue (CPU1 stall) in my case:
> http://thread.gmane.org/gmane.linux.kernel.stable/85047
> However I still encounter CPU0 stall in the same test case (hotplug
> CPU1).
>
> Maybe these issues are similar?
I don't think so. IMO, it is directly related to the AFTR state because
disabling this state (via sysfs) before unplugging the cpu1, does *not*
lead to a kernel hang and everything is working fine.
>> I reproduced the issue on v3.14, v3.13, v3.12, v3.11
>>
>> v3.10 works fine.
>>
>> I tried to git bisect but I finally gave up due to too much kernel
>> hanging at boot.
>>
>> The git bisect log below.
>>
>> Thanks
>> -- Daniel
>>
>>
>> git bisect start
>> # bad: [6e4664525b1db28f8c4e1130957f70a94c19213e] Linux 3.11
>> git bisect bad 6e4664525b1db28f8c4e1130957f70a94c19213e
>> # good: [8bb495e3f02401ee6f76d1b1d77f3ac9f079e376] Linux 3.10
>> git bisect good 8bb495e3f02401ee6f76d1b1d77f3ac9f079e376
>> # good: [8b70a90cabafb6a6e1a0d3f838b38355fe48337e] Merge branch
>> 'for-v3.11' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping
>> git bisect good 8b70a90cabafb6a6e1a0d3f838b38355fe48337e
>> # bad: [b41e6a51d57e231d2ed237f17f002cc536c0987c] sh_eth: SH_ETH should
>> depend on HAS_DMA
>> git bisect bad b41e6a51d57e231d2ed237f17f002cc536c0987c
>> # bad: [2e17c5a97e231f3cb426f4b7895eab5be5c5442e] Merge branch
>> 'drm-next' of git://people.freedesktop.org/~airlied/linux
>> git bisect bad 2e17c5a97e231f3cb426f4b7895eab5be5c5442e
>> # good: [e631227f698f39969eb476d297f3ac65b43b51a5] drm/radeon: fix
>> endian bug in radeon_atom_get_mclk_range_table()
>> git bisect good e631227f698f39969eb476d297f3ac65b43b51a5
>> # bad: [9a5889ae1ce41f376e6a5b56e17e0c5a755fda80] Merge branch
>> 'for-linus' of
>> git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
>> git bisect bad 9a5889ae1ce41f376e6a5b56e17e0c5a755fda80
>> # bad: [be0c5d8c0bb0023e11f5c6d38e90f7b0f24edb64] Merge tag
>> 'nfs-for-3.11-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
>> git bisect bad be0c5d8c0bb0023e11f5c6d38e90f7b0f24edb64
>> # bad: [d2b4a646717153a1a180b64d4a8464054dbd700e] Merge branch
>> 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
>> git bisect bad d2b4a646717153a1a180b64d4a8464054dbd700e
>> # skip: [07bd1172902e782f288e4d44b1fde7dec0f08b6f] tick: Sanitize
>> broadcast control logic
>> git bisect skip 07bd1172902e782f288e4d44b1fde7dec0f08b6f
>> # good: [757f4e51b74f7fb19251020e742a78111fdea194] MIPS: jz4740: Correct
>> clock gate bit for DMA controller
>> git bisect good 757f4e51b74f7fb19251020e742a78111fdea194
>> # skip: [064706514ec3fea740c2656e03c4f01f6a551ac4] clocksource: Add
>> generic dummy timer driver
>> git bisect skip 064706514ec3fea740c2656e03c4f01f6a551ac4
>> # skip: [55a68c23e0a675b2b8ac2656fd6edbf98b78e4c6] dw_apb_timer_of.c:
>> Remove parts that were picoxcell-specific
>> git bisect skip 55a68c23e0a675b2b8ac2656fd6edbf98b78e4c6
>> # skip: [fc1f7d5606487ae28d6c84e95401952927d7379e] clocksource:
>> apb_timer: Remove unsused function
>> git bisect skip fc1f7d5606487ae28d6c84e95401952927d7379e
>> # skip: [6cffe00f7d4e24679eae6b7aae4caaf915288256] alarmtimer: Add
>> functions for timerfd support
>> git bisect skip 6cffe00f7d4e24679eae6b7aae4caaf915288256
>> # good: [e24f6628811e2d4531b443684b598f7050932012] modpost: remove all
>> traces of cpuinit/cpuexit sections
>> git bisect good e24f6628811e2d4531b443684b598f7050932012
>> # skip: [629a6a2b7762a474177d08043bea094dd27e0a54] sched_clock: Add
>> temporary asm/sched_clock.h
>> git bisect skip 629a6a2b7762a474177d08043bea094dd27e0a54
>> # skip: [5c83545f24ab3dd67e0ae0e2b795fea750f08c34] power: Add option to
>> log time spent in suspend
>> git bisect skip 5c83545f24ab3dd67e0ae0e2b795fea750f08c34
>> # good: [2473f3e7a97ce8bc0fe7596cdb361b21221418eb] posix_cpu_timers:
>> consolidate expired timers check
>> git bisect good 2473f3e7a97ce8bc0fe7596cdb361b21221418eb
>> # skip: [336ae1180df5f69b9e0fb6561bec01c5f64361cf] ARM: sched_clock:
>> Load cycle count after epoch stabilizes
>> git bisect skip 336ae1180df5f69b9e0fb6561bec01c5f64361cf
>> # skip: [f5a2e34375a5e2b711aea488ac3ae50eeba6d57c] clocksource: Allow
>> clocksource select to skip current clocksource
>> git bisect skip f5a2e34375a5e2b711aea488ac3ae50eeba6d57c
>> # skip: [ce0b098981544d9f4e910ea48f3af3e726ca6d6b] x86: Fix
>> vrtc_get_time/set_mmss to use new timespec interface
>> git bisect skip ce0b098981544d9f4e910ea48f3af3e726ca6d6b
>> # skip: [d0951a23383d09276f7976ed34d8f1cede629b48] DMA: shdma:
>> shdma_chan_filter() has to be in shdma-base.h
>> git bisect skip d0951a23383d09276f7976ed34d8f1cede629b48
>> # skip: [7c4c3a0f18ba57ea2a2985034532303d2929902a] hrtimers: Support
>> resuming with two or more CPUs online (but stopped)
>> git bisect skip 7c4c3a0f18ba57ea2a2985034532303d2929902a
>> # skip: [a89c7edbe7d7aa80f507915f3dd801211b116b79] clocksource: Let
>> clocksource_unregister() return success/error
>> git bisect skip a89c7edbe7d7aa80f507915f3dd801211b116b79
>> # skip: [2699339361a9bacb3fa663e6b8981a040cfca4ee] clocksource:
>> vf_pit_timer: Use linux/sched_clock.h
>> git bisect skip 2699339361a9bacb3fa663e6b8981a040cfca4ee
>> # skip: [7172a286ced0c1f4f239a0fa09db54ed37d3ead2] clockevents: Get rid
>> of the notifier chain
>> git bisect skip 7172a286ced0c1f4f239a0fa09db54ed37d3ead2
>> # skip: [762cf9695d714d312ef7369bed1b9f9467c9e64e] Merge branch
>> 'timers/clockevents' of git://git.linaro.org/people/dlezcano/clockevents
>> into timers/core
>> git bisect skip 762cf9695d714d312ef7369bed1b9f9467c9e64e
>> # bad: [21884a83b2192a00885d7244a1dda32debd2fbc7] Merge branch
>> 'timers-core-for-linus' of
>> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>> git bisect bad 21884a83b2192a00885d7244a1dda32debd2fbc7
>> # skip: [5a9b5855c248d0298eac4d5490c7bc11c2f1983b] ARM: sched_clock:
>> Remove unused needs_suspend member
>> git bisect skip 5a9b5855c248d0298eac4d5490c7bc11c2f1983b
>> # skip: [45cb8e01b2ecef1c2afb18333e95793fa1a90281] clockevents: Split
>> out selection logic
>> git bisect skip 45cb8e01b2ecef1c2afb18333e95793fa1a90281
>> # skip: [ffbfb5e316f0db486798ccf1db36a577ffe79637] ARM: sched_clock:
>> Return suspended count earlier
>> git bisect skip ffbfb5e316f0db486798ccf1db36a577ffe79637
>> # skip: [04397fe94ad65289884b9862b6a0c722ececaadf] timekeeping: Pass
>> flags instead of multiple bools to timekeeping_update()
>> git bisect skip 04397fe94ad65289884b9862b6a0c722ececaadf
>> # skip: [11682a41618f8094cb7a9330b4b6a12ffaef5774] alarmtimer: Export
>> symbols of functions declared in linux/alarmtimer.h
>> git bisect skip 11682a41618f8094cb7a9330b4b6a12ffaef5774
>> # skip: [fc1f7d5606487ae28d6c84e95401952927d7379e] clocksource:
>> apb_timer: Remove unsused function
>> git bisect skip fc1f7d5606487ae28d6c84e95401952927d7379e
>>
>>
>
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
WARNING: multiple messages have this Message-ID (diff)
From: daniel.lezcano@linaro.org (Daniel Lezcano)
To: linux-arm-kernel@lists.infradead.org
Subject: exynos4: cpu hotplug + cpuidle/AFTR broken
Date: Tue, 01 Apr 2014 13:51:12 +0200 [thread overview]
Message-ID: <533AA830.3080908@linaro.org> (raw)
In-Reply-To: <1396350258.4250.7.camel@AMDC1943>
On 04/01/2014 01:04 PM, Krzysztof Kozlowski wrote:
>
> On Tue, 2014-04-01 at 12:43 +0200, Daniel Lezcano wrote:
>> Hi all,
>>
>> I tried the v3.14 kernel and unplugged the cpu1. That leads to a kernel
>> hang without any trace.
>>
>> If I disable the cpuidle AFTR state through sysfs before unplugging
>> cpu1, it works well.
>
> Hi,
>
> Can you describe the hardware (at least SoC)?
Yes, Exynos 4210.
>
> I encountered stalls after CPU hotplugging. In my case affected were
> SOC-s s where MCT local timer interrupt is shared (SPI). It could be
> reproduced easily by continuous hotplugging CPU1.
>
> Fix for one issue (CPU1 stall) in my case:
> http://thread.gmane.org/gmane.linux.kernel.stable/85047
> However I still encounter CPU0 stall in the same test case (hotplug
> CPU1).
>
> Maybe these issues are similar?
I don't think so. IMO, it is directly related to the AFTR state because
disabling this state (via sysfs) before unplugging the cpu1, does *not*
lead to a kernel hang and everything is working fine.
>> I reproduced the issue on v3.14, v3.13, v3.12, v3.11
>>
>> v3.10 works fine.
>>
>> I tried to git bisect but I finally gave up due to too much kernel
>> hanging at boot.
>>
>> The git bisect log below.
>>
>> Thanks
>> -- Daniel
>>
>>
>> git bisect start
>> # bad: [6e4664525b1db28f8c4e1130957f70a94c19213e] Linux 3.11
>> git bisect bad 6e4664525b1db28f8c4e1130957f70a94c19213e
>> # good: [8bb495e3f02401ee6f76d1b1d77f3ac9f079e376] Linux 3.10
>> git bisect good 8bb495e3f02401ee6f76d1b1d77f3ac9f079e376
>> # good: [8b70a90cabafb6a6e1a0d3f838b38355fe48337e] Merge branch
>> 'for-v3.11' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping
>> git bisect good 8b70a90cabafb6a6e1a0d3f838b38355fe48337e
>> # bad: [b41e6a51d57e231d2ed237f17f002cc536c0987c] sh_eth: SH_ETH should
>> depend on HAS_DMA
>> git bisect bad b41e6a51d57e231d2ed237f17f002cc536c0987c
>> # bad: [2e17c5a97e231f3cb426f4b7895eab5be5c5442e] Merge branch
>> 'drm-next' of git://people.freedesktop.org/~airlied/linux
>> git bisect bad 2e17c5a97e231f3cb426f4b7895eab5be5c5442e
>> # good: [e631227f698f39969eb476d297f3ac65b43b51a5] drm/radeon: fix
>> endian bug in radeon_atom_get_mclk_range_table()
>> git bisect good e631227f698f39969eb476d297f3ac65b43b51a5
>> # bad: [9a5889ae1ce41f376e6a5b56e17e0c5a755fda80] Merge branch
>> 'for-linus' of
>> git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client
>> git bisect bad 9a5889ae1ce41f376e6a5b56e17e0c5a755fda80
>> # bad: [be0c5d8c0bb0023e11f5c6d38e90f7b0f24edb64] Merge tag
>> 'nfs-for-3.11-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
>> git bisect bad be0c5d8c0bb0023e11f5c6d38e90f7b0f24edb64
>> # bad: [d2b4a646717153a1a180b64d4a8464054dbd700e] Merge branch
>> 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
>> git bisect bad d2b4a646717153a1a180b64d4a8464054dbd700e
>> # skip: [07bd1172902e782f288e4d44b1fde7dec0f08b6f] tick: Sanitize
>> broadcast control logic
>> git bisect skip 07bd1172902e782f288e4d44b1fde7dec0f08b6f
>> # good: [757f4e51b74f7fb19251020e742a78111fdea194] MIPS: jz4740: Correct
>> clock gate bit for DMA controller
>> git bisect good 757f4e51b74f7fb19251020e742a78111fdea194
>> # skip: [064706514ec3fea740c2656e03c4f01f6a551ac4] clocksource: Add
>> generic dummy timer driver
>> git bisect skip 064706514ec3fea740c2656e03c4f01f6a551ac4
>> # skip: [55a68c23e0a675b2b8ac2656fd6edbf98b78e4c6] dw_apb_timer_of.c:
>> Remove parts that were picoxcell-specific
>> git bisect skip 55a68c23e0a675b2b8ac2656fd6edbf98b78e4c6
>> # skip: [fc1f7d5606487ae28d6c84e95401952927d7379e] clocksource:
>> apb_timer: Remove unsused function
>> git bisect skip fc1f7d5606487ae28d6c84e95401952927d7379e
>> # skip: [6cffe00f7d4e24679eae6b7aae4caaf915288256] alarmtimer: Add
>> functions for timerfd support
>> git bisect skip 6cffe00f7d4e24679eae6b7aae4caaf915288256
>> # good: [e24f6628811e2d4531b443684b598f7050932012] modpost: remove all
>> traces of cpuinit/cpuexit sections
>> git bisect good e24f6628811e2d4531b443684b598f7050932012
>> # skip: [629a6a2b7762a474177d08043bea094dd27e0a54] sched_clock: Add
>> temporary asm/sched_clock.h
>> git bisect skip 629a6a2b7762a474177d08043bea094dd27e0a54
>> # skip: [5c83545f24ab3dd67e0ae0e2b795fea750f08c34] power: Add option to
>> log time spent in suspend
>> git bisect skip 5c83545f24ab3dd67e0ae0e2b795fea750f08c34
>> # good: [2473f3e7a97ce8bc0fe7596cdb361b21221418eb] posix_cpu_timers:
>> consolidate expired timers check
>> git bisect good 2473f3e7a97ce8bc0fe7596cdb361b21221418eb
>> # skip: [336ae1180df5f69b9e0fb6561bec01c5f64361cf] ARM: sched_clock:
>> Load cycle count after epoch stabilizes
>> git bisect skip 336ae1180df5f69b9e0fb6561bec01c5f64361cf
>> # skip: [f5a2e34375a5e2b711aea488ac3ae50eeba6d57c] clocksource: Allow
>> clocksource select to skip current clocksource
>> git bisect skip f5a2e34375a5e2b711aea488ac3ae50eeba6d57c
>> # skip: [ce0b098981544d9f4e910ea48f3af3e726ca6d6b] x86: Fix
>> vrtc_get_time/set_mmss to use new timespec interface
>> git bisect skip ce0b098981544d9f4e910ea48f3af3e726ca6d6b
>> # skip: [d0951a23383d09276f7976ed34d8f1cede629b48] DMA: shdma:
>> shdma_chan_filter() has to be in shdma-base.h
>> git bisect skip d0951a23383d09276f7976ed34d8f1cede629b48
>> # skip: [7c4c3a0f18ba57ea2a2985034532303d2929902a] hrtimers: Support
>> resuming with two or more CPUs online (but stopped)
>> git bisect skip 7c4c3a0f18ba57ea2a2985034532303d2929902a
>> # skip: [a89c7edbe7d7aa80f507915f3dd801211b116b79] clocksource: Let
>> clocksource_unregister() return success/error
>> git bisect skip a89c7edbe7d7aa80f507915f3dd801211b116b79
>> # skip: [2699339361a9bacb3fa663e6b8981a040cfca4ee] clocksource:
>> vf_pit_timer: Use linux/sched_clock.h
>> git bisect skip 2699339361a9bacb3fa663e6b8981a040cfca4ee
>> # skip: [7172a286ced0c1f4f239a0fa09db54ed37d3ead2] clockevents: Get rid
>> of the notifier chain
>> git bisect skip 7172a286ced0c1f4f239a0fa09db54ed37d3ead2
>> # skip: [762cf9695d714d312ef7369bed1b9f9467c9e64e] Merge branch
>> 'timers/clockevents' of git://git.linaro.org/people/dlezcano/clockevents
>> into timers/core
>> git bisect skip 762cf9695d714d312ef7369bed1b9f9467c9e64e
>> # bad: [21884a83b2192a00885d7244a1dda32debd2fbc7] Merge branch
>> 'timers-core-for-linus' of
>> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
>> git bisect bad 21884a83b2192a00885d7244a1dda32debd2fbc7
>> # skip: [5a9b5855c248d0298eac4d5490c7bc11c2f1983b] ARM: sched_clock:
>> Remove unused needs_suspend member
>> git bisect skip 5a9b5855c248d0298eac4d5490c7bc11c2f1983b
>> # skip: [45cb8e01b2ecef1c2afb18333e95793fa1a90281] clockevents: Split
>> out selection logic
>> git bisect skip 45cb8e01b2ecef1c2afb18333e95793fa1a90281
>> # skip: [ffbfb5e316f0db486798ccf1db36a577ffe79637] ARM: sched_clock:
>> Return suspended count earlier
>> git bisect skip ffbfb5e316f0db486798ccf1db36a577ffe79637
>> # skip: [04397fe94ad65289884b9862b6a0c722ececaadf] timekeeping: Pass
>> flags instead of multiple bools to timekeeping_update()
>> git bisect skip 04397fe94ad65289884b9862b6a0c722ececaadf
>> # skip: [11682a41618f8094cb7a9330b4b6a12ffaef5774] alarmtimer: Export
>> symbols of functions declared in linux/alarmtimer.h
>> git bisect skip 11682a41618f8094cb7a9330b4b6a12ffaef5774
>> # skip: [fc1f7d5606487ae28d6c84e95401952927d7379e] clocksource:
>> apb_timer: Remove unsused function
>> git bisect skip fc1f7d5606487ae28d6c84e95401952927d7379e
>>
>>
>
--
<http://www.linaro.org/> Linaro.org ? Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
next prev parent reply other threads:[~2014-04-01 11:51 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-01 10:43 exynos4: cpu hotplug + cpuidle/AFTR broken Daniel Lezcano
2014-04-01 10:43 ` Daniel Lezcano
2014-04-01 11:04 ` Krzysztof Kozlowski
2014-04-01 11:04 ` Krzysztof Kozlowski
2014-04-01 11:51 ` Daniel Lezcano [this message]
2014-04-01 11:51 ` Daniel Lezcano
2014-04-01 11:22 ` Tomasz Figa
2014-04-01 11:22 ` Tomasz Figa
2014-04-01 12:16 ` Daniel Lezcano
2014-04-01 12:16 ` Daniel Lezcano
2014-04-01 12:29 ` Tomasz Figa
2014-04-01 12:29 ` Tomasz Figa
2014-04-01 12:49 ` Daniel Lezcano
2014-04-01 12:49 ` Daniel Lezcano
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=533AA830.3080908@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=k.kozlowski@samsung.com \
--cc=kgene.kim@samsung.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=t.figa@samsung.com \
/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.