Branch: Tag:

2017-11-11

2017-11-11 16:35:01 by Tobias S. Josefowitz <tobij@tobij.de>

GC: Inline markers into datastructures

Initial work is done. This may have worse performance characteristics
for now. Futher work will use the block allocator provided iterator
instead of linked lists to visit all objects and potentially optimize
the memory layout of the marker struct.

2017-07-25

2017-07-25 20:46:28 by Martin Nilsson <nilsson@fastmail.com>

Added comment.

2016-04-09

2016-04-09 16:47:42 by Martin Nilsson <nilsson@fastmail.com>

unsigned INT64 -> UINT64

2016-01-12

2016-01-12 18:09:27 by Per Hedbor <ph@opera.com>

inline is part of c99

We do have.. excessive amounts of inline, incidentally. :)

2015-10-17

2015-10-17 23:42:19 by Martin Nilsson <nilsson@fastmail.com>

stdlib.h is included from global.h

2015-09-21

2015-09-21 18:20:39 by Arne Goedeke <el@laramies.com>

block_allocator: improved error messages

2015-09-21 18:20:38 by Arne Goedeke <el@laramies.com>

block_allocator: removed unwanted PMOD_EXPORT

2015-09-21 18:20:37 by Arne Goedeke <el@laramies.com>

block_allocator: align allocations to page size

Try to choose the initial page size such that it fits into a multiple of
4K including headers and malloc overhead.

2015-09-09

2015-09-09 17:18:48 by Arne Goedeke <el@laramies.com>

block_allocator: fixed a bug in ba_sort_free_list

This could possibly happen after syntax errors when freeing
the compiler data.

2015-09-09 16:42:58 by Arne Goedeke <el@laramies.com>

block_allocator: fixed a bug in ba_sort_free_list

This could possibly happen after syntax errors when freeing
the compiler data.

2015-05-16

2015-05-16 13:07:01 by Arne Goedeke <el@laramies.com>

Stdio.Buffer: use round_up*() functions to enlarge buffer.

Fixes an infinity loop due to overflow. Also changed the round_up*() functions
to return 0 on overflow and made 1 the next power of two after 0.

2015-05-16 13:02:23 by Arne Goedeke <el@laramies.com>

Stdio.Buffer: use round_up*() functions to enlarge buffer.

Fixes an infinity loop due to overflow. Also changed the round_up*() functions
to return 0 on overflow and made 1 the next power of two after 0.

2015-04-02

2015-04-02 11:48:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Build: Support compilation with compilers other than gcc again.

Replace all uses of __attribute((unused)) with PIKE_ATTRIBUTE_UNUSED.

Replaced all remaining uses of __attribute() and __attribute__()
with ATTRIBUTE().

2014-12-07

2014-12-07 16:17:03 by Bill Welliver <bill@welliver.org>

build: more deattributification for Windows

2014-11-13

2014-11-13 20:10:35 by Arne Goedeke <el@laramies.com>

rename aligned_alloc to xalloc_aligned

C11 defines aligned_alloc. This can lead to all kinds of confusion, so
lets rename our internal function.

2014-11-13 20:10:12 by Arne Goedeke <el@laramies.com>

rename aligned_alloc to xalloc_aligned

C11 defines aligned_alloc. This can lead to all kinds of confusion, so
lets rename our internal function.

2014-10-04

2014-10-04 11:35:45 by Arne Goedeke <el@laramies.com>

block_allocator: use Valgrind macros in the right order

When sorting the free list during ba_walk(), the Valgrind macros were
used in the wrong order. This led to spurious Valgrind warnings.

2014-10-04 11:35:21 by Arne Goedeke <el@laramies.com>

block_allocator: use Valgrind macros in the right order

When sorting the free list during ba_walk(), the Valgrind macros were
used in the wrong order. This led to spurious Valgrind warnings.

2014-10-03

2014-10-03 16:23:30 by Jonas Walldén <jonasw@roxen.com>

Fix a bunch of Clang warnings.

2014-10-03 16:22:57 by Jonas Walldén <jonasw@roxen.com>

Fix a bunch of Clang warnings.

2014-09-05

2014-09-05 10:16:04 by Arne Goedeke <el@laramies.com>

Valgrind: suppress some warnings

2014-09-05 10:12:52 by Arne Goedeke <el@laramies.com>

