Closed Bug 1382625 Opened 7 years ago Closed 6 years ago

Create a mechanism to cause EC2 GPU instances to default to the NVidia display adapter

Categories

(Infrastructure & Operations :: RelOps: General, task)

x86_64
Windows 10
task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: grenade, Assigned: grenade)

References

Details

on Windows versions less than 10 (7 & 8), we use fakemon.vbs to create a fake secondary display and then switch priority to make the monitor connected to the NVidia adapter become the primary display.

on Windows 10 (Creators Update), the option to create a fake secondary display is missing from the Display Settings control panel applet. Meaning we haven't been able to create a secondary display to make use of the NVidia adapter.

disabling the BasicDisplay adapter works for a little while but when gpu tests run, the EC2 instances crash and go into an EC2 "impaired" state, making them useless.

We either need to find a way to create a fake secondary display directly in the registry, or otherwise cause the NVidia adapter to be used by the GPU tests.
First attempted to create display default attached to nvidia:


"\\Device\\Video7"="\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Video\\<deviceid>\\0000"

In this case:

"\\Device\\Video7"="\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Video\\{1260EE7D-BB3B-4905-A1F6-7A1844CEC036}\\0000"



Then added a video entry and enabled vgacompability:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{1260EE7D-BB3B-4905-A1F6-7A1844CEC036}\0000]
"VgaCompatible"=dword:00000001


Ran WMI query 

Update Win32_VideoController set availability=3 WHERE AdapterCompatibility LIKE "NVIDIA%" 

HUP explorer

Then Fakmon and configmymonitor are able to set the display as usable.

However, this will not stick across logout and login of a new user. I am unable to figure out how to make it stick and started to find was to instead stop "blue stutter" problem.
Based on my current research I believe we can stop the hangs by disabling the basic adapter and killing the reg entries  AND stopping the basic display adapter service that checks for software rendering. This should solve the problem and so far in testing that has held up. However, these settings will NOT work on a non GPU instance.
Q: what is the name of the basic display adapter service that should be stopped?
Flags: needinfo?(q)
Short name is 	BasicDisplay

Loads a kernel mode driver 

	%WinDir%\System32\drivers\BasicDisplay.sys

That was the sys call I saw causing a hang.
Flags: needinfo?(q)
I'm struggling to find this sevice...

PS C:\Users\Administrator> Get-Service

