haiku/headers/private
Augustin Cavalier 0ecd7516de Package Kit: Use an object_cache in kernel mode for decompression buffers.
The kernel heap only uses object caches for objects up to size 8192.
Larger allocations have to go through the raw allocator. That can
get pretty expensive.

Adding instrumentation around the malloc/free calls in this function
showed that on my machine, some 596ms during boot were spent on
*malloc/free alone*, all else aside. After this change, we are at
around 110ms, or a >5x improvement. Running an fgrep -R on /system/
after boot increased the cumulative time in memory functions to over
5 seconds, while after this change it is "only" 1170ms.

Honestly, it seems like the object depots should be able to be faster
than that, even if this function is called thousands of times. But that
is a problem for a different investigation.

It would be even faster for every consumer of this data in
packagefs just allocated one set of buffers up front, or at least
for a single "read session", but plumbing that all the way
through the myriad abstractions of the Package Kit will
not be easy, and is left for another time, as well.
2023-02-28 13:49:00 -05:00
..
app BFont: allow loading of user fonts from disk or memory 2022-12-17 12:32:09 +00:00
audio audio: Move hmulti_audio driver API to private audio headers 2018-10-23 16:33:19 +02:00
binary_compatibility BControl: Add icon support 2013-12-22 02:48:25 +01:00
bluetooth Bluetooth Pref: Inactiveate button and things that don't do anything. 2021-04-10 20:28:43 +00:00
debug Move comment to correct function. 2013-05-01 19:52:00 -04:00
debugger Add (void*) casts to memcpy/memset invocations to appease GCC 8. 2019-05-24 14:21:37 -04:00
device acpi_battery: support for _BIX method. 2020-03-10 13:14:09 +00:00
drivers poke: use phys_addr_t for mem_map_args's physical_address field 2023-01-02 15:02:32 +00:00
file_systems file_systems/fs_ops_support: Add open_mode_to_access. 2023-01-27 23:53:53 -05:00
firewire Minor tweaks to fix the build after the last commit. 2019-03-26 20:06:09 -04:00
fs_shell bfs_shell: fix gcc2 build 2022-11-02 16:21:43 +00:00
graphics intel_extreme: check another register when finding out hw_cdclk on Haswell/Broadwell 2022-11-26 12:56:08 +00:00
i2c i2c: add acquire_bus/release_bus hooks 2020-04-12 16:55:52 +00:00
index_server
input ps2 synaptics: implement 'extended W' mode. 2023-01-28 14:57:53 +00:00
interface View: provide the transform between different coordinate spaces 2022-11-13 04:04:30 +00:00
kernel kernel/x86: add a hybrid type per cpu, to be dumped when the feature exists. 2023-01-10 20:40:11 +00:00
libroot pthread: add pthread_{getname_np,setname_npp} 2022-10-18 16:30:54 +00:00
locale locale kit: allow creating a catalog without entry_ref 2020-09-01 18:14:57 +00:00
mail build: Cleanup of libgnuregex usage. 2018-03-07 18:04:31 -05:00
media media_kit: Dynamic allocation of ChunkCache based on media 2021-01-03 20:51:37 +00:00
midi Midi: Remove some duplicated code 2015-08-27 11:51:57 +02:00
mount
net net_interface & datalink: Fix MTU handling. 2022-05-27 16:36:12 -04:00
netservices netservices: remove all old conditional code 2021-09-11 13:08:11 +01:00
netservices2 NetServices: format code using haiku-format 2022-10-29 22:53:57 +01:00
notification Notification_Server: Added ability to choose position of notifications 2017-12-24 12:02:38 +01:00
package Package Kit: Use an object_cache in kernel mode for decompression buffers. 2023-02-28 13:49:00 -05:00
preferences Fix glitch in Screen prefs when changing background color. 2017-04-30 10:29:39 +02:00
print Game & Print Kits: Fix GCC 11 warnings. 2021-11-17 18:45:58 -05:00
runtime_loader runtime_loader: dlopen() should respect RPATH of the loading module 2021-03-18 08:19:55 +00:00
screen_saver ScreenSaver: Rename BuildScreenSaverDefaultSettingsView 2016-04-13 15:50:30 -07:00
shared WeakReferenceable: Clear fUseCount when it is 1. 2023-01-31 22:36:59 -05:00
storage Disk Device Manager: checks the raw content_name when editing a partition 2022-09-30 17:10:39 +00:00
support ZstdCompressionAlgorithm: 22 is now "best" in libzstd. 2021-10-26 16:47:50 -04:00
syslog_daemon syslog_daemon: Converted to BServer. 2015-07-22 20:40:47 +02:00
system riscv: use atomic CSR bit set/clear operations, refactor 2022-12-11 18:43:15 +00:00
textencoding
tracker Tracker: Use BControlLook::ComposeIconSize. 2022-08-25 16:48:56 -04:00
usb_vision
userlandfs userlandfs: implement get_fs_info using ioctl 2022-09-13 18:51:12 +00:00
virtio virtio: add VIRTIO_FEATURE_ANY_LAYOUT in virtio.h 2022-02-18 21:27:47 +00:00
vmdk
wmi wmi: add ACPI WMI implementation 2020-04-20 14:56:59 +00:00