[lld] r194545 - [PECOFF] Fix use-after-return.

Rick Foos rfoos at codeaurora.org
Thu Nov 14 09:07:07 PST 2013

Status: System in swap overnight. Stopped both buildmaster and slave. 187
llvm-symbolizer tasks were still running. Tasks did not stop after


Retried this morning, no other workload, 8 llvm-symbolizer tasks consuming
100% on each cpu. 7 zombie tasks.


So not quite ready this morning. If anyone knows of an llvm-sanitizer issue
like this it would help.


From: llvm-commits-bounces at cs.uiuc.edu
[mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of Rick Foos
Sent: Wednesday, November 13, 2013 1:42 PM
To: Sergey Matveev; Shankar Easwaran
Cc: llvm-commits at cs.uiuc.edu; Galina Kistanova
Subject: Re: [lld] r194545 - [PECOFF] Fix use-after-return.


Sorry for the delay, 

Our problem with running the sanitizers is that the load average running
under Ninja reached 146 and a short time after a system crash requiring
calling someone to power cycle the box...

The address sanitizer by itself leaves a load average 40. This means the OS
over 100% utilization, and is thrashing a bit. Load Average doesn't say what
exactly is thrashing.

Ninja supports make's -j, and -l options. The -l maximum load average, is
the key. 

The load average should be less than the total number of cores (hyperthreads
too) before Ninja launches another task. 

A Load Average at or lower than 100%  technically should benefit
performance, and maximize throughput. However, I will be happy if I don't
have to call someone to power cycle the server :)

So the maximum load average of a 16 core machine with hyperthreads is 32
(keeping it simple). This needs to be passed to all make's and Ninja build
steps on that slave to maximize throughput.

For now, I'm looking at a minimal patch to include jobs and a new
loadaverage variable for the sanitizers. 

Longer term, all buildslaves should define maximum loadaverage, and all
make/ninja steps should pass -j, and -l options.

Best Regards,

On 11/13/2013 11:21 AM, Sergey Matveev wrote:



On Wed, Nov 13, 2013 at 6:41 AM, Shankar Easwaran <shankare at codeaurora.org>

Sorry for another indirection. Rick foos is working on it. I think there is
some good news here :)

Cced Rick + adding Galina,Dmitri.


Shankar Easwaran 

On 11/12/2013 8:37 PM, Rui Ueyama wrote:

Shankar tried to set it up recently.

On Tue, Nov 12, 2013 at 6:31 PM, Sean Silva <silvas at purdue.edu> wrote:


There have been a couple of these sorts of bugs recently... we really
ought to have some sanitizer bots...

-- Sean Silva

On Tue, Nov 12, 2013 at 9:21 PM, Rui Ueyama <ruiu at google.com> wrote:

Author: ruiu
Date: Tue Nov 12 20:21:51 2013
New Revision: 194545

URL: http://llvm.org/viewvc/llvm-project?rev=194545
<http://llvm.org/viewvc/llvm-project?rev=194545&view=rev> &view=rev
[PECOFF] Fix use-after-return.


Modified: lld/trunk/lib/Driver/WinLinkDriver.cpp
rev=194545&r1=194544&r2=194545&view=diff> &r1=194544&r2=194545&view=diff

--- lld/trunk/lib/Driver/WinLinkDriver.cpp (original)
+++ lld/trunk/lib/Driver/WinLinkDriver.cpp Tue Nov 12 20:21:51 2013
@@ -842,7 +842,7 @@ WinLinkDriver::parse(int argc, const cha

      case OPT_INPUT:
-          new PECOFFFileNode(ctx, inputArg->getValue())));
+          new PECOFFFileNode(ctx,

  #define DEFINE_BOOLEAN_FLAG(name, setter)       \
@@ -892,9 +892,11 @@ WinLinkDriver::parse(int argc, const cha
    // start with a hypen or a slash. This is not compatible with link.exe
    // but useful for us to test lld on Unix.
    if (llvm::opt::Arg *dashdash = parsedArgs->getLastArg(OPT_DASH_DASH)) {
-    for (const StringRef value : dashdash->getValues())
-      inputElements.push_back(
-          std::unique_ptr<InputElement>(new PECOFFFileNode(ctx, value)));
+    for (const StringRef value : dashdash->getValues()) {
+      std::unique_ptr<InputElement> elem(
+          new PECOFFFileNode(ctx, ctx.allocateString(value)));
+      inputElements.push_back(std::move(elem));
+    }

    // Add the libraries specified by /defaultlib unless they are already

llvm-commits mailing list
llvm-commits at cs.uiuc.edu



Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
the Linux Foundation 

llvm-commits mailing list
llvm-commits at cs.uiuc.edu


llvm-commits mailing list
llvm-commits at cs.uiuc.edu

Rick Foos
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by
The Linux Foundation
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131114/afb77339/attachment.html>

More information about the llvm-commits mailing list