Status   Name               DisplayName
------   ----               -----------
Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application Layer Gateway Service
Start... AmazonSSMAgent     Amazon SSM Agent
Stopped  AppIDSvc           Application Identity
Stopped  Appinfo            Application Information
Stopped  AppMgmt            Application Management
Stopped  AppReadiness       App Readiness
Stopped  AppVClient         Microsoft App-V Client
Running  AppXSvc            AppX Deployment Service (AppXSVC)
Running  AudioEndpointBu... Windows Audio Endpoint Builder
Running  Audiosrv           Windows Audio
Stopped  AxInstSV           ActiveX Installer (AxInstSV)
Stopped  BDESVC             BitLocker Drive Encryption Service
Running  BFE                Base Filtering Engine
Stopped  BITS               Background Intelligent Transfer Ser...
Running  BrokerInfrastru... Background Tasks Infrastructure Ser...
Running  Browser            Computer Browser
Stopped  BthHFSrv           Bluetooth Handsfree Service
Stopped  bthserv            Bluetooth Support Service
Running  CDPSvc             Connected Devices Platform Service
Running  CDPUserSvc_471c4   Connected Devices Platform User Ser...
Running  CertPropSvc        Certificate Propagation
Stopped  ClipSVC            Client License Service (ClipSVC)
Stopped  COMSysApp          COM+ System Application
Running  CoreMessagingRe... CoreMessaging
Running  CryptSvc           Cryptographic Services
Stopped  CscService         Offline Files
Running  DcomLaunch         DCOM Server Process Launcher
Stopped  defragsvc          Optimize drives
Stopped  DeviceAssociati... Device Association Service
Stopped  DeviceInstall      Device Install Service
Stopped  DevicesFlowUser... DevicesFlow_471c4
Stopped  DevQueryBroker     DevQuery Background Discovery Broker
Running  Dhcp               DHCP Client
Stopped  diagnosticshub.... Microsoft (R) Diagnostics Hub Stand...
Running  DiagTrack          Connected User Experiences and Tele...
Running  DirMngr            DirMngr
Stopped  DmEnrollmentSvc    Device Management Enrollment Service
Stopped  dmwappushservice   dmwappushsvc
Running  Dnscache           DNS Client
Stopped  DoSvc              Delivery Optimization
Stopped  dot3svc            Wired AutoConfig
Running  DPS                Diagnostic Policy Service
Stopped  DsmSvc             Device Setup Manager
Stopped  DsSvc              Data Sharing Service
Running  DusmSvc            Data Usage
Stopped  EapHost            Extensible Authentication Protocol
Running  Ec2Config          Ec2Config
Stopped  EFS                Encrypting File System (EFS)
Stopped  embeddedmode       Embedded Mode
Stopped  EntAppSvc          Enterprise App Management Service
Running  EventLog           Windows Event Log
Running  EventSystem        COM+ Event System
Stopped  Fax                Fax
Stopped  fdPHost            Function Discovery Provider Host
Stopped  FDResPub           Function Discovery Resource Publica...
Stopped  fhsvc              File History Service
Running  FontCache          Windows Font Cache Service
Stopped  FrameServer        Windows Camera Frame Server
Running  gpsvc              Group Policy Client
Stopped  hidserv            Human Interface Device Service
Stopped  HomeGroupListener  HomeGroup Listener
Stopped  HomeGroupProvider  HomeGroup Provider
Stopped  HvHost             HV Host Service
Stopped  icssvc             Windows Mobile Hotspot Service
Running  IKEEXT             IKE and AuthIP IPsec Keying Modules
Running  iphlpsvc           IP Helper
Stopped  IpxlatCfgSvc       IP Translation Configuration Service
Stopped  irmon              Infrared monitor service
Running  KeyIso             CNG Key Isolation
Stopped  KtmRm              KtmRm for Distributed Transaction C...
Running  LanmanServer       Server
Running  LanmanWorkstation  Workstation
Running  lfsvc              Geolocation Service
Stopped  LicenseManager     Windows License Manager Service
Stopped  lltdsvc            Link-Layer Topology Discovery Mapper
Running  lmhosts            TCP/IP NetBIOS Helper
Running  LSM                Local Session Manager
Stopped  MapsBroker         Downloaded Maps Manager
Stopped  MessagingServic... MessagingService_471c4
Stopped  MozillaMaintenance Mozilla Maintenance Service
Running  MpsSvc             Windows Firewall
Stopped  MSDTC              Distributed Transaction Coordinator
Stopped  MSiSCSI            Microsoft iSCSI Initiator Service
Stopped  msiserver          Windows Installer
Stopped  NaturalAuthenti... Natural Authentication
Stopped  NcaSvc             Network Connectivity Assistant
Running  NcbService         Network Connection Broker
Stopped  NcdAutoSetup       Network Connected Devices Auto-Setup
Stopped  Netlogon           Netlogon
Stopped  Netman             Network Connections
Running  netprofm           Network List Service
Stopped  NetSetupSvc        Network Setup Service
Stopped  NetTcpPortSharing  Net.Tcp Port Sharing Service
Stopped  NgcCtnrSvc         Microsoft Passport Container
Stopped  NgcSvc             Microsoft Passport
Running  NlaSvc             Network Location Awareness
Running  nsi                Network Store Interface Service
Running  nvsvc              NVIDIA Display Driver Service
Running  nxlog              nxlog
Stopped  OneSyncSvc_471c4   Sync Host_471c4
Stopped  p2pimsvc           Peer Networking Identity Manager
Stopped  p2psvc             Peer Networking Grouping
Running  PcaSvc             Program Compatibility Assistant Ser...
Stopped  PeerDistSvc        BranchCache
Stopped  PerfHost           Performance Counter DLL Host
Stopped  PhoneSvc           Phone Service
Stopped  PimIndexMainten... Contact Data_471c4
Stopped  pla                Performance Logs & Alerts
Running  PlugPlay           Plug and Play
Stopped  PNRPAutoReg        PNRP Machine Name Publication Service
Stopped  PNRPsvc            Peer Name Resolution Protocol
Running  PolicyAgent        IPsec Policy Agent
Running  Power              Power
Stopped  PrintNotify        Printer Extensions and Notifications
Running  ProfSvc            User Profile Service
Stopped  QWAVE              Quality Windows Audio Video Experience
Stopped  RasAuto            Remote Access Auto Connection Manager
Stopped  RasMan             Remote Access Connection Manager
Stopped  RemoteAccess       Routing and Remote Access
Stopped  RemoteRegistry     Remote Registry
Stopped  RetailDemo         Retail Demo Service
Stopped  RmSvc              Radio Management Service
Running  RpcEptMapper       RPC Endpoint Mapper
Stopped  RpcLocator         Remote Procedure Call (RPC) Locator
Running  RpcSs              Remote Procedure Call (RPC)
Running  SamSs              Security Accounts Manager
Stopped  SCardSvr           Smart Card
Running  ScDeviceEnum       Smart Card Device Enumeration Service
Running  Schedule           Task Scheduler
Stopped  SCPolicySvc        Smart Card Removal Policy
Stopped  SDRSVC             Windows Backup
Stopped  seclogon           Secondary Logon
Running  SecurityHealthS... Windows Defender Security Center Se...
Stopped  SEMgrSvc           Payments and NFC/SE Manager
Running  SENS               System Event Notification Service
Stopped  Sense              Windows Defender Advanced Threat Pr...
Stopped  SensorDataService  Sensor Data Service
Stopped  SensorService      Sensor Service
Stopped  SensrSvc           Sensor Monitoring Service
Running  SessionEnv         Remote Desktop Configuration
Stopped  SharedAccess       Internet Connection Sharing (ICS)
Running  ShellHWDetection   Shell Hardware Detection
Stopped  shpamsvc           Shared PC Account Manager
Stopped  smphost            Microsoft Storage Spaces SMP
Stopped  SmsRouter          Microsoft Windows SMS Router Service.
Stopped  SNMPTRAP           SNMP Trap
Stopped  spectrum           Windows Perception Service
Running  Spooler            Print Spooler
Running  sppsvc             Software Protection
Running  SSDPSRV            SSDP Discovery
Stopped  SstpSvc            Secure Socket Tunneling Protocol Se...
Running  StateRepository    State Repository Service
Stopped  stisvc             Windows Image Acquisition (WIA)
Stopped  StorSvc            Storage Service
Stopped  svsvc              Spot Verifier
Stopped  swprv              Microsoft Software Shadow Copy Prov...
Running  SysMain            Superfetch
Running  SystemEventsBroker System Events Broker
Stopped  TabletInputService Touch Keyboard and Handwriting Pane...
Stopped  TapiSrv            Telephony
Running  TermService        Remote Desktop Services
Running  Themes             Themes
Stopped  TieringEngineSe... Storage Tiers Management
Running  tiledatamodelsvc   Tile Data model server
Running  TimeBrokerSvc      Time Broker
Running  TokenBroker        TokenBroker
Running  TrkWks             Distributed Link Tracking Client
Stopped  TrustedInstaller   Windows Modules Installer
Stopped  tzautoupdate       Auto Time Zone Updater
Stopped  UevAgentService    User Experience Virtualization Service
Stopped  UI0Detect          Interactive Services Detection
Running  UmRdpService       Remote Desktop Services UserMode Po...
Stopped  UnistoreSvc_471c4  User Data Storage_471c4
Stopped  upnphost           UPnP Device Host
Stopped  UserDataSvc_471c4  User Data Access_471c4
Running  UserManager        User Manager
Stopped  UsoSvc             Update Orchestrator Service
Running  uvnc_service       uvnc_service
Stopped  VaultSvc           Credential Manager
Stopped  vds                Virtual Disk
Stopped  vmicguestinterface Hyper-V Guest Service Interface
Stopped  vmicheartbeat      Hyper-V Heartbeat Service
Stopped  vmickvpexchange    Hyper-V Data Exchange Service
Stopped  vmicrdv            Hyper-V Remote Desktop Virtualizati...
Stopped  vmicshutdown       Hyper-V Guest Shutdown Service
Stopped  vmictimesync       Hyper-V Time Synchronization Service
Stopped  vmicvmsession      Hyper-V PowerShell Direct Service
Stopped  vmicvss            Hyper-V Volume Shadow Copy Requestor
Stopped  VSS                Volume Shadow Copy
Stopped  W32Time            Windows Time
Stopped  WalletService      WalletService
Stopped  wbengine           Block Level Backup Engine Service
Stopped  WbioSrvc           Windows Biometric Service
Running  Wcmsvc             Windows Connection Manager
Stopped  wcncsvc            Windows Connect Now - Config Registrar
Running  WdiServiceHost     Diagnostic Service Host
Stopped  WdiSystemHost      Diagnostic System Host
Stopped  WdNisSvc           Windows Defender Antivirus Network ...
Stopped  WebClient          WebClient
Stopped  Wecsvc             Windows Event Collector
Stopped  WEPHOSTSVC         Windows Encryption Provider Host Se...
Stopped  wercplsupport      Problem Reports and Solutions Contr...
Stopped  WerSvc             Windows Error Reporting Service
Stopped  WFDSConMgrSvc      Wi-Fi Direct Services Connection Ma...
Stopped  WiaRpc             Still Image Acquisition Events
Stopped  WinDefend          Windows Defender Antivirus Service
Running  WinHttpAutoProx... WinHTTP Web Proxy Auto-Discovery Se...
Running  Winmgmt            Windows Management Instrumentation
Stopped  WinRM              Windows Remote Management (WS-Manag...
Stopped  wisvc              Windows Insider Service
Stopped  WlanSvc            WLAN AutoConfig
Running  wlidsvc            Microsoft Account Sign-in Assistant
Stopped  wlpasvc            LPA Service
Stopped  wmiApSrv           WMI Performance Adapter
Stopped  WMPNetworkSvc      Windows Media Player Network Sharin...
Stopped  workfolderssvc     Work Folders
Running  WPDBusEnum         Portable Device Enumerator Service
Running  WpnService         Windows Push Notifications System S...
Running  WpnUserService_... Windows Push Notifications User Ser...
Stopped  wscsvc             Security Center
Running  WSearch            Windows Search
Running  wuauserv           Windows Update
Running  wudfsvc            Windows Driver Foundation - User-mo...
Stopped  WwanSvc            WWAN AutoConfig
Stopped  xbgm               Xbox Game Monitoring
Stopped  XblAuthManager     Xbox Live Auth Manager
Stopped  XblGameSave        Xbox Live Game Save
Stopped  XboxGipSvc         Xbox Accessory Management Service
Stopped  XboxNetApiSvc      Xbox Live Networking Service


PS C:\Users\Administrator> Get-Service | ? { $_.DisplayName -eq 'BasicDisplay' }
PS C:\Users\Administrator>
I put a couple of commands in your terminal window on your machine. You should be able to disable this service with:

sc config "basicdisplay" start=disabled

and then reboot
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.