Add function to track free bytes in the coremap.
This commit is contained in:
parent
a7526befe4
commit
a367007689
@ -126,6 +126,15 @@ free_kpages(vaddr_t addr)
|
||||
(void)addr;
|
||||
}
|
||||
|
||||
unsigned
|
||||
int
|
||||
coremap_free_bytes() {
|
||||
|
||||
/* dumbvm doesn't track page allocations. Return 0 so that khu works. */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
vm_tlbshootdown_all(void)
|
||||
{
|
||||
|
@ -55,6 +55,14 @@ int vm_fault(int faulttype, vaddr_t faultaddress);
|
||||
vaddr_t alloc_kpages(unsigned npages);
|
||||
void free_kpages(vaddr_t addr);
|
||||
|
||||
/*
|
||||
* Return amount of free memory (in bytes) available in unallocated coremap pages.
|
||||
* If there are ongoing allocations, this value could change after it is
|
||||
* returned to the caller. But it should have been correct at some point in
|
||||
* time.
|
||||
*/
|
||||
unsigned int coremap_free_bytes(void);
|
||||
|
||||
/* TLB shootdown handling called from interprocessor_interrupt */
|
||||
void vm_tlbshootdown_all(void);
|
||||
void vm_tlbshootdown(const struct tlbshootdown *);
|
||||
|
@ -827,16 +827,16 @@ kheap_printused(void)
|
||||
{
|
||||
struct pageref *pr;
|
||||
unsigned long total = 0;
|
||||
char total_string[32];
|
||||
|
||||
/* print the whole thing with interrupts off */
|
||||
spinlock_acquire(&kmalloc_spinlock);
|
||||
|
||||
for (pr = allbase; pr != NULL; pr = pr->next_all) {
|
||||
total += subpage_stats(pr, true);
|
||||
}
|
||||
|
||||
total += coremap_free_bytes();
|
||||
spinlock_release(&kmalloc_spinlock);
|
||||
|
||||
char total_string[32];
|
||||
snprintf(total_string, sizeof(total_string), "%lu", total);
|
||||
secprintf(SECRET, total_string, "khu");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user