History log of /relibc/ralloc/shim/ (Results 1 – 14 of 14)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
31b781a204-Mar-2018 Jeremy Soller <jackpot51@gmail.com>

Support Redox

cd8d627e08-Nov-2017 Ian Douglas Scott <ian@iandouglasscott.com>

Use new allocator API, and otherwise update for new Rust

- New allocator API
- Remove the "allocator" feature, which should be unnecessary due to how
the new allocator API works
- NonZero no longer

Use new allocator API, and otherwise update for new Rust

- New allocator API
- Remove the "allocator" feature, which should be unnecessary due to how
the new allocator API works
- NonZero no longer implements Deref (https://github.com/rust-lang/rust/pull/41064)
- NonZero::new() returns an Option; use NonZero::new_unchecked()
- Thread locals are no longer 'static (https://github.com/rust-lang/rust/pull/43746)
- Changes to feature flags
- Use unsafe to access extern static (https://github.com/rust-lang/rust/issues/36247)

show more ...

a93871cd22-Jul-2017 Ivan Enderlin <ivan.enderlin@hoa-project.net>

Update `sc` to 0.2.1 (#52)

35fd0db917-Jan-2017 Jorge Aparicio <japaricious@gmail.com>

add support for Linux on AArch64, MIPS(64), PowerPC(64) and SPARC64 (#43)

by switching from the syscall crate to the sc crate. The sc crate is a
fork of the syscall crate that adds supports for sev

add support for Linux on AArch64, MIPS(64), PowerPC(64) and SPARC64 (#43)

by switching from the syscall crate to the sc crate. The sc crate is a
fork of the syscall crate that adds supports for several other
platforms.

show more ...

25c0dbe919-Aug-2016 ticki <ticki@users.noreply.github.com>

Fix bugs in memtrimming related to the byte count.

Various issues (like premature checks) were present in the byte count
beforehand. We fix these.

- Fix invalid byte counts.
- Add a `LOCAL_MEMTRIM_

Fix bugs in memtrimming related to the byte count.

Various issues (like premature checks) were present in the byte count
beforehand. We fix these.

- Fix invalid byte counts.
- Add a `LOCAL_MEMTRIM_STOP` constant to `shim`, which serves for the
minimum memtrimmed allocator (i.e. it will stop when the byte count is
below this value).
- Add more logs.
- Add assertions about libc interference with SBRK.

There is still some problem when running

show more ...

e319049116-Aug-2016 ticki <ticki@users.noreply.github.com>

Multi-level logging and user configuration.

This commit is a complete revision of `shim`. Anything which is
configurable of nature is now moved to `shim` allowing complete
customizability of `ralloc

Multi-level logging and user configuration.

This commit is a complete revision of `shim`. Anything which is
configurable of nature is now moved to `shim` allowing complete
customizability of `ralloc`.

But it doesn't end there!

The logs got quite messy before due to the classical TMI problem. We
solve this by adding multiple "log levels" each describing a different
class of importance.

- Add multi-level logging.
- Move each component of shim into distinct modules.
- Add allocator canonicalization to `shim`.
- Add adjustable constant to `shim`.
- Add default OOM handler to `shim`.
- Add logging to everything.
- Remove the `libc_write` module and add it to `log` instead.
- Add colourful OOM message.
- Tweak the allocator canonicalization strategy.
- Rename the `log!` macro to `bk_log!`, and use the old name for the
generalized logging macro.
- Remove the `unsafe_no_brk_lock` feature, due to being unsafe in
multithreaded environment (and in singlethreaded ones,
`unsafe_no_mutex_lock` is sufficient).
- Remove the `sys` module in favor of direct `shim` imports.

show more ...

998377c614-Aug-2016 ticki <ticki@users.noreply.github.com>

Implement BRK caching.

Previously, BRK was making two syscalls in glibc due to requesting
the program break and then setting it. This is fixed by caching this
program break.

This commit prepares fo

Implement BRK caching.

Previously, BRK was making two syscalls in glibc due to requesting
the program break and then setting it. This is fixed by caching this
program break.

This commit prepares for OS memtrimming, which needs a well-defined
thread-safe function.

- Completely remove libc dependency due to allocation behavior being
uncertain in non-glibc implementation (the POSIX standard tells little
to nothing about this).
- Move the default OOM handler to shim.
- Give an error message in the default OOM handler.
- Add SBRK benchmark.

This should improve performance of fresh allocations by 30-40%.

show more ...

b7c1f1bf12-Aug-2016 ticki <ticki@users.noreply.github.com>

Valgrind support.

We add first-class debugger support by providing functions for marking memory blocks uninitialized/free to the debugger. The default implementation is wired to valgrind, but it can

Valgrind support.

We add first-class debugger support by providing functions for marking memory blocks uninitialized/free to the debugger. The default implementation is wired to valgrind, but it can easily be replaced.

show more ...

78084f1609-Aug-2016 ticki <ticki@users.noreply.github.com>

Bump shim to 0.1.1

453db85408-Aug-2016 ticki <ticki@users.noreply.github.com>

Logging symbols for shim

To allow custom logging target, we replace the direct libc symbols by an import from the shim crate, which can then be replace to match desired behavior.

cdec4b0e03-Aug-2016 ticki <ticki@users.noreply.github.com>

Ralloc 1.0.0: A trait-based local/global allocator model.

- Use a trait-based approach to local/global allocators. In particular,
we make what was previously provided by `Bookkeeper` to a trait in

Ralloc 1.0.0: A trait-based local/global allocator model.

- Use a trait-based approach to local/global allocators. In particular,
we make what was previously provided by `Bookkeeper` to a trait in
which the custom methods are overriden.
- Enable ralloc-based block list reallocation. Instead of using BRK for
this, we allow the allocator itself to manage the bookkeeper's
capacity. This is done by adding the guarantee of the vector's
capacity always being greater than or equal two the length plus two.
- Remove the `UniCell` primitive and provides a `MoveCell` primitive
instead.
- Move `Bookkeeper`-specific methods to `Bookkeeper`'s impl instead of
the `Allocator` trait.
- Introduce the `LazyInit` primitive, which provides functionality
similar to the `lazy_static` crate. In particular, it allows for an
initializer to be executed if initialization is needed. This is used
for allocating the initial segment.
- Use lonely method for allocation API (abolish `lock`, which is no
longer relevant due to the new model).
- Due to an unsoundness discovered by @nilset, we remove the correctness
guarantee of the "seperate deallocation" example.
- Remove microcaches. This method is outdated with the new model. In the
future, it will likely be replaced by a small-allocation LL arena.
- Wrap TLS variables in a newtype that guarantees against crossthread
leakage.
- Update the tests.

show more ...

c8adc1ea29-Jul-2016 ticki <ticki@users.noreply.github.com>

Performance pass for ralloc: global-local allocator model, TLS allocator, and more

- Ralloc now has a global-local allocator model where the local allocator requests memory from the global allocator

Performance pass for ralloc: global-local allocator model, TLS allocator, and more

- Ralloc now has a global-local allocator model where the local allocator requests memory from the global allocator. This allows for...

- ...thread-local storage allocators. The local allocator stores the allocator in a TLS static, bypassing the mutex.

- Changes to OOM handling: the OOM handleris no longer allocator-specific, but instead global

- Thread-local OOMs

- Tweak canonicalization.

- Add UniCell primive, which allow for single-threaded mutexes

- Tests and stuff.

show more ...

2443f0e414-Jul-2016 ticki <ticki@users.noreply.github.com>

Move remove_at to Bookkeeper

49840afd05-Jul-2016 Jeremy Soller <jackpot51@gmail.com>

Add shim