History log of /haiku/src/system/kernel/vm/VMCache.cpp (Results 1 – 25 of 70)
Revision Date Author Comments
# 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


123