mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-10-15 05:32:09 +08:00
Update to FreeBSD head 2018-02-01
Git mirror commit d079ae0442af8fa3cfd6d7ede190d04e64a2c0d4. Update #3472.
This commit is contained in:
@@ -57,6 +57,8 @@ static struct nlist namelist[] = {
|
||||
{ .n_name = "_mp_maxid" },
|
||||
#define X_ALL_CPUS 2
|
||||
{ .n_name = "_all_cpus" },
|
||||
#define X_VM_NDOMAINS 3
|
||||
{ .n_name = "_vm_ndomains" },
|
||||
{ .n_name = "" },
|
||||
};
|
||||
|
||||
@@ -300,11 +302,12 @@ memstat_kvm_uma(struct memory_type_list *list, void *kvm_handle)
|
||||
{
|
||||
LIST_HEAD(, uma_keg) uma_kegs;
|
||||
struct memory_type *mtp;
|
||||
struct uma_zone_domain uzd;
|
||||
struct uma_bucket *ubp, ub;
|
||||
struct uma_cache *ucp, *ucp_array;
|
||||
struct uma_zone *uzp, uz;
|
||||
struct uma_keg *kzp, kz;
|
||||
int hint_dontsearch, i, mp_maxid, ret;
|
||||
int hint_dontsearch, i, mp_maxid, ndomains, ret;
|
||||
char name[MEMTYPE_MAXNAME];
|
||||
cpuset_t all_cpus;
|
||||
long cpusetsize;
|
||||
@@ -326,6 +329,12 @@ memstat_kvm_uma(struct memory_type_list *list, void *kvm_handle)
|
||||
list->mtl_error = ret;
|
||||
return (-1);
|
||||
}
|
||||
ret = kread_symbol(kvm, X_VM_NDOMAINS, &ndomains,
|
||||
sizeof(ndomains), 0);
|
||||
if (ret != 0) {
|
||||
list->mtl_error = ret;
|
||||
return (-1);
|
||||
}
|
||||
ret = kread_symbol(kvm, X_UMA_KEGS, &uma_kegs, sizeof(uma_kegs), 0);
|
||||
if (ret != 0) {
|
||||
list->mtl_error = ret;
|
||||
@@ -450,10 +459,17 @@ skip_percpu:
|
||||
kz.uk_ipers;
|
||||
mtp->mt_byteslimit = mtp->mt_countlimit * mtp->mt_size;
|
||||
mtp->mt_count = mtp->mt_numallocs - mtp->mt_numfrees;
|
||||
for (ubp = LIST_FIRST(&uz.uz_buckets); ubp !=
|
||||
NULL; ubp = LIST_NEXT(&ub, ub_link)) {
|
||||
ret = kread(kvm, ubp, &ub, sizeof(ub), 0);
|
||||
mtp->mt_zonefree += ub.ub_cnt;
|
||||
for (i = 0; i < ndomains; i++) {
|
||||
ret = kread(kvm, &uz.uz_domain[i], &uzd,
|
||||
sizeof(uzd), 0);
|
||||
for (ubp =
|
||||
LIST_FIRST(&uzd.uzd_buckets);
|
||||
ubp != NULL;
|
||||
ubp = LIST_NEXT(&ub, ub_link)) {
|
||||
ret = kread(kvm, ubp, &ub,
|
||||
sizeof(ub), 0);
|
||||
mtp->mt_zonefree += ub.ub_cnt;
|
||||
}
|
||||
}
|
||||
if (!((kz.uk_flags & UMA_ZONE_SECONDARY) &&
|
||||
LIST_FIRST(&kz.uk_zones) != uzp)) {
|
||||
|
Reference in New Issue
Block a user