Re: Rework hypervisor detection
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 2014-10-27 13:16:45 -0400, Jung-uk Kim wrote: 2014년 10월 27일 13:16에 Jung-uk Kim 이(가) 쓴 글:> On 2014-10-27 12:47:13 -0400, Conrad Meyer wrote: >> Hi John, > >> I don't have access to phabricator so I'll try and review in >> email. > >>> +#ifdef XEN +int vm_guest = VM_GUEST_XEN; +#else +int vm_guest >>> = VM_GUEST_NO; /* Running as virtual machine guest? */ +#endif > >> The whitespace between 'int' and 'vm_guest' in the second line >> seems wrong (extra space?). > >> For vmware_hvcall() in x86/include/vmware.h, are you sure the >> inline assembly is correct? Have you tried the detection on a >> VMware VM? VMware's documentation specifies the arguments in a >> different order[0], and at Isilon when we tried the port-based >> detection in a slightly older revision of CURRENT, it didn't >> work (IIRC). > >> Everything else looks good to me, thanks. > >> [0]: >> http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458 > >> > I wrote the code and it worked for me at the time. I'll try again > soon. I just tested the function and it still works well. Jung-uk Kim -BEGIN PGP SIGNATURE- Version: GnuPG v2 iQEcBAEBAgAGBQJUTo9cAAoJEHyflib82/FGLOAIAJYFN2KVlaLgmVTtOX5uU/yf gjazSIRLzQopS/yMUDvZ0hSJovoqFtHpUHTWwIMhqbpKD0u2OehTVWrt+frYrrG1 R0DHlWXIeBkfgdp3fD/6jW5Bbq1yNidn6arquSbbhxLROOTkuE0jiHUHYhgkD89a ZluWuHfuNCPrAYEfLKAOs739ocQO+xZe+jeS2lae74bSgE06kRnQgx72Cv7ZZU35 l3C152sJKuDR+P9DOxi/mLdWcNXO76YFXkmt2JvIey2FUsw3fCIYXbN0FOz/dWD6 q8DaSCWjxYHs1TLPCueBrOgOyIzDQ5Ky4l1V/8aBROigtgmVsxv0U/rKZO5pSSs= =dG0n -END PGP SIGNATURE- ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: Rework hypervisor detection
On Monday, October 27, 2014 12:47:13 PM Conrad Meyer wrote: > Hi John, > > I don't have access to phabricator so I'll try and review in email. > > > +#ifdef XEN > > +int vm_guest = VM_GUEST_XEN; > > +#else > > +int vm_guest = VM_GUEST_NO; /* Running as virtual machine guest? */ > > +#endif > > The whitespace between 'int' and 'vm_guest' in the second line seems > wrong (extra space?). Yep, fixed. > For vmware_hvcall() in x86/include/vmware.h, are you sure the inline > assembly is correct? Have you tried the detection on a VMware VM? > VMware's documentation specifies the arguments in a different > order[0], and at Isilon when we tried the port-based detection in a > slightly older revision of CURRENT, it didn't work (IIRC). I don't have VMware handy, but it is a simple copy and paste of existing code in tsc.c. -- John Baldwin ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: Rework hypervisor detection
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 2014-10-27 12:47:13 -0400, Conrad Meyer wrote: > Hi John, > > I don't have access to phabricator so I'll try and review in > email. > >> +#ifdef XEN +int vm_guest = VM_GUEST_XEN; +#else +int vm_guest = >> VM_GUEST_NO; /* Running as virtual machine guest? */ +#endif > > The whitespace between 'int' and 'vm_guest' in the second line > seems wrong (extra space?). > > For vmware_hvcall() in x86/include/vmware.h, are you sure the > inline assembly is correct? Have you tried the detection on a > VMware VM? VMware's documentation specifies the arguments in a > different order[0], and at Isilon when we tried the port-based > detection in a slightly older revision of CURRENT, it didn't work > (IIRC). > > Everything else looks good to me, thanks. > > [0]: > http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458 I > wrote the code and it worked for me at the time. I'll try again soon. Jung-uk Kim -BEGIN PGP SIGNATURE- Version: GnuPG v2 iQEbBAEBAgAGBQJUTn39AAoJEHyflib82/FGWt8H+IoPF03arSi2lAgT+LnVrKgj x+r/yKfQ4+5/nxwRfvu/6FER+AUCWRYt+C12vnYdJwpx4iyspNi9FLDgyqpgtmgA FQQr1ZYuOG8fHDln5gGxXG8p3VQBce5zaVHK7CHaLrgPMM1qY6OE35aSplzCIpsH 9QmlokW5gjaPvCt/EdCnbHB3nBZ2O8gpkd1GCr4OZwNerkmUmDL3dM08DgKVQsED eeYhOKP6e4cLNG/1VGLqcMpMH93CYFmukOcLMpiNNaFwC2zEusah6X5e98bzeVxk HcgMvB451OWEVoM93CoV86q3DTlxRthpwnuB06LfSDHSZRrRO4IqYR9Sj3OYFQ== =/9eJ -END PGP SIGNATURE- ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Re: Rework hypervisor detection
Hi John, I don't have access to phabricator so I'll try and review in email. > +#ifdef XEN > +int vm_guest = VM_GUEST_XEN; > +#else > +int vm_guest = VM_GUEST_NO; /* Running as virtual machine guest? */ > +#endif The whitespace between 'int' and 'vm_guest' in the second line seems wrong (extra space?). For vmware_hvcall() in x86/include/vmware.h, are you sure the inline assembly is correct? Have you tried the detection on a VMware VM? VMware's documentation specifies the arguments in a different order[0], and at Isilon when we tried the port-based detection in a slightly older revision of CURRENT, it didn't work (IIRC). Everything else looks good to me, thanks. [0]: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009458 Best, Conrad ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"
Rework hypervisor detection
The current code to detect a hypervisor in FreeBSD is a git gross. First, it's x86-specific, but stored in MI code. Second, it does not follow the best practice of using cpuid info but only depends on DMI/SMBIOS strings. The patch below attempts to improve this. We might want to move the VM_GUEST_HV detection into this new function as well. https://reviews.freebsd.org/D1010 -- John Baldwin ___ freebsd-virtualization@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization To unsubscribe, send any mail to "freebsd-virtualization-unsubscr...@freebsd.org"