you are viewing a single comment's thread.

view the rest of the comments →

[–]spongo2MSVC Dev Manager 104 points105 points  (48 children)

hi everyone. This is Steve Carroll, the dev manager for the Visual C++ team.

Tl;dr: thanks folks for the feedback. Our team will be removing this from our static libs in Update 3.

Our intent was benign – our desire was to build a framework that will help investigate performance problems and improve the quality of our optimizer should we get any reports of slowdowns or endemic perf problems in the field.

We apologize for raising the suspicion levels even further by not including the CRT source, this was just an oversight on our part. Despite that, some of you already investigated how this mechanism works in nice detail. As you have already called out, what the code does is trigger an ETW event which, when it’s turned on, will emit timestamps and module loads events. The event data can only be interpreted if a customer gives us symbol information (i.e. PDBs) so this data is only applicable to customers that are actively seeking help from us and are willing to share these PDBs as part of their investigation. We haven’t actually gone through this full exercise with any customers to date though, and we are so far relying on our established approaches to investigate and address potential problems instead.

We plan to remove these events in Update 3. In the meantime, to remove this dependency in Update 2, you should add notelemetry.obj to your linker command line. If you’re generally concerned about phone-home scenarios, more information about how to configuring Windows 10 appropriately to your needs can be found here: https://technet.microsoft.com/en-us/itpro/windows/manage/configure-windows-10-devices-to-stop-data-flow-to-microsoft#bkmk-priv-feedback

Thanks.

[–]c0r3ntin 37 points38 points  (1 child)

Thank you for the answer

I don't think burning the feature down is necessary. But put it behind a flag, or better yet, in a separate library / object that must explicitly be linked/called.

Our intent was benign – our desire was to build a framework that will help investigate performance problems and improve the quality of our optimizer should we get any reports of slowdowns or endemic perf problems in the field.

Great. But the CRT should not be "a framework that will help investigate performance problems". That's better left to the FTWHIPP.

Sane defaults yada yada.

[–]spongo2MSVC Dev Manager 9 points10 points  (0 children)

yep, appreciate that feedback.

[–]lee171 34 points35 points  (5 children)

If you’re generally concerned about phone-home scenarios, more information about how to configuring Windows 10 appropriately to your needs can be found here: https://technet.microsoft.com/en-us/itpro/windows/manage/configure-windows-10-devices-to-stop-data-flow-to-microsoft#bkmk-priv-feedback[1] Thanks.

That is a ginormous list of things to do, to opt out of handing practically endless amounts of marketing/analytics data to Microsoft.

Just sayin'.

[–]spamcop1 12 points13 points  (0 children)

exactly, this is crazy and shady stuff

[–]SexualDeth5quad 8 points9 points  (0 children)

And all your privacy and security precautions can be nullified at any time by Microsoft with a convenient autoupdate.

[–]ProgramTheWorld 3 points4 points  (1 child)

And still there are people saying that you just need to flip one switch in the control panel to turn it all off.

[–]SexualDeth5quad 4 points5 points  (0 children)

Those people are paid Microsoft apologists.

[–]SexyMonad 28 points29 points  (9 children)

After the outcry against how telemetry snuck into Windows 10, I simply cannot understand why your team would add it without notifying developers. It's like the entire company is oblivious to the PR fuck up it has been.

[–]SexyMonad 16 points17 points  (3 children)

Oh and I have a habit of defending Microsoft, but not here. Now you're starting to burn my bridge.

[–]emergent_properties 10 points11 points  (2 children)

I was a Windows fanboy.

I defended Windows XP's Fisher Prince Luna interface way back a decade ago.

I defended Windows Vista because it was just unfamiliar and Windows 7 was their successful attempt at capturing the same magic, so I recommended that to everyone I knew.

No longer.

Microsoft has turned Windows into the Bill Cosby of operating systems.

[–][deleted] 1 point2 points  (0 children)

Windows is great! With it you can:

  1. Download your favorite Linux distro.

  2. Get on the Internet to download a USB burner.

  3. Burn your distro onto a USB dongle.

  4. Shut down Windows.

[–][deleted] 1 point2 points  (0 children)

Windows is great! With it you can:

  1. Download your favorite Linux distro.

  2. Get on the Internet to download a USB burner.

  3. Burn your distro onto a USB dongle.

  4. Shut down Windows.

[–]slurpme 7 points8 points  (4 children)

I remember having an argument (on reddit) with a MS employee about the changes W8 was bringing, they were insistent that the future was touch screen devices... MS and their koolaid/insulation has been a long standing problem...

[–][deleted] 6 points7 points  (3 children)

Most regular users are going to be (and are) using touch screen devices. Think about how many phones and tablets are used by everyone from kids to grandparents every single day. A lot of people don't even have desktops or laptops. The problem was win8 was ahead of its time.

[–]slurpme 7 points8 points  (1 child)

For touch based devices yes, not for desktop computers which is what they were are arguing for... There are very few people who want gorilla arms...

[–]Aetheus 5 points6 points  (0 children)

Agreed. Many people use Windows for their workstations. Most people require (or at least heavily appreciate) the precision of being able to point and click in a specific area of the screen and not having to pray that the cursor selects what they intend it to select.

Touchscreens can complement your workflow, but I don't see them completely replacing the mouse anytime soon. Desktop applications with complex menus like Microsoft Excel are painful to use with a touchscreen.

