DragonFly BSD
DragonFly submit List (threaded) for 2012-05
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

[DragonFlyBSD - Submit #2363] Port of FreeBSD clflush and smbios.c


From: Venkatesh Srinivas via Redmine <bugtracker-admin@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 9 May 2012 06:28:27 -0700

Issue #2363 has been updated by Venkatesh Srinivas.


Hi, 

I took a look at the patch, have a few comments:

1) SMBIOS to detect bios vendor and decide if you are in a VMM is not my favourite approach. CPUID2_VMM is available in one extended set of CPUID feature flags:
if (cpu_feature2 & CPUID2_VMM) { /* I am in a VMM! */ }

2) Tiny thing, I'd like to see all of the VM_ and vm_ fields added as VMM_ and vmm_; traditionally, vm_* refer to the virtual memory code.

3) Why do you if-0 out the prototype of initializecpu()?
+#if 0
+void   initializecpu(void);
+#endif

4) The convention of having 'vm(m)_guest' available is a good one. We could convert the APIC enable code to use it as well.

5) Just a question -- on systems w/o CLFLUSH, what does the DRM code do? Does it just use WBINVD?

Thanks,
----------------------------------------
Submit #2363: Port of FreeBSD clflush and smbios.c
http://bugs.dragonflybsd.org/issues/2363

Author: David Shao
Status: New
Priority: Normal
Assignee: 
Category: 
Target version: 


Port from FreeBSD of function wrapping asm for clflush, required for latest DRM kernel graphics drivers.
(Reference: http://people.freebsd.org/~kib/drm/)

In addition smbios.c has been ported because FreeBSD uses resulting values to decide whether CLFLUSH can
be enabled on virtual machines.

Users can now report (notoriously unreliable) smbios values from kenv.

Ported ability to disable CLFLUSH using set hw.clflush_disable=1.

The function for clflush has not been tested yet.

There may be some concern that adding smbios.c to loader code may lead to unbootable systems for
code that is nonessential; however, the code has not led to unbootable systems on an Asus P4B266
Pentium 4, a Lenovo S10 netbook, an Asus M5A87 amd64, an Asus ULFT20, and Vmware Fusion 3.1.4.

The current port of accompanying vm detection code for clflush is obviously of
cargo-cult quality because some applies to xen and not to vkernels.


-- 
You have received this notification because you have either subscribed to it, or are involved in it.
To change your notification preferences, please click here: http://bugs.dragonflybsd.org/my/account



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]