Samsung 960 Pro NVMe SSD speeds are crazy

So I installed a new Samsung 960 Pro NVMe SSD in my Asus Prime x370 Pro motherboard

I was on the Windows 10 Insider Preview. It was ‘ok’. Used the Samsung Magician software, followed all the rules, rah rah.

samsung mag

Now, Samsung publishes the speed rating for that drive is

Sequential Read Speed:  Max 3,500 MB/sec

Sequential Write Speed:  Max 2,100 MB/sec


I mean, what I had was fast. So I didn’t think anything of it. Right?

I had issues with the Insider Preview and rebuilt from scratch. Didn’t have time to debug it, and since I am no longer a Microsoft employee, I don’t have access to private symbols anyway, nor the ability to file a bug. So meh.

Back to 10 Pro. I rebuilt. Before I installed Samsung Magician and the “right” drivers, I did a speed test using Crystal Disk Mark. (Yes, I know it isn’t a diskspd test, I just wanted a quick check).

The results…using stock Windows 10 Pro drivers from 1703 are, shall we say, impressive.


Now I could install Samsung Magician and retest. But then it’d modify the driver and screw this up for me most likely. So, no thanks. I’ll keep my advertised speeds thank you very much.

Good job to Microsoft, hats off for a stock driver that kicks butt!

default driver

Till next time, the dude does in fact abide, albeit somewhat speedily…

Build a Perfmon data collector set from a PAL xml template

Howdy, simple walk-through post on how to build a Perfmon data collector set using the excellent templates available from Clint Huffman’s PAL utility.

Step 1: Export the appropriate template from PAL;


One just clicks Threshold File (1), then Export to Perfmon template file (2), and gives it a file name to save as.

Step 2: Open Perfmon. Expand Data Collector Sets, User Defined, right-click, new – Data Collector Set. Give it a friendly name and hit next.

Step 3: click Browse, pick your XML file created in step 1. Click finish.

Step 4: Right click the new data collector set, properties. click on Stop Condition. Make it as so (200 MB limited file creation, restart at limit). Then click OK.


Step 5: right click the PAL_System_Overview under your data collector set, properties, change sample interval to 5 seconds. Click File, set File name format to ddHHmmss and check Prefix file with computer name.


Click OK. right click and start the data collector set. Verify the files are being created in the Perflogs directory.


Hyper-V Pro Tip: Don’t cross the streams

update: using a single GPU, same results. It’s not the dual-gpu unsupported problem. Something else is hosing my hyper-v host from the guest install.

The results, well, sucked. Nuked the system totally. So don’t cross the streams!


In my lab I was building an MDT share so I could mass deploy endpoints. I’m a hyper-v guy, and a gamer, and an Ethereum miner, so I have a couple video cards in my rig. Now I know, multiple video cards aren’t supported in Hyper-V RemoteFX. I get it. I don’t know why, sounds like some code laziness going on but whatever. I don’t use RemoteFX acceleration in my guest VMs, so I didn’t think much of it…

Until I stood up a Windows 7 Professional SP1 updated install and injected the Hyper-V additions into it as part of the normal MDT process. 

Apparently the guest driver initialization hosed the host? I didn’t think that was supposed to be possible. I’d file a bug but I’m a pro customer now, not enterprise level, so I can’t.

How to find this? Well, GFL looking in the SYSTEM event log, where crashes are typically recorded. It’s empty.

The esoteric Microsoft-Windows-Hyper-V-VMMS/Admin log though? It was pretty helpful. Just have to think to look down in there…

“The required GPU resources could not be accessed. This server cannot run as a RemoteFX host without a GPU. Verify that the GPU is correctly installed.”


Followed quickly by “The machine contains non-identical GPUs. This is not a supported configuration for RemoteFX.”


So I get it. “You shouldn’t be running in this config”. Fair enough.

Should Hyper-V allow this configurations’ guest to crash the host? Probably not.

Another fun fact. I don’t use the GPUs for the guest anyway…


Tanium is hiring!

Hello friends, countrymen, and esteemed guests!

As you may know, I’m a Technical Account Manager* with Tanium now, having left MSFT a bit ago (again). Well, Tanium is growing in big ways and we’re looking for some talented IT/Security folks, particularly in our Southeast Region, and specifically around Tampa, FL and Memphis, TN. We also are on the lookout for folks in Indianapolis, IN and Atlanta, GA!

