@@ -202,7 +202,15 @@ func (m *manager) createInstance(
202202 // 8. Get default kernel version
203203 kernelVer := m .systemManager .GetDefaultKernelVersion ()
204204
205- // 9. Validate, resolve, and auto-bind devices (GPU passthrough)
205+ // 9. Get process manager for hypervisor type (needed for socket name)
206+ hvType := hypervisor .TypeCloudHypervisor
207+ pm , err := m .getProcessManager (hvType )
208+ if err != nil {
209+ log .ErrorContext (ctx , "failed to get process manager" , "error" , err )
210+ return nil , fmt .Errorf ("get process manager: %w" , err )
211+ }
212+
213+ // 10. Validate, resolve, and auto-bind devices (GPU passthrough)
206214 // Track devices we've marked as attached for cleanup on error.
207215 // The cleanup closure captures this slice by reference, so it will see
208216 // whatever devices have been attached when cleanup runs.
@@ -256,7 +264,7 @@ func (m *manager) createInstance(
256264 log .DebugContext (ctx , "validated devices for passthrough" , "id" , id , "devices" , resolvedDeviceIDs )
257265 }
258266
259- // 10 . Create instance metadata
267+ // 11 . Create instance metadata
260268 stored := & StoredMetadata {
261269 Id : id ,
262270 Name : req .Name ,
@@ -271,30 +279,30 @@ func (m *manager) createInstance(
271279 StartedAt : nil ,
272280 StoppedAt : nil ,
273281 KernelVersion : string (kernelVer ),
274- HypervisorType : hypervisor . TypeCloudHypervisor ,
282+ HypervisorType : hvType ,
275283 HypervisorVersion : string (vmm .V49_0 ), // Use latest
276- SocketPath : m .paths .InstanceSocket (id , string ( hypervisor . TypeCloudHypervisor )),
284+ SocketPath : m .paths .InstanceSocket (id , pm . SocketName ( )),
277285 DataDir : m .paths .InstanceDir (id ),
278286 VsockCID : vsockCID ,
279287 VsockSocket : vsockSocket ,
280288 Devices : resolvedDeviceIDs ,
281289 }
282290
283- // 11 . Ensure directories
291+ // 12 . Ensure directories
284292 log .DebugContext (ctx , "creating instance directories" , "instance_id" , id )
285293 if err := m .ensureDirectories (id ); err != nil {
286294 log .ErrorContext (ctx , "failed to create directories" , "instance_id" , id , "error" , err )
287295 return nil , fmt .Errorf ("ensure directories: %w" , err )
288296 }
289297
290- // 12 . Create overlay disk with specified size
298+ // 13 . Create overlay disk with specified size
291299 log .DebugContext (ctx , "creating overlay disk" , "instance_id" , id , "size_bytes" , stored .OverlaySize )
292300 if err := m .createOverlayDisk (id , stored .OverlaySize ); err != nil {
293301 log .ErrorContext (ctx , "failed to create overlay disk" , "instance_id" , id , "error" , err )
294302 return nil , fmt .Errorf ("create overlay disk: %w" , err )
295303 }
296304
297- // 13 . Allocate network (if network enabled)
305+ // 14 . Allocate network (if network enabled)
298306 var netConfig * network.NetworkConfig
299307 if networkName != "" {
300308 log .DebugContext (ctx , "allocating network" , "instance_id" , id , "network" , networkName )
@@ -319,7 +327,7 @@ func (m *manager) createInstance(
319327 })
320328 }
321329
322- // 14 . Validate and attach volumes
330+ // 15 . Validate and attach volumes
323331 if len (req .Volumes ) > 0 {
324332 log .DebugContext (ctx , "validating volumes" , "instance_id" , id , "count" , len (req .Volumes ))
325333 for _ , volAttach := range req .Volumes {
@@ -359,30 +367,30 @@ func (m *manager) createInstance(
359367 stored .Volumes = req .Volumes
360368 }
361369
362- // 15 . Create config disk (needs Instance for buildVMConfig)
370+ // 16 . Create config disk (needs Instance for buildVMConfig)
363371 inst := & Instance {StoredMetadata : * stored }
364372 log .DebugContext (ctx , "creating config disk" , "instance_id" , id )
365373 if err := m .createConfigDisk (ctx , inst , imageInfo , netConfig ); err != nil {
366374 log .ErrorContext (ctx , "failed to create config disk" , "instance_id" , id , "error" , err )
367375 return nil , fmt .Errorf ("create config disk: %w" , err )
368376 }
369377
370- // 16 . Save metadata
378+ // 17 . Save metadata
371379 log .DebugContext (ctx , "saving instance metadata" , "instance_id" , id )
372380 meta := & metadata {StoredMetadata : * stored }
373381 if err := m .saveMetadata (meta ); err != nil {
374382 log .ErrorContext (ctx , "failed to save metadata" , "instance_id" , id , "error" , err )
375383 return nil , fmt .Errorf ("save metadata: %w" , err )
376384 }
377385
378- // 17 . Start VMM and boot VM
386+ // 18 . Start VMM and boot VM
379387 log .InfoContext (ctx , "starting VMM and booting VM" , "instance_id" , id )
380388 if err := m .startAndBootVM (ctx , stored , imageInfo , netConfig ); err != nil {
381389 log .ErrorContext (ctx , "failed to start and boot VM" , "instance_id" , id , "error" , err )
382390 return nil , err
383391 }
384392
385- // 18 . Update timestamp after VM is running
393+ // 19 . Update timestamp after VM is running
386394 now := time .Now ()
387395 stored .StartedAt = & now
388396
0 commit comments