#
173342c0 |
|
17-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Change the heap reservation for 64-bit platforms. Hoard reserves a chunk of the address space to grow the heap into. As there is a much larger address space available on 64-bit systems, we may as well reserve a larger chunk of address space (64GB for now, though could probably reserve a lot more than that and still leave plenty of room for other areas).
|
#
e453c0f4 |
|
28-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
64-bit printf warning fixes in libroot.
|
#
c3b03e58 |
|
28-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
64-bit fixes to Hoard.
|
#
3d0d4b62 |
|
15-Feb-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented a way to specify additional debug options via MALLOC_DEBUG when using libroot_debug.so, instead of having to hardcode them in the application via calling private heap functions. * The following options are implemented: 'p' turns on paranoid validation, 'w' triggers periodic wall checking every 500ms ('W' does the same, but every 100ms), 'g' to use guard pages (beware, this will dramatically increase memory usage), and 'r' which forbids reusing of memory, freed memory is never actually freed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40514 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90daf7c6 |
|
04-Jan-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* init_after_fork(): In case the reservation for the heap area failed sHeapBase will probably not point to memory in the heap area. Use sFreeHeapBase instead. * When reserving the heap area range fails, set sHeapBase to NULL, so we'll later know about the fact. * hoardSbrk(): When resizing the area fails, we'll now try to allocate a new one, if the former failure was not due to an "out of memory" situation. E.g. if the heap range reservation failed or, if we just have exhausted the range, another area could be in the way. Also when mmap()ing over malloc()ed, the heap area count be split in two with the first part retaining the old area ID, thus preventing resizing as well. Fixed #5168. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34897 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d78ffde5 |
|
29-Nov-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Some minor cleanup and improved comments. * Fixed check in hoardSbrk(): resize_area() was invoked, even if the area was already large enough. * Increased the initial heap size to 64 pages. Apparently the hoard implementation is rather generous and the first malloc() (caused by __init_heap()) already required enlarging the area. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34336 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3609af39 |
|
19-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed _kern_reserve_heap_address_range() to _kern_reserve_address_range(), and added a _kern_unreserve_address_range() as well. * The runtime loader now reserves the space needed for all its areas first to make sure there is enough space left for all areas of a single image. * This also fixes the final part of bug #4008. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31115 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d5a68919 |
|
25-Jan-2009 |
Jérôme Duval <korli@users.berlios.de> |
* Patch from Olivier Coursiere: restore sFreeHeapSize in case of resize_area failure git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29013 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7867cf37 |
|
08-Oct-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Increase the heap size in 64 KB steps. Was 4 KB before, which was a bit slow for short-running, heap-intensive programs. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27925 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ad603ac |
|
22-May-2006 |
François Revol <revol@free.fr> |
implement sbrk() by calling hoard's version, through sbrk_hook (fct pointer was named this way in R5). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17540 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
66b7a0f4 |
|
17-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed the _kern_init_heap_address_range() syscall to _kern_reserve_heap_address_range() and made it more powerful. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16825 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
204131dc |
|
30-Jan-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Added a real yield function to the kernel (using the next_priority approach). The test application lets run a thread at the highest priority that calls yield all the time - the system stays responsible when it runs, so it seems to work fine :) Changed the malloc implementation to use _kern_thread_yield() instead of snoozing. We should think about making this call public, too. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16166 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7e46f831 |
|
30-Jan-2006 |
Axel Dörfler <axeld@pinc-software.de> |
snooze(5) works more or less fine for standard threads, but is a very bad idea for real-time threads. They could completely hog the CPU in this case. Thanks to Marcus for investigating! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
78f2557c |
|
22-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Found and fixed number one app_server crashing bug: our Hoard backend didn't support unsbrk(), and that is actually called quite often in Hoard, resulting in out of memory quite fast. We don't shrink the heap (yet), but at least we can reuse the memory that was freed by Hoard (it doesn't just remove bytes from the end, it will also free up smaller parts in the middle). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4393552b |
|
16-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The heap is now located at 384 MB, and creates a reserved range that spans over the following 1152 MB - that area only guarantees that the heap can grow this much before the application need the memory for something else. And even then, the heap range is reused from top-to-bottom, allowing for maximum heap usage. Of course, if the memory after the heap range is not claimed yet, it can still be claimed by the heap, too. Added new syscall to create the reserved range. Fixed a bug in vm_delete_areas(): when it removed reserved areas, the area list could get messed up. Fixed a bug in resize_area(): resized areas could never be deleted (missing vm_put_area())! resize_area() now supports reserved regions (but not perfectly yet, see ToDo items). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12692 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5af32e75 |
|
13-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed src/kernel to src/system. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
173342c0ab918a72a12540ee1de8213720a2d3f5 |
|
17-Aug-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Change the heap reservation for 64-bit platforms. Hoard reserves a chunk of the address space to grow the heap into. As there is a much larger address space available on 64-bit systems, we may as well reserve a larger chunk of address space (64GB for now, though could probably reserve a lot more than that and still leave plenty of room for other areas).
|
#
e453c0f4a7d0014d73e9b499aa1fe813dc64c084 |
|
28-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
64-bit printf warning fixes in libroot.
|
#
c3b03e587739a9f9ea1017ac00b6d2ed383bac8d |
|
28-Jul-2012 |
Alex Smith <alex@alex-smith.me.uk> |
64-bit fixes to Hoard.
|
#
3d0d4b6200bc16c89e241afb715ce35f15f50020 |
|
15-Feb-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Implemented a way to specify additional debug options via MALLOC_DEBUG when using libroot_debug.so, instead of having to hardcode them in the application via calling private heap functions. * The following options are implemented: 'p' turns on paranoid validation, 'w' triggers periodic wall checking every 500ms ('W' does the same, but every 100ms), 'g' to use guard pages (beware, this will dramatically increase memory usage), and 'r' which forbids reusing of memory, freed memory is never actually freed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40514 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
90daf7c61e0078461e73b65a8e865d2d99634af1 |
|
04-Jan-2010 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* init_after_fork(): In case the reservation for the heap area failed sHeapBase will probably not point to memory in the heap area. Use sFreeHeapBase instead. * When reserving the heap area range fails, set sHeapBase to NULL, so we'll later know about the fact. * hoardSbrk(): When resizing the area fails, we'll now try to allocate a new one, if the former failure was not due to an "out of memory" situation. E.g. if the heap range reservation failed or, if we just have exhausted the range, another area could be in the way. Also when mmap()ing over malloc()ed, the heap area count be split in two with the first part retaining the old area ID, thus preventing resizing as well. Fixed #5168. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34897 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d78ffde5d1a65b612f2d3be414dd0e3f4b2b77cc |
|
29-Nov-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Some minor cleanup and improved comments. * Fixed check in hoardSbrk(): resize_area() was invoked, even if the area was already large enough. * Increased the initial heap size to 64 pages. Apparently the hoard implementation is rather generous and the first malloc() (caused by __init_heap()) already required enlarging the area. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34336 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3609af391d646e2629e70e7b214a79ed57578ffc |
|
19-Jun-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Renamed _kern_reserve_heap_address_range() to _kern_reserve_address_range(), and added a _kern_unreserve_address_range() as well. * The runtime loader now reserves the space needed for all its areas first to make sure there is enough space left for all areas of a single image. * This also fixes the final part of bug #4008. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31115 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d5a68919751e1f4b20112810b3330a1bb296d949 |
|
25-Jan-2009 |
Jérôme Duval <korli@users.berlios.de> |
* Patch from Olivier Coursiere: restore sFreeHeapSize in case of resize_area failure git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29013 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7867cf37df38d633afc68cfcdab4f0c7de9f7edf |
|
08-Oct-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Increase the heap size in 64 KB steps. Was 4 KB before, which was a bit slow for short-running, heap-intensive programs. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27925 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3ad603ace4c8b95cd2d38367ae092d1148e5a8ea |
|
22-May-2006 |
François Revol <revol@free.fr> |
implement sbrk() by calling hoard's version, through sbrk_hook (fct pointer was named this way in R5). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17540 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
66b7a0f4770a9b02e1f80d72fc93ce16b82b01d4 |
|
17-Mar-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed the _kern_init_heap_address_range() syscall to _kern_reserve_heap_address_range() and made it more powerful. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16825 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
204131dc9755d05c7bb677c1095613d8340ebfb3 |
|
30-Jan-2006 |
Axel Dörfler <axeld@pinc-software.de> |
Added a real yield function to the kernel (using the next_priority approach). The test application lets run a thread at the highest priority that calls yield all the time - the system stays responsible when it runs, so it seems to work fine :) Changed the malloc implementation to use _kern_thread_yield() instead of snoozing. We should think about making this call public, too. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16166 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7e46f8319eb42452fc0fdf636dd23861674ed0c5 |
|
30-Jan-2006 |
Axel Dörfler <axeld@pinc-software.de> |
snooze(5) works more or less fine for standard threads, but is a very bad idea for real-time threads. They could completely hog the CPU in this case. Thanks to Marcus for investigating! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16161 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
78f2557c8f55eacf6ad15e5ae91f865fce81be29 |
|
22-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Found and fixed number one app_server crashing bug: our Hoard backend didn't support unsbrk(), and that is actually called quite often in Hoard, resulting in out of memory quite fast. We don't shrink the heap (yet), but at least we can reuse the memory that was freed by Hoard (it doesn't just remove bytes from the end, it will also free up smaller parts in the middle). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15655 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4393552b4d1148752ec9da0f15e2434fede8bcab |
|
16-May-2005 |
Axel Dörfler <axeld@pinc-software.de> |
The heap is now located at 384 MB, and creates a reserved range that spans over the following 1152 MB - that area only guarantees that the heap can grow this much before the application need the memory for something else. And even then, the heap range is reused from top-to-bottom, allowing for maximum heap usage. Of course, if the memory after the heap range is not claimed yet, it can still be claimed by the heap, too. Added new syscall to create the reserved range. Fixed a bug in vm_delete_areas(): when it removed reserved areas, the area list could get messed up. Fixed a bug in resize_area(): resized areas could never be deleted (missing vm_put_area())! resize_area() now supports reserved regions (but not perfectly yet, see ToDo items). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12692 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5af32e752606778be5dd7379f319fe43cb3f6b8c |
|
13-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed src/kernel to src/system. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96
|