Valgrind: suppress some warnings

2014-09-05 10:12:52 by Arne Goedeke <el@laramies.com>

block_allocator: do not keep empty pages around

In certain cases the block allocator kept around free pages. This
happened with markers used by the gc.

2014-09-04

2014-09-04 19:45:39 by Arne Goedeke <el@laramies.com>

block_allocator: do not keep empty pages around

In certain cases the block allocator kept around free pages. This
happened with markers used by the gc.

2014-08-23

2014-08-23 14:52:00 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/8.0' into string_alloc

2014-08-23 14:48:40 by Arne Goedeke <el@laramies.com>

block_allocator: fix ba_walk() and improve valgrind support

Blocks in the free list are now marked as free while the callback is
running. This helps detecting invalid accesses. Also fixed a bug in
the free list sort.

2014-08-22

2014-08-22 18:02:24 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/8.0' into string_alloc

2014-08-22 16:00:14 by Arne Goedeke <el@laramies.com>

block_allocator: do not round up powers of 2

The family of round_up* functions rounds up to the next power of two.
This made most block allocators initial areas twice as big as intended.

2014-07-02

2014-07-02 17:09:15 by Arne Goedeke <el@laramies.com>

block_allocator: removed some INLINE and warnings for unused parameters

2014-04-27

2014-04-27 20:37:42 by Martin Nilsson <nilsson@opera.com>

mallocs nowdays return void*, so no need to case.

2014-04-15

2014-04-15 17:46:11 by Arne Goedeke <el@laramies.com>

block_allocator: always check ptr validity on free

2014-03-15

2014-03-15 20:18:05 by Martin Nilsson <nilsson@opera.com>

Fixed warning with ifdefs.

2014-02-11

2014-02-11 10:24:28 by Arne Goedeke <el@laramies.com>

block_allocator: do not execute empty loop

2014-01-05

2014-01-05 15:14:13 by Marcus Comstedt <marcus@mc.pp.se>

Merge branch '8.0' into gobject-introspection

2013-11-12

2013-11-12 12:31:33 by Arne Goedeke <el@laramies.com>

block_allocator: do not allocate too large bitvector

2013-10-31

2013-10-31 19:11:24 by Arne Goedeke <el@laramies.com>

block_allocator: allocate pages only if needed and some cleanup

2013-10-28

2013-10-28 14:45:31 by Arne Goedeke <el@laramies.com>

block_allocator: more helpful debug on free list corruption

2013-10-10

2013-10-10 14:54:16 by Arne Goedeke <el@laramies.com>

block_allocator: fixed --with-debug

2013-10-09

2013-10-09 18:42:52 by Arne Goedeke <el@laramies.com>

block_allocator: fixed ba_walk and some cleanup

2013-10-09 15:55:12 by Arne Goedeke <el@laramies.com>

block_allocator: added ba_walk for iterating over allocated blocks

2013-10-09 15:12:02 by Arne Goedeke <el@laramies.com>

block_allocator: reuse pages used by the gc

2013-09-16

2013-09-16 09:50:32 by Per Hedbor <ph@opera.com>

Fixed count_all in the block allocator.

The memory_info() function had a tendency to return values like
0 objects, total 120Kb

2013-08-02

2013-08-02 11:45:51 by Arne Goedeke <el@laramies.com>

added fallbacks for valgrind mempool macros

2013-08-01

2013-08-01 17:02:42 by Arne Goedeke <el@laramies.com>

block_allocator: added support for alignment

2013-07-01

2013-07-01 15:01:47 by Arne Goedeke <el@laramies.com>

pike_memory: replaced old block allocator

2013-06-21

2013-06-21 09:18:55 by Arne Goedeke <el@laramies.com>

Merge remote-tracking branch 'origin/7.9' into pdf

2013-06-16

2013-06-16 19:13:29 by Arne Goedeke <el@laramies.com>

block_allocator: check for valgrind macros

2013-06-16 10:06:12 by Arne Goedeke <el@laramies.com>

block_allocator: use valgrind macros

2013-06-13

2013-06-13 21:35:42 by Arne Goedeke <el@laramies.com>

block_alloc: memusage stats could overflow

2013-06-12

2013-06-12 20:04:24 by Arne Goedeke <el@laramies.com>

