Closed Bug 845840 Opened 11 years ago Closed 11 years ago

File a support request with ms on our pgo problems

Categories

(Core :: General, defect)

x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jimm, Assigned: jimm)

References

()

Details

(Whiteboard: [ms-support][113042410391964])

To do this, we first need to decide what the support request will be about. The initial report should contain a short write-up explaining the problem we are looking for a solution to. Can someone write up a quick summary?

Ehsan has volunteered to be the main contact.
The summary is that we're running out of address space when compiling xul.dll on Windows with PGO options turned on.  It seems like the only long term solution for us would be to have a 64-bit linker which can generate x86 code.  We need to know if Microsoft has any plans on shipping one in the near future.

Assigning to Vlad since he was the one who suggested this.  :-)
Assignee: nobody → vladimir
I am realistically not going to get to this soon; if someone else with a MSDN account can beat me to it, go for it.  Activating my support account requires making a phonecall and figuring out some paperwork, which is all ugh.
Assignee: vladimir → nobody
Rob, do you have an MSDN account?
Flags: needinfo?(robert.bugzilla)
No I don't... IT used to have a subscription which I have used in the past but I don't know if they still do.
Flags: needinfo?(robert.bugzilla)
mrz, do you know who the right person to handle this is?
Flags: needinfo?(mrz)
Ann, rbrybe indicated in bug 833881 comment 12 that you're the right person to talk to in order to get an MSDN account.  Can you please help us here?

