1. 21 Nov, 2017 1 commit
  2. 06 Oct, 2017 1 commit
  3. 05 Sep, 2017 1 commit
  4. 03 Sep, 2017 1 commit
  5. 21 Jun, 2017 1 commit
  6. 05 May, 2017 1 commit
  7. 19 Apr, 2017 1 commit
  8. 01 Jan, 2017 1 commit
  9. 21 Dec, 2016 1 commit
  10. 11 Dec, 2016 1 commit
  11. 01 Jun, 2016 1 commit
  12. 21 Mar, 2016 2 commits
  13. 28 Feb, 2016 2 commits
  14. 13 Oct, 2015 1 commit
  15. 25 Sep, 2015 1 commit
  16. 31 Jul, 2015 2 commits
  17. 20 Jul, 2015 3 commits
  18. 19 Jun, 2015 1 commit
  19. 05 Jun, 2015 1 commit
  20. 30 May, 2015 4 commits
  21. 27 Mar, 2015 1 commit
  22. 19 Mar, 2015 1 commit
  23. 11 Feb, 2015 4 commits
  24. 08 Feb, 2015 1 commit
  25. 21 Jan, 2015 1 commit
    • Emmanuel Benoît's avatar
      Build files: remove extraneous dependency · ad1f4567
      Emmanuel Benoît authored
      * configure.ac: use LT_LIBM to check for the maths library
      * src/accelerometer/Makefile.am: use $(LIBM) instead of -lm in the link
      flags
      
      This causes all executables (except accelerometer) and libraries to be
      linked without libm, which they do not need.
      ad1f4567
  26. 16 Nov, 2014 1 commit
  27. 31 Oct, 2014 2 commits
    • Michal Schmidt's avatar
      hashmap: rewrite the implementation · 03221aa4
      Michal Schmidt authored
      We reintroduce hashmap.{h,c}, list.h and set.h verbatim from upstream,
      before we punt dead code.  The following is the upstream message:
      
      This is a rewrite of the hashmap implementation. Its advantage is lower
      memory usage.
      
      It uses open addressing (entries are stored in an array, as opposed to
      linked lists). Hash collisions are resolved with linear probing and
      Robin Hood displacement policy. See the references in hashmap.c.
      
      Some fun empirical findings about hashmap usage in systemd on my laptop:
        - 98 % of allocated hashmaps are Sets.
        - Sets contain 78 % of all entries, plain Hashmaps 17 %, and
          OrderedHashmaps 5 %.
        - 60 % of allocated hashmaps contain only 1 entry.
        - 90 % of allocated hashmaps contain 5 or fewer entries.
        - 75 % of all entries are in hashmaps that use trivial_hash_ops.
      
      Clearly it makes sense to:
        - store entries in distinct entry types. Especially for Sets - their
          entries are the most numerous and they require the least information
          to store an entry.
        - have a way to store small numbers of entries directly in the hashmap
          structs, and only allocate the usual entry arrays when the direct
          storage is full.
      
      The implementation has an optional debugging feature (enabled by
      defining the ENABLE_HASHMAP_DEBUG macro), where it:
        - tracks all allocated hashmaps in a linked list so that one can
          easily find them in gdb,
        - tracks which function/line allocated a given hashmap, and
        - checks for invalid mixing of hashmap iteration and modification.
      
      Since entries are not allocated one-by-one anymore, mempools are not
      used for entries. Originally I meant to drop mempools entirely, but it's
      still worth it to use them for the hashmap structs. My testing indicates
      that it makes loading of units about 5 % faster (a test with 10000 units
      where more than 200000 hashmaps are allocated - pure malloc: 449±4 ms,
      mempools: 427±7 ms).
      
      Here are some memory usage numbers, taken on my laptop with a more or
      less normal Fedora setup after booting with SELinux disabled (SELinux
      increases systemd's memory usage significantly):
      
      systemd (PID 1)                            Original   New    Change
      dirty memory (from pmap -x 1) [KiB]            2152  1264     -41 %
      total heap allocations (from gdb-heap) [KiB]   1623   756     -53 %
      Signed-off-by: 's avatarAnthony G. Basile <blueness@gentoo.org>
      03221aa4
    • Lennart Poettering's avatar
      util: make use of the new getrandom() syscall if it is available when needing entropy · ea79c9cd
      Lennart Poettering authored
      Doesn't require an fd, and could be a bit faster, so let's make use of
      it, if it is available.
      Signed-off-by: 's avatarAnthony G. Basile <blueness@gentoo.org>
      ea79c9cd
  28. 29 Oct, 2014 1 commit