Within the kernel, the situation is also not ideal. Space must be found to hold the descriptor list; for large lists, this is done by calling malloc(), and the area must in turn be freed before returning. After the copy is per- formed, the kernel must examine every entry to deter- mine whether there is pending activity on the descriptor. If the kernel has not found any active descriptors in the current scan, it will then update the descriptor’s selinfo entry; this information is used to perform a wakeup on the process in the event that it calls tsleep() while wait- ing for activity on the descriptor. After the process.