Thanks!
Flags: needinfo?(aignacio)
aignacio@mozilla.com is the right person for this.
Flags: needinfo?(mrz)
I will order an MSDN account.  Who should I assign it to?
Flags: needinfo?(aignacio)
We don't have an active msdn account currently? I find that a bit surprising, but possible!
(In reply to Ann Ignacio [:anni] from comment #8)
> I will order an MSDN account.  Who should I assign it to?

You can assign it to me if you like, I'm on platform integration and do a lot of Windows work. Another good candidate would be Rob Strong, who heads up the platform integration team.
If it is possible to assign multiple contacts for the account please assign Jim Mathies, Brian Bondy, and myself. If not then please assign Jim Mathies.
Unfortunately, the MSDN account is a single-user license.  I have placed the ordered.
(In reply to comment #12)
> Unfortunately, the MSDN account is a single-user license.  I have placed the
> ordered.

Thanks, is that account for Jim?
Yes, I'll assign to him.
(In reply to comment #14)
> Yes, I'll assign to him.

Great!  Jim, can you please ping me about this once you have that account set up?  Thanks!
The MSDN subscription has been assigned to jmathies.  Please check your email for the invitation to login.
(In reply to Ann Ignacio [:anni] from comment #16)
> The MSDN subscription has been assigned to jmathies.  Please check your
> email for the invitation to login.

I never received anything for this AFAICT. Would this email have come from you or from an outside address?
The email should have came from Microsoft.  I resent the invitation again.  Please check your Postini just in case it was quarantined.
(In reply to :Ehsan Akhgari (needinfo? me!) from comment #1)
> The summary is that we're running out of address space when compiling
> xul.dll on Windows with PGO options turned on.  It seems like the only long
> term solution for us would be to have a 64-bit linker which can generate x86
> code.  We need to know if Microsoft has any plans on shipping one in the
> near future.

IMO, this is not the question to ask. The question should be:

"We are building a huge DLL (W source files totaling WMB and X headers totaling XMB which compile into object files totaling YMB in size, with the final DLL being ZMB) and we are running out of linker space when we build with PGO. Currently, a full build requires AMB of memory, and an incremental build requires BMB. We expect to hit the memory limit very soon as we add more code to the DLL at a very fast rate. We have tried to break up the DLL into smaller DLLs but this is getting harder and harder for us; plus we need to have as few DLLs as possible for startup performance reasons.

"Could somebody with knowledge of the linker/compiler internals please give us advice about how to minimize the memory usage of the linker? What types of things in a program cause disproportionate amount of memory to be used? Is it useful at the source files into several static libraries and then link those static libraries together, in terms of conserving memory?"

Make sure the instructions for checking out Gecko and building with PGO are up to date, and include a link to the instructions in the support request. Provide a specific revision ID in the checkout instructions; make sure that revision builds cleanly. Ideally, because our build system is so compilcated, we would provide an objdir that is already built short of toolkit/library, along with an explicit linker command line that can be used (independent of make or any other part of our build system) to reproduce the huge memory usage with the minimum amount of effort.

The initial response from level 1 support will likely be unhelpful. Keep insisting for the support request to be escalated until you are getting assistance from an engineer on the MSVC team. Let them know that the financial cost of the support call is no issue for us, as this is a business-critical issue. Keep in mind that they will work very hard to protect their top-level support engineers and product engineers from having to field this call, but it is very likely that it will have to be escalated all the way to that level. It will be somewhat of a battle. (I haven't done this as a Microsoft customer, but I have done it as an Oracle customer in the past.)
See also http://msdn.microsoft.com/en-us/library/ms853364.aspx

One other key component of the call: it is important to define success criteria. "It links for me" is not success since libxul already links (for a while). Instead, we should decide on what a reasonable memory usage for the current state of the code would be, e.g. one that will get us at least one more year. What do we estimate that that margin would be?

I think it is good to also inquire about when a 64-bit linker will be available, and whether we can participate in the testing of it, in addition to the above inquiry. 

I bet many people will take issue with the part of my suggested question that is "Is it useful at the source files into several static libraries and then link those static libraries together, in terms of conserving memory?" as we already tried that (right?). Maybe others have suggestions for more intelligent questions.
Ghund wrote: "You forgot to mention that you need a lot of memory! A problem the for example the Firefox developers ran into. The compiler/linker ran out of virtual memory when doing the 32-bit releases (and cross-compiling from the 64-bit compiler sadly still isn't possible), which is AFAIK why they had to disable PGO for the time being."

Ankit Asthana wrote: "@Ghund: I would love to setup some time with you so that we can chat more about the issues you folks are currently facing with using PGO. Here's my email 'aasthan@microsoft.com' if you would like to reach out."

- http://blogs.msdn.com/b/vcblog/archive/2013/04/04/how-to-build-faster-and-high-performing-native-applications-using-pgo.aspx
(In reply to comment #21)
> Ghund wrote: "You forgot to mention that you need a lot of memory! A problem
> the for example the Firefox developers ran into. The compiler/linker ran out of
> virtual memory when doing the 32-bit releases (and cross-compiling from the
> 64-bit compiler sadly still isn't possible), which is AFAIK why they had to
> disable PGO for the time being."
> 
> Ankit Asthana wrote: "@Ghund: I would love to setup some time with you so that
> we can chat more about the issues you folks are currently facing with using
> PGO. Here's my email 'aasthan@microsoft.com' if you would like to reach out."
> 
> -
> http://blogs.msdn.com/b/vcblog/archive/2013/04/04/how-to-build-faster-and-high-performing-native-applications-using-pgo.aspx

Great!  I'll reach out to him today.
(In reply to Ann Ignacio [:anni] from comment #18)
> The email should have came from Microsoft.  I resent the invitation again. 
> Please check your Postini just in case it was quarantined.

Thanks, this has been set up. We have two support requests and can purchase more if need be.
(In reply to Jim Mathies [:jimm] from comment #23)
> (In reply to Ann Ignacio [:anni] from comment #18)
> > The email should have came from Microsoft.  I resent the invitation again. 
> > Please check your Postini just in case it was quarantined.
> 
> Thanks, this has been set up. We have two support requests and can purchase
> more if need be.

Cool!  Do you want me to forward you my writeup of the problem?
(In reply to :Ehsan Akhgari (needinfo? me!) from comment #24)
> (In reply to Jim Mathies [:jimm] from comment #23)
> > (In reply to Ann Ignacio [:anni] from comment #18)
> > > The email should have came from Microsoft.  I resent the invitation again. 
> > > Please check your Postini just in case it was quarantined.
> > 
> > Thanks, this has been set up. We have two support requests and can purchase
> > more if need be.
> 
> Cool!  Do you want me to forward you my writeup of the problem?

Sure, send it over. Would you like me to wait to file until you hear back from aasthan?
(In reply to comment #25)
> (In reply to :Ehsan Akhgari (needinfo? me!) from comment #24)
> > (In reply to Jim Mathies [:jimm] from comment #23)
> > > (In reply to Ann Ignacio [:anni] from comment #18)
> > > > The email should have came from Microsoft.  I resent the invitation again. 
> > > > Please check your Postini just in case it was quarantined.
> > > 
> > > Thanks, this has been set up. We have two support requests and can purchase
> > > more if need be.
> > 
> > Cool!  Do you want me to forward you my writeup of the problem?
> 
> Sure, send it over. Would you like me to wait to file until you hear back from
> aasthan?

Hmm, yeah let's give it a day, I guess.  I'll forward the email that I sent to him to you right now.
I'm not sure how closely related this is, but I filed a bug on us running out of address space during linking back in 2010 which claims to be fixed as of VS 2010. https://connect.microsoft.com/VisualStudio/feedback/details/581207/visual-studio-2005-sp1-reproducible-linker-error-lkn1257-caused-by-c1083
Jim, can you please file the support request?  I have not heard from my Microsoft contact yet.
Will do.
Assignee: nobody → jmathies
Our support contact was made aware of our meeting the the build tools team so we determined this request could be closed out. We should get the request back too. Before we do though the person I'm working with is currently trying to track down release schedule information on the 64-bit linker that can target 32-bit bins.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Whiteboard: [ms-support][113042410391964]
(In reply to comment #30)
> Our support contact was made aware of our meeting the the build tools team so
> we determined this request could be closed out. We should get the request back
> too. Before we do though the person I'm working with is currently trying to
> track down release schedule information on the 64-bit linker that can target
> 32-bit bins.

Great!  Thanks a lot for your help here, Jim, and please let us know if you hear back from them on the release schedule.  (I hope to hear VS 2013 ;-)
You need to log in before you can comment on or make changes to this bug.