@@ -198,12 +198,18 @@ func Cmdline(cfg Config) (string, []string, error) {
198
198
}
199
199
switch y .Arch {
200
200
case limayaml .X8664 :
201
- // NOTE: "-cpu host" seems to cause kernel panic
202
- // (MacBookPro 2020, Intel(R) Core(TM) i7-1068NG7 CPU @ 2.30GHz, macOS 11.3, Ubuntu 21.04)
203
- args = appendArgsIfNoConflict (args , "-cpu" , "Haswell-v4" )
201
+ cpu := "Haswell-v4"
202
+ if isNativeArch (y .Arch ) {
203
+ cpu = "host"
204
+ }
205
+ args = appendArgsIfNoConflict (args , "-cpu" , cpu )
204
206
args = appendArgsIfNoConflict (args , "-machine" , "q35,accel=" + accel )
205
207
case limayaml .AARCH64 :
206
- args = appendArgsIfNoConflict (args , "-cpu" , "cortex-a72" )
208
+ cpu := "cortex-a72"
209
+ if isNativeArch (y .Arch ) {
210
+ cpu = "host"
211
+ }
212
+ args = appendArgsIfNoConflict (args , "-cpu" , cpu )
207
213
args = appendArgsIfNoConflict (args , "-machine" , "virt,accel=" + accel + ",highmem=off" )
208
214
}
209
215
@@ -355,11 +361,14 @@ func getExe(arch limayaml.Arch) (string, []string, error) {
355
361
return exe , args , nil
356
362
}
357
363
358
- func getAccel (arch limayaml.Arch ) string {
364
+ func isNativeArch (arch limayaml.Arch ) bool {
359
365
nativeX8664 := arch == limayaml .X8664 && runtime .GOARCH == "amd64"
360
366
nativeAARCH64 := arch == limayaml .AARCH64 && runtime .GOARCH == "arm64"
361
- native := nativeX8664 || nativeAARCH64
362
- if native {
367
+ return nativeX8664 || nativeAARCH64
368
+ }
369
+
370
+ func getAccel (arch limayaml.Arch ) string {
371
+ if isNativeArch (arch ) {
363
372
switch runtime .GOOS {
364
373
case "darwin" :
365
374
return "hvf"
0 commit comments