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

Nick Kledzik kledzik at apple.com
Thu Nov 14 13:14:13 PST 2013


On Nov 14, 2013, at 9:07 AM, Rick Foos <rfoos at codeaurora.org> wrote:

> 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

Doesn’t that mean that Asan found some problems, but is stuck trying to symbolicate the backtraces?   Is there a way to run Asan and *not* symbolicate?  

This also seems like a bug (infinite loop?) in llvm-symbolizer.  

-Nick


> . 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,
> Rick
> 
> On 11/13/2013 11:21 AM, Sergey Matveev wrote:
> +kcc
>  
> 
> On Wed, Nov 13, 2013 at 6:41 AM, Shankar Easwaran <shankare at codeaurora.org> wrote:
> Sorry for another indirection. Rick foos is working on it. I think there is some good news here :)
> 
> Cced Rick + adding Galina,Dmitri.
> 
> Thanks
> 
> 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:
> 
> Sanitizers?
> 
> 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&view=rev
> Log:
> [PECOFF] Fix use-after-return.
> 
> Modified:
>      lld/trunk/lib/Driver/WinLinkDriver.cpp
> 
> Modified: lld/trunk/lib/Driver/WinLinkDriver.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lld/trunk/lib/Driver/WinLinkDriver.cpp?rev=194545&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:
>         inputElements.push_back(std::unique_ptr<InputElement>(
> -          new PECOFFFileNode(ctx, inputArg->getValue())));
> +          new PECOFFFileNode(ctx,
> ctx.allocateString(inputArg->getValue()))));
>         break;
> 
>   #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
> added
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 
>  
>  
> 
> -- 
> 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
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>  
> 
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 
> 
> 
> -- 
> Rick Foos
> 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
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131114/6da0377a/attachment.html>


More information about the llvm-commits mailing list