Hi Marathe
Yes. I've tested my modified on Both UPCore Plus (2-cores cpu, N3350) and
RTC-1010 (4-cores cpu, N4200)
And put it this way, kernel commit 3e1ffadb seems affects to those devices
which CPU is less than 4-cores.
the root cause was "/dev/cpuset/cpus" not matched with real cpu cores when
device with 2-cores CPU
See below test
### Original image
$ cat "/dev/cpuset/cpus"
0-3 ← Both N3350 / N4200 returns
### Original image + my modified (method 2)
$ cat "dev/cpuset/cpus"
0-3 ← N4200 returns
0-1 ← N3350 returns
with original image and a 2-cores CPU device, below command in
system/core/rootdir/init.rc
failed to write those cpus node.
-----
cp /dev/cpuset/cpus /dev/cpuset/<...>/cpus
-----
it tried to write "0-3", but only 0-1 acceptable.
Running command "cat /cpuset/*/cpus", you can observed all cpus node is
empty
This causing no tasks can be dispatch to cpu node and has terminated soon
after it created.
Marathe, Yogesh <yogesh.marathe(a)intel.com> 於 2019年6月12日 週三 下午4:28寫道:
Cool. Good to know. With this change, is it working for both UPCore
Plus
and RTC1010?
-Yogesh.
*From:* Celadon [mailto:celadon-bounces@lists.01.org] *On Behalf Of *hpo14
*Sent:* Wednesday, June 12, 2019 9:31 AM
*To:* celadon(a)lists.01.org
*Subject:* Re: [
01.org Celadon] UPCore Plus boot stuck on android logo
with 2019ww13 stable build
Hi all
Problem solved, issue related with KERNEL commit 3e1ffadb ("ANDROID:
cpuset: Make cpusets restore on hotplug")
<
https://github.com/projectceladon/device-androidia-kernel/commit/3e1ffadb...
which was merged on 2018/11/13
Both method (1.) and (2.) solved my issues. I have not test (3.), but it
should works too.
1. simply revert that commit
2. modified that commit
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index beccc26..cb77e87 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -2083,6 +2083,8 @@ static void cpuset_bind(struct cgroup_subsys_state
*root_css)
} else {
cpumask_copy(top_cpuset.cpus_allowed,
top_cpuset.effective_cpus);
*+ cpumask_copy(top_cpuset.cpus_requested,*
*+ top_cpuset.effective_cpus);*
top_cpuset.mems_allowed = top_cpuset.effective_mems;
}
3. add below section into device/intel/project-celadon/<target>/init.rc
---
on late-init
copy /sys/devices/system/cpu/online /dev/cpuset/foreground/cpus
copy /sys/devices/system/cpu/online /dev/cpuset/background/cpus
copy /sys/devices/system/cpu/online /dev/cpuset/system-background/cpus
copy /sys/devices/system/cpu/online /dev/cpuset/top-app/cpus
copy /sys/devices/system/cpu/online /dev/cpuset/foreground/boost/cpus
---
BTW, i add "echo `date` >> /cache/test.log"
into script "device/intel/mixins/groups/cpuset/autocores/config_cpuset.sh"
for verify script execution.
Result: Not executed.
--
Sincerely
hpo14
--
Sincerely
hpo14