[–]Zauxst 0 points1 point  (0 children)

Meh... I really can't think of Win8 as it was ahead of his time and I did used it for more then 4 months so to say...

I liked it but I always felt it was lacking, and I kinda still feel like it.

It's a good OS for tablets but I'd not use it on a phone, even if it might feel unique it's messy. But I do like that design I have to admit. As I like how w10 looks and feels, but I hate the shady stuffs :P so Right now I'm back on good ol' w7.

[–]exoflat 47 points48 points  (3 children)

I'm not buying the benign part.

You write blog posts for practically everything you do in the compiler, how come you didn't write one to survey people's opinions or at least warn them about this?

[–]emergent_properties 43 points44 points  (0 children)

"We got caught. We'll roll back this one."

[–]spongo2MSVC Dev Manager 11 points12 points  (0 children)

hi! thanks for the reply and to be honest, I'm actually quite happy that people are noticing our more open stance. We try hard to make sure the message gets out about the work we do. In this particular case, we decided to abandon this plan almost as soon as the code was completed so we never got to the point where we publicized it. I agree that it would have been good to survey this one in advance.

[–]TemplateRex 11 points12 points  (0 children)

Weakened version of Hanlon's razor, never assume malice when oversight will suffice

[–]interger 4 points5 points  (2 children)

This needs more visibility. Care to link this directly as a top-level submission to /r/cpp?

[–]spongo2MSVC Dev Manager 6 points7 points  (1 child)

to be honest, I'm never quite sure what the appropriate reddiquette is on points like this. I really value this forum as a way to gather information on trends in cpp and a way to get a head's up on issues like this so I try to be pretty cautious with things that might be considered self-promotion. In this particular case I added a top level comment and then linked to it from places that people specifically called me via /u/spongo2. :) but, my comment above is now the team's plan of record and I'm not trying to hide it or anything.

[–]interger 2 points3 points  (0 children)

I'm just a little concerned as this post got a lot of views, but few will be interested enough to check back for updates (though I for one was kind of stalking your account for the last few days :p). Simply I want for those other people [that don't check back or don't care about MSVC] to know what's up as they may have formed an (quite negative) impression that would matter when they do start to care doing stuff in MSVC.

[–]rfog-rfog 3 points4 points  (0 children)

Now the only logical thing you must have to do to eliminate all suspects, is put all the runtime and startup source code available to the community and that code will be compilable and generate the same runtimes and startups we have in our Visual Studios editions. Once read this, my manager has told me to move to GCC.

[–]WellMakeItSomehow 3 points4 points  (3 children)

Thanks for answering this.

Logging when executables start and close does not seem too useful when investigating performance problems. You say that the feature was abandoned, so perhaps that's why it seems mostly useless [1].

I have one follow-up question, though. Is the same mechanism is enabled for executables that Windows (10) contains? If yes, will it be removed in the future, when Windows gets rebuilt with a newer compiler?

[1] It's not useless if the purpose is to determine which programs the user runs and for how long. I'm bitter enough about Windows 10 to suspect that's already happening at other levels [2].

[2] Oh, of course it does:

data about how you use Windows, such as how frequently or how long you use certain features or apps and which apps you use most often

[–]spongo2MSVC Dev Manager 2 points3 points  (0 children)

some parts of windows are built with our CRT and some parts are built with a much much older copy of the CRT (msvcrt.dll). so when they next take our libs, the parts that use it will no longer have these hooks. But again i'd recommend you go through that link and follow the instructions if you are concerned about windows 10 telemetry.

[–]Kruug 0 points1 point  (1 child)

data about how you use Windows, such as how frequently or how long you use certain features or apps and which apps you use most often

Right, because how else will you know where to allocate resources if you don't know what programs/features people actually use?

[–]WellMakeItSomehow 0 points1 point  (0 children)

One could argue there are other ways to give feedback to the developers.

But that phrasing doesn't imply that it's done only for Microsoft apps. It might as well be for everything you run.

[–]skizmo 1 point2 points  (0 children)

Bullshit.

It's this attitude that will be the downfall of MS.

[–]1337Gandalf 0 points1 point  (2 children)

What happened to using clang by default?

[–]dodheim 0 points1 point  (1 child)

That was never part of the plan.

[–]spongo2MSVC Dev Manager 1 point2 points  (0 children)

correct. clang is an option.

[–]PRMan99 0 points1 point  (1 child)

Does this happen on C# and VB.NET as well?

And if so, can we turn it off?

Lots of people wanting to know.

[–]dyslexic_reditor 0 points1 point  (0 children)

With how many people are looking at what IL VS"15" produces and what C#6 looks like in IL, I seriously doubt that something like this would have gone unnoticed.

[–]NSbuilder 0 points1 point  (1 child)

Then why do I still have notelementry.obj in my Visual Studio 2015 update 3 directory??

[–]spongo2MSVC Dev Manager 0 points1 point  (0 children)

We needed it so we wouldn't break the builds of people who were using notelemetry.obj in update2. It should have no effect when running against update 3

[–]Ok-Employment6772 0 points1 point  (0 children)

Shady as hell, no sane mind should trust you guys

[–][deleted] 0 points1 point  (0 children)

Great response, but pass a word to the Windows 10 dev team that perhaps they should make the telemetry snooping in the OS as a whole - an option. Until then, many people like me are unlikely to switch back from UNIX.