If you’d be willing to have a conversation about Tanium and careers and seeing if you’d be a good fit here I’d be happy to make time to talk with you as your schedule allows. It’s becoming more and more difficult to find folks with in-depth skills these days so I’m sort of sending out the clarion call here.

The position is a remote/work from home position and encompasses many facets of technology; architecture, security, troubleshooting, automation, consulting, development, and more. This is definitely a job for those that like to stay busy and be challenged every day.

Tanium is a fast moving organization that challenges all of our employees to be our best for both Tanium and our customers. Our customers include a large portion of the US government, 10 of the top 10 banks, most if not all of the major retailers in the US and more.

So hey, hit me up if you want to chat about this opportunity.

*TAM at Tanium does not mean TAM at Microsoft. It’s sort of a PFE/MCS/TSP role. A floor wax and a dessert topping if you will. It’s fun, fast paced, technical and requires some people skills too.

Misadventures in BIOS updates

So I’m on a new-ish motherboard from ASUS that has an AM4 socket for my Ryzen 1700x processor. So far so good right? Well, ASUS released a new BIOS update that “Update AGESA to”. This sounded awesome, or at least a fix, as BIOS 0803 updated to and was noticeably no longer on the download page…


So I updated. What could possibly go wrong?

So, the new bios 805 appears to have an issue with mixed DRAM configurations where it marks RAM bank B as present, but Windows sees it as hardware reserved and BIOS doesn’t account for it…


So above is the problem case, note memory is 16384, even though DRAM status sees all 4 sticks and they amount to 24GB…


It’s been my experience that computers are generally good at math, at least better than I am at it…so…yeah.

I dorked around, on a whim. I reboot, force D.O.C.P. config (whatever that is). We are now good after 1 reboot for D.O.C.P. to take effect. #becausesunspots



Now, the bad part, when I do this it reboots (naturally), but then fails to post 3 times and recovers). I have to hit F1 (apparently D.O.C.P. means “OVERCLOCKME BADLY”. Since, well, it thinks my DDR4 RAM is capable of 2667 when it is capped at 2400. Whatever.

So I disable D.O.C.P., now I have my memory accounted for properly?!



Homophobic space nazis here on earth to buy remaindered furniture.

or something.

Docker on Windows: MobyLinuxVM failed to realize – fixed

Fix for MobyLinuxVM failed to realize on Docker for Windows install.


  1. Download Docker for Windows (edge or stable branch, doesn’t seem to matter).
  2. Boot up and Docker will fail to start with MobyLinuxVM failed to realize.DBTDIHvU0AAdvLk

The hint is the text “<No file>” in the window above, for my scenario fix anyway.

To fix:

  1. Further investigation reveals the vhd is actually not there, nor is the VM present in Hyper-V manager. Looking further, something is amiss.
  2. Right-click the Docker icon in your system tray, select Settings.2017-06-02_3-44-56
  3. Select Advanced and validate your path for “Images and volumes VHD location”.2017-06-02_3-46-59
  4. Note the path. Does it exist? For me, no. It’s an old setting from a previous installation of Hyper-V on this system. The path is invalid as I removed Hyper-V to a dedicated host and deleted the directories post migration.
  5. Uninstall Docker (rerun the installer you downloaded, select Remove).
  6. Open Hyper-V Manager. (start, type “Hyper-V” and click it) 2017-06-02_4-03-38
  7. Right click your host name in Hyper-V Manager and select “Hyper-V Settings”.
  8. Browse your “Virtual Hard Disks” and “Virtual Machines” paths and set to valid directories, Save/Ok/Apply/etc.2017-06-02_4-05-33.png
  9. Reinstall Docker from the downloaded installer. Now that the Hyper-V path for VM/disks is valid, Docker can place the MobyLinuxVM disk and create the Virtual Machine in Hyper-V and start it. yay.
  10. ???
  11. Profit


Suggestion: Pre-flight installer for Docker for Windows might want to check that the paths are valid for the creation of the vhd file/VM.

Further suggestion: When you run Hyper-V for a bit, then remove the feature from Windows. MAYBE, just maybe, Windows should remove the damn settings so when you re-enable Hyper-V it starts off fresh, instead of with stale info.

Further further suggestion: Live long and prosper.

This is the bug I filed, looks like they might fix it (should be a hyper-v fix too honestly, maybe I’ll feedback that too).


Dude out