diff options
author | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-19 16:08:00 +0000 |
---|---|---|
committer | szym@chromium.org <szym@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-19 16:08:00 +0000 |
commit | c4e68132a559e4e0bcec58a15aa2a43090a0dcd7 (patch) | |
tree | 2dd02f46a6a59cc32162e5afeeeb6a9227e620d7 /chrome/nacl | |
parent | ddbc6ff92d9389a92033ced2bfc5b341a2218fc9 (diff) | |
download | chromium_src-c4e68132a559e4e0bcec58a15aa2a43090a0dcd7.zip chromium_src-c4e68132a559e4e0bcec58a15aa2a43090a0dcd7.tar.gz chromium_src-c4e68132a559e4e0bcec58a15aa2a43090a0dcd7.tar.bz2 |
Revert 195190 "Set up NaClChromeMainArgs number_of_cores member ..."
> Set up NaClChromeMainArgs number_of_cores member so apps can size threadpools appropriately
>
> The outer sandbox on Linux and OSX was preventing
> sysconf(_SC_NPROCESSORS_ONLN) from succeeding, so that NaCl
> applications that need the number of threads were getting a
> bogus value (-1 when using newlib, and 1 when using glibc).
>
> TEST= run_sysconf_nprocessors_onln_test
> BUG= 176522
>
> Review URL: https://chromiumcodereview.appspot.com/14238013
TBR=bsy@google.com
Review URL: https://codereview.chromium.org/14320030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195213 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/nacl')
-rw-r--r-- | chrome/nacl/nacl_helper_linux.cc | 12 | ||||
-rw-r--r-- | chrome/nacl/nacl_listener.cc | 8 | ||||
-rw-r--r-- | chrome/nacl/nacl_listener.h | 15 | ||||
-rw-r--r-- | chrome/nacl/nacl_main.cc | 9 |
4 files changed, 4 insertions, 40 deletions
diff --git a/chrome/nacl/nacl_helper_linux.cc b/chrome/nacl/nacl_helper_linux.cc index a066db7..53c2fb30 100644 --- a/chrome/nacl/nacl_helper_linux.cc +++ b/chrome/nacl/nacl_helper_linux.cc @@ -40,8 +40,7 @@ namespace { // if (!child) { // Note: this code doesn't attempt to support SELINUX or the SECCOMP sandbox. void BecomeNaClLoader(const std::vector<int>& child_fds, - size_t prereserved_sandbox_size, - int number_of_cores) { + size_t prereserved_sandbox_size) { VLOG(1) << "NaCl loader: setting up IPC descriptor"; // don't need zygote FD any more if (HANDLE_EINTR(close(kNaClZygoteDescriptor)) != 0) @@ -52,7 +51,6 @@ void BecomeNaClLoader(const std::vector<int>& child_fds, MessageLoopForIO main_message_loop; NaClListener listener; listener.set_prereserved_sandbox_size(prereserved_sandbox_size); - listener.set_number_of_cores(number_of_cores); listener.Listen(); _exit(0); } @@ -60,8 +58,7 @@ void BecomeNaClLoader(const std::vector<int>& child_fds, // Some of this code was lifted from // content/browser/zygote_main_linux.cc:ForkWithRealPid() void HandleForkRequest(const std::vector<int>& child_fds, - size_t prereserved_sandbox_size, - int number_of_cores) { + size_t prereserved_sandbox_size) { VLOG(1) << "nacl_helper: forking"; pid_t childpid = fork(); if (childpid < 0) { @@ -99,7 +96,7 @@ void HandleForkRequest(const std::vector<int>& child_fds, if (HANDLE_EINTR(close(child_fds[kNaClParentFDIndex])) != 0) LOG(ERROR) << "close(child_fds[kNaClParentFDIndex]) failed"; if (validack) { - BecomeNaClLoader(child_fds, prereserved_sandbox_size, number_of_cores); + BecomeNaClLoader(child_fds, prereserved_sandbox_size); } else { LOG(ERROR) << "Failed to synch with zygote"; } @@ -239,7 +236,6 @@ int main(int argc, char* argv[]) { #endif std::vector<int> empty; // for SendMsg() calls size_t prereserved_sandbox_size = CheckReservedAtZero(); - int number_of_cores = sysconf(_SC_NPROCESSORS_ONLN); CheckRDebug(argv[0]); @@ -276,7 +272,7 @@ int main(int argc, char* argv[]) { } else if (msglen == sizeof(kNaClForkRequest) - 1 && memcmp(buf, kNaClForkRequest, msglen) == 0) { if (kNaClParentFDIndex + 1 == fds.size()) { - HandleForkRequest(fds, prereserved_sandbox_size, number_of_cores); + HandleForkRequest(fds, prereserved_sandbox_size); continue; // fork succeeded. Note: child does not return } else { LOG(ERROR) << "nacl_helper: unexpected number of fds, got " diff --git a/chrome/nacl/nacl_listener.cc b/chrome/nacl/nacl_listener.cc index 477be0e..5f3ced4 100644 --- a/chrome/nacl/nacl_listener.cc +++ b/chrome/nacl/nacl_listener.cc @@ -7,10 +7,6 @@ #include <errno.h> #include <stdlib.h> -#if defined(OS_POSIX) -#include <unistd.h> -#endif - #include "base/command_line.h" #include "base/logging.h" #include "base/memory/scoped_ptr.h" @@ -145,9 +141,6 @@ NaClListener::NaClListener() : shutdown_event_(true, false), #if defined(OS_LINUX) prereserved_sandbox_size_(0), #endif -#if defined(OS_POSIX) - number_of_cores_(-1), // unknown/error -#endif main_loop_(NULL) { io_thread_.StartWithOptions(base::Thread::Options(MessageLoop::TYPE_IO, 0)); #if defined(OS_WIN) @@ -233,7 +226,6 @@ void NaClListener::OnStart(const nacl::NaClStartParams& params) { LOG(ERROR) << "Failed to dup() the urandom FD"; return; } - args->number_of_cores = number_of_cores_; args->create_memory_object_func = CreateMemoryObject; # if defined(OS_MACOSX) CHECK(handles.size() >= 1); diff --git a/chrome/nacl/nacl_listener.h b/chrome/nacl/nacl_listener.h index 66627c0..20e3e78 100644 --- a/chrome/nacl/nacl_listener.h +++ b/chrome/nacl/nacl_listener.h @@ -34,11 +34,6 @@ class NaClListener : public IPC::Listener { prereserved_sandbox_size_ = prereserved_sandbox_size; } #endif -#if defined(OS_POSIX) - void set_number_of_cores(int number_of_cores) { - number_of_cores_ = number_of_cores; - } -#endif private: void OnStart(const nacl::NaClStartParams& params); @@ -56,16 +51,6 @@ class NaClListener : public IPC::Listener { #if defined(OS_LINUX) size_t prereserved_sandbox_size_; #endif -#if defined(OS_POSIX) - /* - * The outer sandbox on Linux and OSX prevents - * sysconf(_SC_NPROCESSORS) from working; in Windows, there are no - * problems with invoking GetSystemInfo. Therefore, only in - * OS_POSIX do we need to supply the number of cores into - * NaClChromeMainArgs object. - */ - int number_of_cores_; -#endif // Used to identify what thread we're on. MessageLoop* main_loop_; diff --git a/chrome/nacl/nacl_main.cc b/chrome/nacl/nacl_main.cc index a7c1124..9b7a8c6 100644 --- a/chrome/nacl/nacl_main.cc +++ b/chrome/nacl/nacl_main.cc @@ -33,12 +33,6 @@ int NaClMain(const content::MainFunctionParams& parameters) { bool no_sandbox = parsed_command_line.HasSwitch(switches::kNoSandbox); platform.InitSandboxTests(no_sandbox); -#if defined(OS_POSIX) - // The number of cores must be obtained before the invocation of - // platform.EnableSandbox(), so cannot simply be inlined below. - int number_of_cores = sysconf(_SC_NPROCESSORS_ONLN); -#endif - if (!no_sandbox) { platform.EnableSandbox(); } @@ -46,9 +40,6 @@ int NaClMain(const content::MainFunctionParams& parameters) { if (sandbox_test_result) { NaClListener listener; -#if defined(OS_POSIX) - listener.set_number_of_cores(number_of_cores); -#endif listener.Listen(); } else { // This indirectly prevents the test-harness-success-cookie from being set, |