With this patch the PAGE_SIZE value from the system is used if
possible. If page size is not defined by the system, it is set
to 4096 bytes and a warning is emitted. PAGE_ALIGN_MASK is now
derived from PAGE_SIZE. With these changes, the code should be
more robust on systems with non-4KiB page size.
With this patch the PAGE_SIZE value from the system is used if
possible. The code still assumes that the PAGE_SIZE is 4096, but
emits a warning if the actual value differs. If page size is not
defined by the system, it is set to 4096 bytes and a warning is
emitted as well.
Now all regular child processes, including preallocated, are deprivileged.
Only Nuwa needs uid 0, because each of its children has a different uid/gid.
Support of zygote-like process forking is done as:
* The b2g chrome process forks a child process that will be the template for forking other content processes.
* The template process starts running to some point and freeze.
* When ready, the chrome process starts requesting the template to fork content proceses.
* The content processes forked from the template process recovers its states including the threads, file descriptors for epoll, signaling and IPC.
Recovery of the process states are done by wrapping some system and pthread calls to record the states in the template process and recover in the forked content process.