- 18 Sep, 2018 2 commits
-
-
Nathan Bronson authored
Summary: This diff adds spurious rehash at places where the caller should not be assuming reference (unless guaranteed) or iterator stability, allowing ASAN to detect these problems. Under ASAN it also junk-fills deleted value_type instances that can't be immediately deallocated. Reviewed By: yfeldblum Differential Revision: D9826273 fbshipit-source-id: 2d543473b17ffd7debb52082a3e72842121ece1a
-
Gisle Dankel authored
Summary: An allocator that uses a jemalloc arena backed by 2MB huge pages. This uses the jemalloc extent hooks to let jemalloc hand out memory backed by huge pages. The huge pages are allocated when init(int nr_pages) is called, and does not grow (although extending it to grow in the future should be fairly straightforward). madvise is used to mark the pages as huge. It does not guarantee success, and the only way to tell is by looking at /proc/<pid>/smaps and the total huge pages in /proc/<pid>/status. The HugePageAllocator can be used as template parameter for stl and folly collections. Reviewed By: yfeldblum Differential Revision: D9297627 fbshipit-source-id: 734ca1b19972a8b5d7a12ee60cba1ffa3da50dc2
-
- 17 Sep, 2018 4 commits
-
-
Kyle Nekritz authored
Reviewed By: ngoyal, mingtaoy Differential Revision: D9862034 fbshipit-source-id: ce1f00fe12c52e755ff67775e980ff3ff4227bbf
-
Xiao Shi authored
Summary: No semantic changes. Reordering, and removal of an unnecessary fwd decl Reviewed By: nbronson Differential Revision: D9851048 fbshipit-source-id: dd306435ad2f77e42f74dc29b19ec5d6fe09ae2a
-
Orvid King authored
Summary: It's no longer needed, and was a pain to support properly. Reviewed By: yfeldblum Differential Revision: D9846778 fbshipit-source-id: b727a3459efed4e6df3db50f8d7fe0963c3608f8
-
Dan Melnic authored
Summary: Handle the dlopen static initialization Reviewed By: yfeldblum Differential Revision: D9847032 fbshipit-source-id: 089628ef88cf72d189a8904a3f2231f1affc764c
-
- 16 Sep, 2018 6 commits
-
-
Orvid King authored
Summary: It's no longer needed. Reviewed By: yfeldblum Differential Revision: D9847073 fbshipit-source-id: 072f4e5fc207ab199689e42c4f492d4fcb67aa8e
-
Orvid King authored
Summary: The last bits of pthread needed for thrift. Also define PTHREAD_MUTEX_NORMAL properly. Reviewed By: yfeldblum Differential Revision: D9846774 fbshipit-source-id: 124013c6df07f9faa214b77fa8ebe8b37d8f460e
-
Yedidya Feldblum authored
Summary: [Folly] Fix `rcu_domain` move-assignment pointer copy which seemingly should be a pointer exchange. Reviewed By: magedm Differential Revision: D9846892 fbshipit-source-id: ef3a113780af7456d66dacd376b3bf43670fcb9e
-
Lee Howes authored
Summary: Documentation has drifted out of date with updated plan. This brings the core parts into line. Reviewed By: yfeldblum Differential Revision: D9833211 fbshipit-source-id: b372f9cfc0c787feab86490beeb1dcaa290e8566
-
Yedidya Feldblum authored
Summary: [Folly] Tweak `ThreadLocal` inlining. Shrinks overly-large generated code for `ThreadLocal::get()`. Reviewed By: luciang Differential Revision: D9732837 fbshipit-source-id: 71eb10d9759e1fa17248e0feed75f610948afe21
-
Yedidya Feldblum authored
Summary: [Folly] Tweak `ThreadLocal` fast-path functions. Mostly code golf. Differential Revision: D9732836 fbshipit-source-id: fc48a7c067c6961413e6aa94106ae26f87d3d603
-
- 15 Sep, 2018 5 commits
-
-
Orvid King authored
Summary: Let's see what breaks. Reviewed By: yfeldblum Differential Revision: D9569029 fbshipit-source-id: 2edbafc018ec70d8640f2e28d35735089c9eb69d
-
Orvid King authored
Summary: This only exists for perf comparisons, and has been unused for years. Reviewed By: yfeldblum Differential Revision: D9846361 fbshipit-source-id: ad28ff12fe16deb0ceee50ce6c098f234e8f9692
-
Lee Howes authored
Summary: Make comments consistent with the updated recommendations where it makes sense. Reviewed By: yfeldblum Differential Revision: D9833280 fbshipit-source-id: 8de3372b013a322e57cd2d54a512d75bf963d1a5
-
Aaryaman Sagar authored
Summary: lock bts and lock btr with the varying lengths turn out to be faster than a single CAS instruction fetch_set uses lock bts and fetch_reset uses lock btr when possible. std::atomic::fetch_or and std::atomic::fetch_and with a mask otherwise Reviewed By: yfeldblum Differential Revision: D9652759 fbshipit-source-id: e6d10fdb119a10e15e32131c7389f1d4203a0d91
-
Dan Melnic authored
Make rcu_default_domain_ folly::Indestructible<rcu_domain<RcuTag>> to avoid asserts on _dl_open/_dl_init __static_initialization_and_destruction_0 Summary: Make rcu_default_domain_ folly::Indestructible<rcu_domain<RcuTag>> to avoid asserts on _dl_open/_dl_init __static_initialization_and_destruction_0 Reviewed By: yfeldblum Differential Revision: D9845303 fbshipit-source-id: e858e86a6f7885bf6a3ad8d5e957ee947a5ce2b3
-
- 14 Sep, 2018 7 commits
-
-
Orvid King authored
Summary: Because explicit is better. Reviewed By: sathyaphoenix Differential Revision: D9834733 fbshipit-source-id: 6e6af1d5215021db522284b6c58c753522df20df
-
Matt Glazar authored
Summary: I want to use TestLogHandler::getMessageValues with a const TestLogHandler reference. Mark getMessageValues as const so it can be called on a const TestLogHandler. getMessageValues doesn't mutate class state, so this should be safe. Reviewed By: chadaustin Differential Revision: D9815552 fbshipit-source-id: 275625d1a001fe536586229228eb2c9eee7e6330
-
Orvid King authored
Summary: The pthread library we were using is getting to be annoying so just implement things ourself. Reviewed By: yfeldblum Differential Revision: D9777661 fbshipit-source-id: fb53d0d369ed27a869e9f6285a548778c3492f2e
-
Mark Williams authored
Summary: It first looks for the name, then looks for a section with that offset. But strings can be overlaid; eg .rela.debug_info and .debug_info can be overlapped, so we won't find .debug_info at all. Instead, just iterate the sections checking to see if the name matches the one we're looking for. Reviewed By: ricklavoie, palmtenor Differential Revision: D9809817 fbshipit-source-id: b165719c6f9004ecc964096677114bce357ece30
-
Irene Liu authored
Summary: Pull Request resolved: https://github.com/facebook/folly/pull/932 As title. Reviewed By: yfeldblum Differential Revision: D9817328 fbshipit-source-id: 261c68f21316e91f3ed752c4aeab9e9c95dfe16d
-
Yeolar authored
Summary: toAppend support DoubleToStringConverter::SHORTEST_SINGLE for float type. Pull Request resolved: https://github.com/facebook/folly/pull/928 Reviewed By: yfeldblum Differential Revision: D9790564 Pulled By: Orvid fbshipit-source-id: b38d6542518aa0ed7f2b0e222e9870bb5f3a51e5
-
Irene Liu authored
Summary: As title. Reviewed By: JohnRambo Differential Revision: D9820130 fbshipit-source-id: 58128c561825681d463759da33be94b861057f2e
-
- 13 Sep, 2018 4 commits
-
-
Nick Terrell authored
Summary: The `__cpuid()` and `__cpuidex()` instructions are only available on x86 and x64 https://fburl.com/ejw47bcl. Reported in zstd [Issue#1313](https://github.com/facebook/zstd/issues/1313). Reviewed By: Orvid Differential Revision: D9800189 fbshipit-source-id: 8e846d2220e544b16547db16d21c7c7b0e21cefb
-
Alexey Kozhevnikov authored
Summary: MSVC wants template arguments to have exact same names in forward declarations. Reviewed By: yfeldblum Differential Revision: D9780751 fbshipit-source-id: 18cc529603c128e4c5d5a20bc61e0e44c0d0240c
-
Aaryaman Sagar authored
Summary: - GLock<SpinLock> -> GoogleSpinLockAdapter - Duplicated BENCH_BASE -> BENCH_REL Reviewed By: yfeldblum Differential Revision: D9803057 fbshipit-source-id: a69961f6d429eadca6feaacd0d5d999b55d13300
-
Nick Terrell authored
Summary: `align()` was private, so the converting construct didn't have access to `other.align()`. Reviewed By: yfeldblum Differential Revision: D9785137 fbshipit-source-id: e64a66eccd8a8b28db27873c0aaa7305b642c926
-
- 12 Sep, 2018 8 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] Fix weird formatting of `break` after switch-case-close-brace. Reviewed By: Orvid Differential Revision: D9796573 fbshipit-source-id: 5f392e9fcf33be24acb9fc7a79bdf9ca846fd33c
-
Yedidya Feldblum authored
Summary: [Folly] Find `libiberty` headers in subdir also. Fixes #792. Reviewed By: simpkins Differential Revision: D9330225 fbshipit-source-id: 6a9c3aaf4e76e3b5c8947cb15d0b43ed6cbcc778
-
Alexey Kozhevnikov authored
Summary: Warning: https://msdn.microsoft.com/en-us/library/cxdxz3x6.aspx Provide matching placement delete operator to avoid the false-positive MSVC warning about memory leak when exception is thrown inside the constructor. Reviewed By: yfeldblum Differential Revision: D9773561 fbshipit-source-id: e6c4ab1d230e567491271c4cc2c23cd98469e672
-
Xiao Shi authored
Summary: No semantic changes Reviewed By: yfeldblum Differential Revision: D9788374 fbshipit-source-id: e619bc19d6064899ce61acc6b67b8b8a8f92101d
-
Yedidya Feldblum authored
Summary: [Folly] Revise the `kSelectInByte` comments - hopefully be clearer and include an example. Reviewed By: luciang Differential Revision: D9780161 fbshipit-source-id: 6e9b5798afed9fe161b527ab597852232c278564
-
Yedidya Feldblum authored
Summary: [Folly] Compute `kSelectInByte` table at compile time rather than hardcoding the resulting precomputed table. Reviewed By: luciang Differential Revision: D9627807 fbshipit-source-id: 01fbb07dd14aac4b84ad72bac10a12d3657be589
-
Nathan Bronson authored
Summary: Currently malloc(goodMallocSize(x)) will succeed when x is larger than the maximum possible allocation supported by jemalloc. This is not desirable. Currently goodMallocSize(x) returns 0 if x is too large, but 0 is a valid argument for malloc and causes a 1 byte allocation. This diff causes goodMallocSize(x) to return x in that case, which will cause the subsequent malloc to fail. The caller may catch that failure or crash immediately, but those are both preferrable to returning a pointer to a valid 1-byte allocation. Reviewed By: al13n321 Differential Revision: D9778137 fbshipit-source-id: 3eb8da72d6240b28da85483f0d91653f5e04b333
-
Yedidya Feldblum authored
Summary: [Folly] Refactor `StaticSingletonManager`. * Move implementation to `.cpp`. * Remove all `#include`s possible from `.h`. * Control inlining. Differential Revision: D9734721 fbshipit-source-id: 82a1cda187674a6bb62e14a80431aeb07c65156c
-
- 11 Sep, 2018 4 commits
-
-
Yedidya Feldblum authored
Summary: [Folly] A unit-test for the `kSelectInByte` table. The table essentially contains an encoding of every byte value. So we add a unit-test which decodes from the table, confirming that each encoded byte decodes back to the original. Also add helpers to the test file to ease viewing disassembly of select64 variants. Reviewed By: ot Differential Revision: D9628409 fbshipit-source-id: 61cebaff4e9aff223a06194f7440eb3580a9273d
-
Yedidya Feldblum authored
Summary: [Folly] Test cases for `StaticSingletonManager`. Differential Revision: D9735443 fbshipit-source-id: e922d7742c12e6ca7725dc7782cc683cf71fb6a7
-
Dan Melnic authored
Summary: Add SpinLock from google/base/spinlock.h to the small lock benchmark Reviewed By: yfeldblum Differential Revision: D9771633 fbshipit-source-id: 3cf01866ec6cd4a4a5d8c2fb4274ca20a6f545dd
-
Neel Goyal authored
Summary: getApplicationProtocol should probably be const. Reviewed By: knekritz, mingtaoy Differential Revision: D9772305 fbshipit-source-id: c648f9307214258639616e2f4ff3a90dfbf9484b
-