Lit: Rework r249161; Move RLIMIT_NPROC to main.py.

The message "raised the process limit..." prevented the progress bar.

llvm-svn: 250420
This commit is contained in:
NAKAMURA Takumi 2015-10-15 15:37:13 +00:00
parent ae81a7bf49
commit 9ea61afc86
2 changed files with 22 additions and 22 deletions

View File

@ -344,6 +344,28 @@ def main(builtinParameters = {}):
# Don't create more threads than tests.
opts.numThreads = min(len(run.tests), opts.numThreads)
# Because some tests use threads internally, and at least on Linux each
# of these threads counts toward the current process limit, try to
# raise the (soft) process limit so that tests don't fail due to
# resource exhaustion.
try:
cpus = lit.util.detectCPUs()
desired_limit = opts.numThreads * cpus * 2 # the 2 is a safety factor
# Import the resource module here inside this try block because it
# will likely fail on Windows.
import resource
max_procs_soft, max_procs_hard = resource.getrlimit(resource.RLIMIT_NPROC)
desired_limit = min(desired_limit, max_procs_hard)
if max_procs_soft < desired_limit:
resource.setrlimit(resource.RLIMIT_NPROC, (desired_limit, max_procs_hard))
litConfig.note('raised the process limit from %d to %d' % \
(max_procs_soft, desired_limit))
except:
pass
extra = ''
if len(run.tests) != numTotalTests:
extra = ' of %d' % numTotalTests

View File

@ -228,28 +228,6 @@ class Run(object):
canceled_flag = LockedValue(0)
consumer = ThreadResultsConsumer(display)
# Because some tests use threads internally, and at least on Linux each
# of these threads counts toward the current process limit, try to
# raise the (soft) process limit so that tests don't fail due to
# resource exhaustion.
try:
cpus = lit.util.detectCPUs()
desired_limit = jobs * cpus * 2 # the 2 is a safety factor
# Import the resource module here inside this try block because it
# will likely fail on Windows.
import resource
max_procs_soft, max_procs_hard = resource.getrlimit(resource.RLIMIT_NPROC)
desired_limit = min(desired_limit, max_procs_hard)
if max_procs_soft < desired_limit:
resource.setrlimit(resource.RLIMIT_NPROC, (desired_limit, max_procs_hard))
self.lit_config.note('raised the process limit from %d to %d' % \
(max_procs_soft, desired_limit))
except:
pass
# Create the test provider.
provider = TestProvider(self.tests, jobs, queue_impl, canceled_flag)