Added new block allocator. It dramatically speeds up free, when
allocating many blocks and deallocation happens non linearly.

2013-06-12 19:01:37 by Arne Goedeke <el@laramies.com>

new block alloc

2013-06-12 18:34:31 by Arne Goedeke <el@laramies.com>

new block alloc

2013-06-11

2013-06-11 21:51:01 by Arne Goedeke <el@laramies.com>

ammend this

2012-11-03

2012-11-03 08:02:27 by Arne Goedeke <el@laramies.com>

use memcheck macros when USE_VALGRIND is defined

2012-11-01

2012-11-01 11:42:32 by Arne Goedeke <el@laramies.com>

included GJAlloc

2012-10-29

2012-10-29 17:35:35 by Arne Goedeke <el@laramies.com>

more debug

2012-06-15

2012-06-15 18:20:42 by Arne Goedeke <el@laramies.com>

added xalloc

2012-04-02

2012-04-02 20:42:18 by Arne Goedeke <el@laramies.com>

add GJAlloc as a bundle

2012-02-19

2012-02-19 00:05:27 by Arne Goedeke <el@laramies.com>

pike_memory: new helper cmemset()

2012-02-13

2012-02-13 04:35:33 by Arne Goedeke <el@laramies.com>

let's go seperate ways, together.

2012-02-12

2012-02-12 22:36:03 by Arne Goedeke <el@laramies.com>

fix ba_destroy

2012-02-12 15:32:14 by Arne Goedeke <el@laramies.com>

use free_blk to save one memory dereference on free/alloc

2012-02-12 03:55:43 by Arne Goedeke <el@laramies.com>

set p->first = NULL when full

2012-02-12 02:57:46 by Arne Goedeke <el@laramies.com>

use maligned memory pages to find page without hash

2012-02-12 01:19:08 by Arne Goedeke <el@laramies.com>

lets try another approach

2012-02-11

2012-02-11 23:27:40 by Arne Goedeke <el@laramies.com>

optimize hash lookup

2012-02-09

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

added more sofisticated statistics support

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

include malloc headers for stats

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

moved counter into stats struct

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

stats moved into seperate struct for clearity

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

got rid of list, take advantage of power of two hashtable sizes

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

errbuf ... never used but for micro benchmark

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

more meaningful counters

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

nicer stats

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

fixed WALK_FREE_NODES

2012-02-09 13:29:49 by Arne Goedeke <el@laramies.com>

redo fast paths!

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

traverse both buckets at once

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

macro based alignment

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

blueprint support and corrected rounding up of page_size

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

have page struct at beginning of page

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

Revert "blueprint support for faster? initialization"

This reverts commit 6dbb91eab2145159e1f9c2b88138551f1b599ed9.

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

join the two slow paths in free and remove left in favour or p->used

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

make ba_free fast path smaller

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

pre-undo (post-do) intermediate commit.

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

help gcc with descision making

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

reduce size of ba_free to help inlining

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

simplify destroy

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

do late chaining

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

properly grow page_size

2012-02-09 13:29:48 by Arne Goedeke <el@laramies.com>

addition COUNTS in htable lookup

2012-02-09 13:29:47 by Arne Goedeke <el@laramies.com>

typo

2012-02-09 13:29:47 by Arne Goedeke <el@laramies.com>

use base bitvector.h

2012-02-09 13:29:47 by Arne Goedeke <el@laramies.com>

working for now

2012-02-09 13:29:47 by Arne Goedeke <el@laramies.com>

fixed memory initialization

2012-02-09 13:29:47 by Arne Goedeke <el@laramies.com>

working state (without debug)

2012-02-09 13:29:47 by Arne Goedeke <el@laramies.com>

fixed inline -> INLINE

2012-02-09 13:29:47 by Arne Goedeke <el@laramies.com>

blueprint support for faster? initialization

2012-02-09 13:29:47 by Arne Goedeke <el@laramies.com>

set prev only if first

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

fixed some compilation problem

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

fixed page indexing

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

added grow/shrink support and some fast paths

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

use chained buckets instead of open allocation

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

used unsigned int

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

fixed linked list fuckup

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

added some debug

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

keep 3 empty pages around

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

block_allocator: initial commit

2012-02-09 13:29:46 by Arne Goedeke <el@laramies.com>

THIS IS TEMPORARY