Lines Matching refs:ringbuffer
51 mach_vm_reclaim_ring_t ringbuffer = NULL; in ringbuffer_init() local
54 kern_return_t kr = mach_vm_reclaim_ring_allocate(&ringbuffer, len, max_len); in ringbuffer_init()
56 return ringbuffer; in ringbuffer_init()
63 mach_vm_reclaim_ring_t ringbuffer = ringbuffer_init(); variable
64 T_ASSERT_NOTNULL(ringbuffer, "ringbuffer is allocated");
65 T_EXPECT_EQ(os_atomic_load(&ringbuffer->head, relaxed), 0ull, "head is zeroed");
66 T_EXPECT_EQ(os_atomic_load(&ringbuffer->busy, relaxed), 0ull, "busy is zeroed");
67 T_EXPECT_EQ(os_atomic_load(&ringbuffer->tail, relaxed), 0ull, "tail is zeroed");
70 T_ASSERT_EQ((size_t)ringbuffer->len, expected_len, "length is set correctly");
71 for (unsigned i = 0; i < ringbuffer->len; i++) {
72 mach_vm_reclaim_entry_t entry = &ringbuffer->entries[i];
83 mach_vm_reclaim_ring_t ringbuffer; variable
84 kern_return_t kr = mach_vm_reclaim_ring_allocate(&ringbuffer, 1, 1);
89 try_cancel(mach_vm_reclaim_ring_t ringbuffer, mach_vm_reclaim_id_t id, mach_vm_address_t addr, mach… in try_cancel() argument
94 kr = mach_vm_reclaim_try_cancel(ringbuffer, id, addr, size, behavior, &state, &update_accounting); in try_cancel()
97 kern_return_t tmp_kr = mach_vm_reclaim_update_kernel_accounting(ringbuffer); in try_cancel()
107 allocate_and_defer_free(size_t size, mach_vm_reclaim_ring_t ringbuffer, in allocate_and_defer_free() argument
118 …kr = mach_vm_reclaim_try_enter(ringbuffer, *addr, size, behavior, &id, &should_update_kernel_accou… in allocate_and_defer_free()
120 kr = mach_vm_reclaim_update_kernel_accounting(ringbuffer); in allocate_and_defer_free()
127 allocate_and_defer_deallocate(size_t size, mach_vm_reclaim_ring_t ringbuffer, unsigned char val, ma… in allocate_and_defer_deallocate() argument
129 return allocate_and_defer_free(size, ringbuffer, val, VM_RECLAIM_DEALLOCATE, addr); in allocate_and_defer_deallocate()
138 mach_vm_reclaim_ring_t ringbuffer = ringbuffer_init(); variable
140 mach_vm_reclaim_id_t idx = allocate_and_defer_deallocate(kAllocationSize, ringbuffer, 1, &addr);
142 mach_vm_reclaim_ring_flush(ringbuffer, 1);
246 mach_vm_reclaim_ring_t ringbuffer = ringbuffer_init(); in reuse_reclaimed_entry() local
248 …mach_vm_reclaim_id_t idx = allocate_and_defer_free(kAllocationSize, ringbuffer, kValue, behavior, … in reuse_reclaimed_entry()
250 kr = mach_vm_reclaim_ring_flush(ringbuffer, 10); in reuse_reclaimed_entry()
252 bool usable = try_cancel(ringbuffer, idx, addr, kAllocationSize, behavior); in reuse_reclaimed_entry()
307 mach_vm_reclaim_ring_t ringbuffer = ringbuffer_init(); in allocate_and_suspend() local
311 kr = mach_vm_reclaim_ring_capacity(ringbuffer, &capacity); in allocate_and_suspend()
318 …mach_vm_reclaim_id_t idx = allocate_and_defer_deallocate(kAllocationSize, ringbuffer, (unsigned ch… in allocate_and_suspend()
326 …kr = mach_vm_reclaim_try_enter(ringbuffer, addr, kAllocationSize, VM_RECLAIM_DEALLOCATE, &id, &sho… in allocate_and_suspend()
333 kr = mach_vm_deallocate(mach_task_self(), (mach_vm_address_t)ringbuffer, buffer_size); in allocate_and_suspend()
511 mach_vm_reclaim_ring_t ringbuffer = ringbuffer_init(); variable
518 …mach_vm_reclaim_id_t idx = allocate_and_defer_deallocate(kAllocationSize, ringbuffer, (unsigned ch…
539 mach_vm_reclaim_ring_t ringbuffer = ringbuffer_init(); variable
546 err = mach_vm_reclaim_ring_capacity(ringbuffer, &capacity);
552 …mach_vm_reclaim_id_t idx = allocate_and_defer_deallocate(kAllocationSize, ringbuffer, (unsigned ch…
568 mach_vm_reclaim_ring_t ringbuffer = ringbuffer_init(); variable
570 mach_vm_reclaim_id_t idx = allocate_and_defer_deallocate(kAllocationSize, ringbuffer, 1, &addr);
573 kr = mach_vm_reclaim_ring_capacity(ringbuffer, &capacity);
578 kr = mach_vm_deallocate(mach_task_self(), (mach_vm_address_t)ringbuffer, buffer_size);
581 mach_vm_reclaim_ring_flush(ringbuffer, 10);
606 mach_vm_reclaim_ring_t ringbuffer = ringbuffer_init(); variable
608 mach_vm_reclaim_id_t idx = allocate_and_defer_deallocate(kAllocationSize, ringbuffer, 1, &addr);
611 …kr = mach_vm_reclaim_try_enter(ringbuffer, addr, kAllocationSize, VM_RECLAIM_DEALLOCATE, &idx, &sh…
615 mach_vm_reclaim_ring_flush(ringbuffer, 2);
765 mach_vm_reclaim_ring_t ringbuffer; variable
766 kern_return_t kr = mach_vm_reclaim_ring_allocate(&ringbuffer, 1, 1);
780 mach_vm_reclaim_ring_t ringbuffer; variable
782 kern_return_t kr = mach_vm_reclaim_ring_allocate(&ringbuffer, 1, 1);
810 mach_vm_reclaim_ring_t ringbuffer; variable
819 kr = mach_vm_reclaim_ring_allocate(&ringbuffer, initial_len, max_len);
824 kr = mach_vm_reclaim_ring_capacity(ringbuffer, &old_capacity);
828 ids[i] = allocate_and_defer_deallocate(vm_page_size, ringbuffer, 'A', &addrs[i]);
831 id_tmp = allocate_and_defer_deallocate(vm_page_size, ringbuffer, 'X', &addr_tmp);
833 uint64_t initial_tail = os_atomic_load(&ringbuffer->tail, relaxed);
837 kr = mach_vm_reclaim_ring_resize(ringbuffer, max_len);
841 T_EXPECT_EQ(os_atomic_load(&ringbuffer->head, relaxed), initial_tail, "head is incremented");
842 T_EXPECT_EQ(os_atomic_load(&ringbuffer->busy, relaxed), initial_tail, "busy is incremented");
843 T_EXPECT_EQ(os_atomic_load(&ringbuffer->tail, relaxed), initial_tail, "tail is preserved");
846 kr = mach_vm_reclaim_ring_capacity(ringbuffer, &new_capacity);
854 kr = mach_vm_reclaim_query_state(ringbuffer, ids[i], VM_RECLAIM_DEALLOCATE, &state);
857 bool usable = try_cancel(ringbuffer, ids[i], addrs[i], vm_page_size, VM_RECLAIM_DEALLOCATE);
863 ids[i] = allocate_and_defer_deallocate(vm_page_size, ringbuffer, 'B', &addrs[i]);
866 id_tmp = allocate_and_defer_deallocate(vm_page_size, ringbuffer, 'X', &addr_tmp);
870 bool usable = try_cancel(ringbuffer, ids[i], addrs[i], vm_page_size, VM_RECLAIM_DEALLOCATE);