FreeBSD Bugzilla – Attachment 186120 Details for
Bug 211432
emulators/virtualbox-ose: wrong free memory calculation
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
freemem calc fix
virtualbox-ose.patch (text/plain), 2.32 KB, created by
Ivan Rozhuk
on 2017-09-06 13:50:37 UTC
(
hide
)
Description:
freemem calc fix
Filename:
MIME Type:
Creator:
Ivan Rozhuk
Created:
2017-09-06 13:50:37 UTC
Size:
2.32 KB
patch
obsolete
>Index: emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp >=================================================================== >--- emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp (nonexistent) >+++ emulators/virtualbox-ose/files/patch-src_VBox_Runtime_r3_freebsd_systemmem-freebsd.cpp (working copy) >@@ -0,0 +1,50 @@ >+--- src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp 2017-07-27 16:18:46.000000000 +0300 >++++ src/VBox/Runtime/r3/freebsd/systemmem-freebsd.cpp 2017-09-06 15:49:45.349182000 +0300 >+@@ -43,7 +43,7 @@ >+ RTDECL(int) RTSystemQueryTotalRam(uint64_t *pcb) >+ { >+ int rc = VINF_SUCCESS; >+- u_long cbMemPhys = 0; >++ uint64_t cbMemPhys = 0; >+ size_t cbParameter = sizeof(cbMemPhys); >+ >+ AssertPtrReturn(pcb, VERR_INVALID_POINTER); >+@@ -62,36 +62,19 @@ >+ AssertPtrReturn(pcb, VERR_INVALID_POINTER); >+ >+ int rc = VINF_SUCCESS; >+- u_int cPagesMemFree = 0; >+- u_int cPagesMemInactive = 0; >+- u_int cPagesMemCached = 0; >+- u_int cPagesMemUsed = 0; >+- int cbPage = 0; >++ uint64_t cPagesMemFree = 0, cbPage = 0; >+ size_t cbParameter; >+- int cProcessed = 0; >+ >+ cbParameter = sizeof(cPagesMemFree); >+ if (sysctlbyname("vm.stats.vm.v_free_count", &cPagesMemFree, &cbParameter, NULL, 0)) >+ rc = RTErrConvertFromErrno(errno); >+- cbParameter = sizeof(cPagesMemUsed); >+- if ( RT_SUCCESS(rc) >+- && sysctlbyname("vm.stats.vm.v_active_count", &cPagesMemUsed, &cbParameter, NULL, 0)) >+- rc = RTErrConvertFromErrno(errno); >+- cbParameter = sizeof(cPagesMemInactive); >+- if ( RT_SUCCESS(rc) >+- && sysctlbyname("vm.stats.vm.v_inactive_count", &cPagesMemInactive, &cbParameter, NULL, 0)) >+- rc = RTErrConvertFromErrno(errno); >+- cbParameter = sizeof(cPagesMemCached); >+- if ( RT_SUCCESS(rc) >+- && sysctlbyname("vm.stats.vm.v_cache_count", &cPagesMemCached, &cbParameter, NULL, 0)) >+- rc = RTErrConvertFromErrno(errno); >+ cbParameter = sizeof(cbPage); >+ if ( RT_SUCCESS(rc) >+ && sysctlbyname("hw.pagesize", &cbPage, &cbParameter, NULL, 0)) >+ rc = RTErrConvertFromErrno(errno); >+ >+ if (RT_SUCCESS(rc)) >+- *pcb = (cPagesMemFree + cPagesMemInactive + cPagesMemCached ) * cbPage; >++ *pcb = (cPagesMemFree * cbPage); >+ >+ return rc; >+ }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 211432
:
186120
|
186123
|
186140
|
186142
|
186149
|
186154
Working