Commit Graph

23 Commits

Author SHA1 Message Date
Ting-Yu Chou
8cabe66818 Bug 1038854 - Synchronize mutexes in pthread_cond_wait after recreating threads to avoid race conditions. Parts by Ting-Yu, r=khuey. Parts by Kyle Huey, r=thinker 2014-07-31 10:47:30 +08:00
Wes Kocher
01b38e09aa Backed out changeset f73cd738c1fe (bug 1038854) a=backout 2014-07-31 15:04:49 -07:00
Ting-Yu Chou
cb194e9b0d Bug 1038854 - Avoid making unlocked mutex to locked uncontended after recreating threads from pthread condition wait wrappers. r=khuey 2014-07-31 10:47:30 +08:00
Benoit Jacob
d8fadb8326 Bug 1008254 - Allow Nuwa's global sAllThreads list to be non-empty on exit, to green a near-permanent orange on B2G mochitest-9 - r=khuey 2014-07-02 16:40:29 -04:00
Patrick Wang (Chih-Kai Wang)
942764c5d4 Bug 1026864: prevent malloc from calling wrapped pthread_mutex_lock and get rid of LibcAllocator. r=cyu,r=glandium,r=khuey 2014-06-25 10:44:58 +08:00
Jed Davis
36b77185fa Bug 1024805 - Use TaggedAnonymousMemory for Nuwa thread stacks. r=khuey
Bonus fixes: make the guard page PROT_NONE instead of PROT_READ,
and correct the stack bounds passed to pthread_attr_setstack.
2014-06-18 17:41:00 +02:00
Patrick Wang (Chih-Kai Wang)
8ea8314683 Bug 999323: use an extra thread to free stack of a exit thread in Nuwa. r=cyu,r=khuey 2014-06-10 16:02:45 +08:00
Robert O'Callahan
949537330f Bug 1006248. Part 1: Add MOZ_EXPORT in various places. r=glandium
--HG--
extra : rebase_source : cfe209a412cae28d405eae413415cebb6959072a
2014-05-06 17:26:46 +12:00
Gabriele Svelto
aefac143df Bug 982569 - Don't hard-code the page size. r=khuey 2014-04-21 19:32:48 +02:00
Nathan Froyd
37e08e5564 Bug 988499 - terminate #warning string in Nuwa.cpp; r=khuey; f=tzimmerman DONTBUILD because #warnings don't need build and tests 2014-03-24 13:35:43 -04:00
Thomas Zimmermann
2e54989c3f Bug 979913: Remove unused variables, r=khuey 2014-03-14 11:23:51 +01:00
Thomas Zimmermann
a0988f8236 Bug 979913: Conditionally define PAGE_SIZE, r=khuey
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.
2014-03-14 11:23:51 +01:00
Carsten "Tomcat" Book
3ca71cec02 Backed out changeset 3e9182f7e25d (bug 979913) 2014-03-14 09:39:35 +01:00
Carsten "Tomcat" Book
4c28d837f5 Backed out changeset 79ee6fda8e65 (bug 979913) 2014-03-14 09:39:26 +01:00
Thomas Zimmermann
a9a47ad811 Bug 979913: Remove unused variables, r=khuey 2014-03-14 09:24:05 +01:00
Thomas Zimmermann
31829d16a1 Bug 979913: Conditionally define PAGE_SIZE, r=khuey
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.
2014-03-14 09:24:04 +01:00
Jed Davis
f8d175ce14 Bug 977859 - Drop uid 0 in all content processes immediately after fork. r=bent r=kang
Now all regular child processes, including preallocated, are deprivileged.
Only Nuwa needs uid 0, because each of its children has a different uid/gid.
2014-03-12 15:48:15 -07:00
Cervantes Yu
36d74024ca Bug 979741 - Use MOZ_DEBUG_CHILD_PROCESS environment variable for processes forked from Nuwa. r=khuey 2014-03-05 20:43:06 +08:00
Cervantes Yu
9282248e1e Bug 966802 - Fix and protect from stack overflow of the threads cloned in the Nuwa process. r=khuey 2014-02-10 08:46:05 -05:00
Cervantes Yu
009ac7863a Bug 961959: fix profiler breakage for the Nuwa process. r=khuey,benwa 2014-01-22 18:56:45 +08:00
Birunthan Mohanathas
e8e1ec6dec Bug 784739 - Switch from NULL to nullptr in mozglue/; r=ehsan 2013-11-11 14:14:45 -05:00
Cervantes Yu
14514506ea Bug 928186: fix nuwa process crash due to LibcAllocator not allocating enough memory. r=khuey 2013-10-17 17:00:00 +01:00
Thinker Lee ext:(%2C%20Cervantes%20Yu%20%3Ccyu%40mozilla.com%3E)
571a106743 Bug 771765 - Support template content process, part 1: the Nuwa API and low-level wrappers. r=khuey
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.
2013-05-07 14:25:13 +08:00