Matthew Parkinson
9e53412bb9
Merge pull request #6 from Microsoft/mjp41/refactor
...
Rename TypeAlloc to Pool
2019-01-18 12:34:02 +00:00
Matthew Parkinson
806f7e47cc
Rename TypeAlloc to Pool
...
Minor refactor to clarify purpose of the pool.
2019-01-18 11:12:09 +00:00
Matthew Parkinson
5076bf6f32
Merge pull request #5 from Microsoft/AddressSpace
...
Address space constrained option
2019-01-17 18:43:40 +00:00
Matthew Parkinson
4748f25e57
Removing warnings from Windows Ninja configuration
...
Windows Ninja build was complaining about /W4 and /W3 being
specified, and C++ latest and C++ 17. This fixs those complaints.
2019-01-17 18:23:06 +00:00
Matthew Parkinson
e9ab9e8e24
Typo
2019-01-17 18:18:18 +00:00
Matthew Parkinson
4ad12f33cf
Fix spacing from a bad clang format.
2019-01-17 16:47:55 +00:00
Matthew Parkinson
0b57ff3667
Code Tidy
...
Remove explicit constructor as it is implicit.
2019-01-17 14:38:47 +00:00
Matthew Parkinson
ee9d899aa3
Remove GRANULARITY check
...
This check was not doing anything. It was from an earlier dependency
ordering issue that has now been fixed.
2019-01-17 14:38:14 +00:00
Matthew Parkinson
164df40372
Add configuration option for small address spaces
...
This adds a configuration option for 1MiB superslabs with 16KiB slabs.
2019-01-17 14:09:50 +00:00
Matthew Parkinson
b097b47aa2
Handle 2^16 slabs
...
This code assumes that 16bit uint wrapping can be used, rather than
masking by SLAB_SIZE-1. Add explicit mask, so we can change the
SLAB_SIZE to be smaller.
2019-01-17 14:09:50 +00:00
Matthew Parkinson
cf8699df4f
Update README.md
...
Added a build badge
2019-01-16 17:19:22 +00:00
Matthew Parkinson
dca05e2556
Merge pull request #3 from Microsoft/ThirtyTwoBit
...
Windows 32bit build
2019-01-16 17:12:03 +00:00
Matthew Parkinson
ab57c86e3a
Addressing CR feedback
2019-01-16 17:03:15 +00:00
Matthew Parkinson
c4e6af4bad
Remove spaces from CI task names
2019-01-16 15:22:29 +00:00
Matthew Parkinson
8a0e20eae3
Added 32bit Windows compile to the CI
2019-01-16 15:17:38 +00:00
Matthew Parkinson
233be30731
Implement a FlatPagemap
...
The current pagemap assumes there is at least one level of indexing.
This commit introduces a new pagemap that is completely flat. This is
useful for 32bit, where there is no need to introduce the indexing
structure.
This pagemap is also considerably faster for 64bit platforms, but
does require a global allocation of 16MiB of the flat page map.
2019-01-16 14:38:11 +00:00
Matthew Parkinson
82595dc9cd
Made Remote deallocation work on 32bit
...
The design of Remote used the top bits of the allocator id to encode
the sizeclass of the deallocation. On 32bit, or on a platform that uses all the bits
we cannot use these bits for a sizeclass.
This commit uses the bottom bit of the allocator id (which is
guaranteed to be 0), to indicate if the object is the minimum
allocation size. If it is not the minimum allocation size the
subsequent byte is used to encode the sizeclass.
The code uses constexpr to decide which strategy to use.
2019-01-16 14:38:10 +00:00
Matthew Parkinson
272bebb927
Reduce size of test on 32bit
2019-01-16 14:38:10 +00:00
Matthew Parkinson
74018a1c91
Correct PageMap public API
2019-01-16 14:38:10 +00:00
theodus
e2190f376f
Fix typo in threadalloc.h
2019-01-16 09:22:01 +00:00
Matthew Parkinson
2d9ca1eb52
Merge pull request #1 from Microsoft/azure-pipelines
...
Set up CI with Azure Pipelines
2019-01-15 14:48:39 +00:00
Matthew Parkinson
5d71f3bf85
Migrated original CI script.
2019-01-15 14:26:50 +00:00
Matthew Parkinson
4a7909f22b
Set up CI with Azure Pipelines
2019-01-15 14:23:45 +00:00
Matthew Parkinson
4f9d991449
Initial commit of snmalloc
...
History squashed from internal development.
Internal history has commit hash:
e27a0e485c44a5003a802de2661ce3b21e120316
2019-01-15 14:17:55 +00:00
Microsoft Open Source
e488c24784
Initial commit
2019-01-09 06:05:58 -08:00
Microsoft Open Source
5d3628d31c
Initial commit
2019-01-09 06:05:57 -08:00
Microsoft GitHub User
6249f7e230
Initial commit
2019-01-09 06:05:54 -08:00