#
bc89edc3 |
| 09-Oct-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Add some more information to the commitment <= size check.
May help with diagnosing #19155.
|
#
d3b93408 |
| 02-Oct-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Add ASSERT_UNREACHABLE() in VMCache::Commit.
This should never be invoked; only derived-class implementations should be.
|
#
b11cc78c |
| 02-Oct-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Add some more AssertLocked()s in VMCache commitment methods.
And remove a now-redundant one.
|
#
a0fd8467 |
| 02-Oct-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Add assertion for a TODO in SetMinimalCommitment.
|
#
0a4a06ee |
| 02-Oct-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Change cache commitment at end of Resize().
If we change it at the top, then we shrink the commitment before we actually have released the relevant pages.
|
#
a0658fbc |
| 21-Sep-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Consolidate logic in vm_cache_acquire_locked_page_cache.
The don't-wait and do-wait logic was very similar except for the actual acquisition of the lock in the middle, so now they're comb
kernel/vm: Consolidate logic in vm_cache_acquire_locked_page_cache.
The don't-wait and do-wait logic was very similar except for the actual acquisition of the lock in the middle, so now they're combined. This fixes another (minor) regression from 9e89f7c068c3b3b4c9d74bb82679c27a2c12b10a in that if a page's cache changed before we acquired its lock and don't-wait was set, we would wind up waiting anyway.
show more ...
|
#
eb26bd6c |
| 21-Sep-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Fix copy/paste bug in vm_cache_acquire_locked_page_cache.
This fixes a regression from 9e89f7c068c3b3b4c9d74bb82679c27a2c12b10a.
Even if SwitchFromReadLock fails, the original read lock
kernel/vm: Fix copy/paste bug in vm_cache_acquire_locked_page_cache.
This fixes a regression from 9e89f7c068c3b3b4c9d74bb82679c27a2c12b10a.
Even if SwitchFromReadLock fails, the original read lock has been released, and so we need to re-acquire the lock before continuing.
Should fix a KDL reported by X512.
show more ...
|
#
9e89f7c0 |
| 31-Aug-2024 |
Jarosław Pelczar <jarek@jpelczar.com> |
VMCache: Use rwlock for sCacheListLock
Lookups are more frequent than cache deletions.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com> A compile benchmark seems to have little if any perf
VMCache: Use rwlock for sCacheListLock
Lookups are more frequent than cache deletions.
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com> A compile benchmark seems to have little if any performance improvement. However, this codepath will be hit when allocating pages that are cached, so it may provide a more significant improvement once file caches are fully utilized.
show more ...
|
#
a8877df1 |
| 14-Aug-2024 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Add "unmergeable" flag to VMCache.
ramfs needs to create caches that are both temporary and unmergeable, so add another flag to make this state possible.
Otherwise, mmap'ed files from ra
kernel/vm: Add "unmergeable" flag to VMCache.
ramfs needs to create caches that are both temporary and unmergeable, so add another flag to make this state possible.
Otherwise, mmap'ed files from ramfs might wind up in VMCache trying to merge the caches when the last one is closed, which we don't want.
show more ...
|
#
425ac1b6 |
| 20-Jun-2023 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
refactor: Swap %Ld for %lld in all format usages
* %Ld is an undocumented alias for %lld in glibc. * muslc doesn't implement it for this reason. * While we will likely never drop %Ld support, lets
refactor: Swap %Ld for %lld in all format usages
* %Ld is an undocumented alias for %lld in glibc. * muslc doesn't implement it for this reason. * While we will likely never drop %Ld support, lets clean house and set a better example.
Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636 Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
show more ...
|
#
484bf053 |
| 26-Apr-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
VMCache: Use THREAD_BLOCK_TYPE_OTHER_OBJECT.
This would have assisted in debugging #18390.
|
#
97f11716 |
| 04-Sep-2022 |
Niels Sascha Reedijk <niels.reedijk@gmail.com> |
Merge remote-tracking branch 'origin/master' into dev/netservices
Change-Id: I588c4a840523995f820161d63741c137bc5c719c
|
#
850fc02f |
| 14-Jun-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Specifiy the page as the object being waited on in VMCache.
I got a strange whole-system hang in file_cache_resize into this function. Possibly the page was spuriously busy, perhaps it wa
kernel/vm: Specifiy the page as the object being waited on in VMCache.
I got a strange whole-system hang in file_cache_resize into this function. Possibly the page was spuriously busy, perhaps it wasn't, but not having function arguments on x86_64 in stack traces, I was unable to deduce what page was actually being waited on.
In case it happens again, this should allow it to be debugged further by placing the address of the vm_page structure in the thread wait informations. (A string is not very useful here anyway.)
show more ...
|
#
268f99dd |
| 22-Dec-2021 |
Niels Sascha Reedijk <niels.reedijk@gmail.com> |
Merge branch 'master' into dev/netservices
|
#
36a1e12f |
| 08-Dec-2021 |
Augustin Cavalier <waddlesplash@gmail.com> |
kernel/vm: Cast temporary to uint32.
It is defined as a uint32:1, which apparently becomes an "int" on newer GCC versions, which thus triggers a -Werror=format. So, convert it explicitly in order to
kernel/vm: Cast temporary to uint32.
It is defined as a uint32:1, which apparently becomes an "int" on newer GCC versions, which thus triggers a -Werror=format. So, convert it explicitly in order to prevent the error.
show more ...
|
#
6425e173 |
| 01-Sep-2021 |
Augustin Cavalier <waddlesplash@gmail.com> |
Add more missing headers following previous commits.
These also are only a problem on riscv64; I guess thread.h must not be included in some arch header there.
|
#
8e74e307 |
| 29-May-2020 |
Michael Lotz <mmlr@mlotz.ch> |
kernel/vm: Add discard_address_range that discards pages.
Pages in the given range are unmapped and freed without getting written back anywhere. It can be used whenever a caller does not care about
kernel/vm: Add discard_address_range that discards pages.
Pages in the given range are unmapped and freed without getting written back anywhere. It can be used whenever a caller does not care about the data in the given range anymore and wants to reduce page pressure.
Change-Id: I8bcce68fab278efef710d3714677e1d463504a56 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2843 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
show more ...
|
#
146630e0 |
| 12-Jun-2020 |
Michael Lotz <mmlr@mlotz.ch> |
kernel/vm: Fix build with swap support disabled.
The rename of the system_info members was missed in d02aaee17e007631fcfa91a012ec7b6386927012 (part of the scheduler branch merge of hrev46690). The u
kernel/vm: Fix build with swap support disabled.
The rename of the system_info members was missed in d02aaee17e007631fcfa91a012ec7b6386927012 (part of the scheduler branch merge of hrev46690). The unguarded object_cache was introduced even earlier as part of hrev43133.
show more ...
|
#
428bc69a |
| 22-May-2020 |
Michael Lotz <mmlr@mlotz.ch> |
VMCache: Factor out a _FreePageRange method.
The code in the Resize and Rebase methods was identical except for the iterator.
Change-Id: I9f6b3c2c09af0c26778215bd627fed030c4d46f1 Reviewed-on: https
VMCache: Factor out a _FreePageRange method.
The code in the Resize and Rebase methods was identical except for the iterator.
Change-Id: I9f6b3c2c09af0c26778215bd627fed030c4d46f1 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2835 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
show more ...
|
#
4e2b49bc |
| 05-May-2020 |
Michael Lotz <mmlr@mlotz.ch> |
kernel/vm: Implement swap adoption for cut_area middle case.
Rename MovePageRange to Adopt and group it with Resize/Rebase as it covers the third, middle cut case.
Implement VMAnonymousCache::Adopt
kernel/vm: Implement swap adoption for cut_area middle case.
Rename MovePageRange to Adopt and group it with Resize/Rebase as it covers the third, middle cut case.
Implement VMAnonymousCache::Adopt() to actually adopt swap pages. This has to recreate swap blocks instead of taking them over from the source cache as the cut offset or base offset between the caches may not be swap block aligned. This means that adoption may fail due to memory shortage in allocating the swap blocks.
For the middle cut case it is therefore now possible to have the adopt fail in which case the previous cache restore logic is applied. Since the readoption of the pages from the second cache can fail for the same reason, there is a slight chance that we can't restore and lose pages. For now, just panic in such a case and add a TODO to free memory and retry.
Change-Id: I9a661f00c8f03bbbea2fe6dee90371c68d7951e6 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2588 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
show more ...
|
#
c6657ffe |
| 15-Apr-2012 |
Hamish Morrison <hamish@lavabit.com> |
Resize caches in all cases when cutting areas
* Adds VMCache::MovePageRange() and VMCache::Rebase() to facilitate this.
Applied on top of hrev45098 and rebased with the hrev45564 page_num_t to of
Resize caches in all cases when cutting areas
* Adds VMCache::MovePageRange() and VMCache::Rebase() to facilitate this.
Applied on top of hrev45098 and rebased with the hrev45564 page_num_t to off_t change included.
Change-Id: Ie61bf43696783e3376fb4144ddced3781aa092ba Reviewed-on: https://review.haiku-os.org/c/haiku/+/2581 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
show more ...
|
#
271ac910 |
| 09-Jan-2015 |
Adrien Destugues <pulkomandy@gmail.com> |
Remove useless includes of khash.h
* These files were already converted to BOpenHashTable. * For #9552.
|
#
d0f2d828 |
| 17-Jan-2014 |
Pawel Dziepak <pdziepak@quarnos.org> |
Merge branch 'scheduler'
Conflicts: build/jam/packages/Haiku headers/os/kernel/OS.h headers/os/opengl/GLRenderer.h headers/private/shared/cpu_type.h src/add-ons/kernel/drivers/power/acpi_batter
Merge branch 'scheduler'
Conflicts: build/jam/packages/Haiku headers/os/kernel/OS.h headers/os/opengl/GLRenderer.h headers/private/shared/cpu_type.h src/add-ons/kernel/drivers/power/acpi_battery/acpi_battery.h src/bin/sysinfo.cpp src/bin/top.c src/system/kernel/arch/x86/arch_system_info.cpp src/system/kernel/port.cpp
show more ...
|
#
dac7b7c9 |
| 06-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix various 64 bit related warnings
Mostly printf() format strings and signed-unsigned comparisons. Fixes the x86_64 build.
|
#
c8dd9f77 |
| 30-Oct-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
kernel: Add thread_unblock() and use it where possible
|