Home
last modified time | relevance | path

Searched refs:we (Results 1 – 25 of 32) sorted by relevance

12

/xnu-8792.61.2/doc/memorystatus/
H A Dfreezer.md17 …nerally speaking, we want the freezer to run when the device is under some memory pressure but bef…
23we call `task_freeze` (`osfmk/kern/task.c`) which calls `vm_map_freeze` (`osfmk/vm/vm_map.c`). `vm…
25we have finished creating this contiguous compressor VA range, we put those segments on the swapou…
32 …y that's simply mapped into the same process in multiple places though, so we do a quick forward s…
42we can get rid of these limits. However, when we tried to remove them we discovered they were mask…
47 …tly, we freeze processes in the idle band in LRU order (apps that have been idle the longest get f…
52 …reeze the leader process first (we skip coalition members that are not the leader). Once we freeze…
66 When a frozen process is resumed we call it a thaw. Functionally, this is identical to a regular ap…
72we may re-freeze it. The exact heuristics for re-freeze are determined by the freezer thread. See …
84we have a limited number of slots in the freezer (and a swap file limit), so we don't have to keep…
[all …]
H A Dkill.md4 when we choose to do them, and how we perform them.
41 When the system hits the vnode limit, and the VFS subsystem is not able to recycle any vnodes, we k…
47 …ical = memorystatus_available_pages_critical_base`. In practice this means we kill idle procs when…
51 …e jetsam. If we determine that the idle band contains exclusively false idle daemons, and there ar…
53 …se the daemons re-launch very quickly we can get stuck in jetsam loops where the daemons are re-la…
67 …ecifically the phantom cache has detected pressure (based on the rate that we're paging out and re…
79 …e thread that performs this sysctl then kills every frozen process so that we can fully reclaim al…
80 Since frozen processes can be in any band <= foreground, we scan the bands for procs with the `P_ME…
94 The compressor has detected that we've exceeded a specific number of compressions and decompression…
106 …rrently M1 or later iPads) and we're unable to allocate more swap files (either because we've run …
[all …]
H A Doverview.md13 The xnu memorystatus subsystem is responsible for recovering the system when we're running dangerou…
67 1. Log this state to the os log (or serial if we're early in boot)
69we sometimes do pre-emptive actions on a healthy system if we're somewhat low on a specific resour…
81 …otected by the `proc_list_mlock` (Yes this is bad for scalability. Ideally we'd use finer grain lo…
124 Since we purge purgeable memory and trim the secluded pool quickly under memory pressure, this can …
144 It's woken up via a call to `memorystatus_thread_wake` whenever any subsystem determines we're runn…
146 …_memorystatus_2`, and `VM_memorystatus_3`. But we currently only use `VM_memorystatus_1`. At one p…
170we do not want to wake up ReportCrash while the system is low on memory, we maintain one global sn…
172 …_get_jetsam_snapshot` in `bsd/kern/kern_memorystatus.c` for details. Since we only have one global…
176 …and uses it as an input for its freezer recommendation algorithm. However, we're not currently usi…
[all …]
/xnu-8792.61.2/doc/allocators/
H A Dread-only.md24 By necessity, we store lots of data on the heap that informs the various
26 directly mutable allocations because this fits what we need the memory for:
35 This is where the Read-Only Allocator provides its defense: we observe that
36 the majority of security-sensitive data that we allocate on the heap tends to
44 written programmatically (i.e. through calling a function), we raise the cost
67 relationships, we can validate the ownership invariant that we expect to hold.
88 that we're making conscious, considered choices over which zones are made
/xnu-8792.61.2/san/tools/
H A Dkstksz128 -- It is possible that we redord BELOW event as first. Ignore it if we haven't seen
232 …-- When reading from a file, we can't use CoreSymbolication to symbolicate the stack frames as the…
/xnu-8792.61.2/tests/
H A Dstackshot_accuracy.m51 /* ssh won't let the session die if we still have file handles open to its output. */
96 /* we should be able to verify delta stackshots */
205 * given that we've targetted the pid, we can be sure that this
206 * ts_pid will be the pid we expect
245 T_LOG("did we stop because of the limit?: %s", fault_stats.sfs_stopped_faulting ? "yes" : "no");
252 /* if we couldn't fault the pages back in, then at least verify that we tried */
293 * then send SIGUSR1 to the parent to let it know that we are done.
345 /* check if we can run the child successfully */
H A Dstackshot_tests.m80 #define TEST_STACKSHOT_QUEUE_LABEL "houston.we.had.a.problem"
624 /* First kill the child so we can reap it */
741 …/* sleep for a bit in the hope of ensuring that the other thread has called the sysctl before we s…
801 * This will mark the test as failed but let it continue so we
821 /* First unwedge the child so we can reap it */
1001 dispatch_semaphore_t child_ready_sem; /* signal parent we're ready */
1015 /* Tell the main thread we're all set up, then wait for permission to exit */
1018 usleep(1); /* make sure we don't tailcall semaphore_wait */
1422 T_ASSERT_FALSE(seen_page_table_snapshot, "check that we haven't yet seen a page table snapshot");
1462 T_ASSERT_TRUE(nonzero_tte, "check that we saw at least one non-empty TTE");
[all …]
H A Dstackshot_block_owner_14362384.m239 /* perform various actions with a mutex in kernel memory. note that, since we aren't allowed
243 * exist in the kernel (to determine if we're running with CONFIG_XNUPOST defined). Else,
291 /* We don't really care what goes into these messages, we're just sending something to a port. */
346 /* perform various actions with a rwlock in kernel memory. note that, since we aren't allowed
350 * exist in the kernel (to determine if we're running with CONFIG_XNUPOST defined). Else,
512 * This allows us to create a situation in the kernel where we know a thread to be blocked
525 …_create(&waiting, NULL, kmutex_grab_and_wait_thread, NULL); // thread will block until we signal it
634 …; // ping! msg_blocking_thread will now try to test_send_port us stuff, and block until we receive.
646 msg_recv_helper(test_recv_port); // thread should block until we receive one of its messages
H A Dtest_sysctl_kern_procargs_25397314.m58 /* Determine how much memory to allocate. If allocSize is 0 we will use the size
59 * we get from the sysctl for our buffer. */
85 /* Without KERN_PROCARGS2, we can't tell where argv ends and environ begins.
/xnu-8792.61.2/libkern/libkern/c++/
H A DOSPtr.h55 functions. This is great! However, please note that we may \
63 off on enabling shared pointers in IOKit APIs until we have \
/xnu-8792.61.2/config/
H A DKasan_disabled.exports2 # so we generate an empty export list for non-KASan.
H A DMASTER199 # we are clipping the max based on 16G
315 # configurable kernel - general switch to say we are building for an
640 # sync with bsd/conf/MASTER until we fix the config system... todo XXX
/xnu-8792.61.2/san/coverage/
H A Dkcov-blacklist-arm648 # These use a local variable to work out which stack we're on, but can end up with
/xnu-8792.61.2/san/memory/
H A Dkasan-blacklist-arm6412 # These use a local variable to work out which stack we're on, but can end up with
/xnu-8792.61.2/makedefs/
H A DMakeInc.def135 # NOTE: order matters here. -Wno-xxx goes before opt-in of ones we want
178 # diagnostic here until we've completed that:
501 # Currently we have to keep alive two separated UBSAN runtimes (minimal for DEVELOPMENT,
502 # full for KASAN). This implies that we cannot use CFLAGS_$(CURRENT_KERNEL_CONFIG), because
503 # CFLAGS_DEVELOPMENT is folded into CFLAGS_KASAN. For the time being we leave this check here,
504 # as we work (independently) to both break the CFLAGS direct dependency and commonize the
651 # we're dealing with uintptr_t values here, so explicitly use bash which
723 # for a 16KB page runtime, and we wish to use the first virtual block
726 # multiple of the block size in alignment/length, we will implictly map
727 # it with our block mapping, and we therefore must reflect that the
[all …]
H A DMakeInc.top15 # As such, we have no knowledge of how to build
317 # we try to throttle behavior into more managable S "stripes" of N/S
359 # $(1) is the Makefile target we are building for
371 # $(1) is the Makefile target we are building for
377 # $(1) is the Makefile target we are building for
H A DMakeInc.kernel243 # the LAST segment is mapped read-only on arm, so if we include llvm profiling
306 # date, start over. Normal dependencies don't work because we can have
309 # to BUILDA. So we maintain a separate file at the time make(1)
H A DMakeInc.cmd181 # CC/CXX get defined by make(1) by default, so we can't check them
259 # Scripts or tools we build ourselves
/xnu-8792.61.2/libkdd/
H A DREADME.md73 object for a consumer to understand arbitrary data, we package it using container markers.
89 Following is an example of how we can describe a kernel specific struct sample_disk_io_stats in buf…
H A DKCDBasicTypeDescription.m126 * Calculate the maximum number of data elements we can parse, Taking into
128 * actual length of the data buffer and the offset into the buffer where we
/xnu-8792.61.2/libsyscall/mach/
H A Dvm_map.defs36 * LIBSYSCALL_INTERFACE indicates that we are building the
/xnu-8792.61.2/doc/
H A Ddebugging.md66 or just **str** in Python 2. For Python 2 we would have to explicitly encode all Unicode strings
84 The result is that we have non-unicode literal being registered with unicode API in Python 3.
501 After inspecting addkext macro code and calling few functions with arguments directly we can see th…
577 Now we can move a frame above and inspect stopped target:
599 provides the offset to the seek method. Lets see where we are in the source code.
618 That means we are broken by a library update! Older versions of library do not load data for a sect…
/xnu-8792.61.2/libkern/zlib/
H A DREADME116 If you use the zlib library in a product, we would appreciate *not*
122 If you redistribute modified sources, we would appreciate that you include
/xnu-8792.61.2/osfmk/mach/
H A Dresource_notify.defs46 /* The kernel sends the message, so we compile with KernelUser when
/xnu-8792.61.2/osfmk/ipc/
H A Dipc_port.c1439 ipc_port_update_watchport_elem(ipc_port_t port, struct task_watchport_elem *we) in ipc_port_update_watchport_elem() argument
1459 if (we) { in ipc_port_update_watchport_elem()
1461 we->twe_pdrequest = pdrequest; in ipc_port_update_watchport_elem()
1462 port->ip_twe = we; in ipc_port_update_watchport_elem()

12