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@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@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") 

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