Files
freebsd/sys/kern
Alan Cox f7bcbb5b7e MFC r323656
Modify blst_leaf_alloc to take only the cursor argument.

  Modify blst_leaf_alloc to find allocations that cross the boundary between
  one leaf node and the next when those two leaves descend from the same
  meta node.

  Update the hint field for leaves so that it represents a bound on how
  large an allocation can begin in that leaf, where it currently represents
  a bound on how large an allocation can be found within the boundaries of
  the leaf.

  The first phase of blst_leaf_alloc currently shrinks sequences of
  consecutive 1-bits in mask until each has been shrunken by count-1 bits,
  so that any bits remaining show where an allocation can begin, or until
  all the bits have disappeared, in which case the allocation fails. This
  change amends that so that the high-order bit is copied, as if, when the
  last block was free, it was followed by an endless stream of free
  blocks. It also amends the early stopping condition, so that the shrinking
  of 1-sequences stops early when there are none, or there is only one
  unbounded one remaining.

  The search for the first set bit is unchanged, and the code path
  thereafter is mostly unchanged unless the first set bit is in a position
  that makes some of those copied sign bits matter. In that case, we look
  for a next leaf, and at what blocks it can provide, to see if a
  cross-boundary allocation is possible.

  The hint is updated on a successful allocation that clears the last bit,
  but it not updated on a failed allocation that leaves the last bit
  set. So, as long as the last block is free, the hint value for the leaf is
  large. As long as the last block is free, and there's a next leaf, a large
  allocation can begin here, perhaps. A stricter rule than this would mean
  that allocations and frees in one leaf could require hint updates to the
  preceding leaf, and this change seeks to leave the freeing code
  unmodified.

  Define BLIST_BMAP_MASK, and use it for bit masking in blst_leaf_free and
  blist_leaf_fill, as well as in blst_leaf_alloc.

  Correct a panic message in blst_leaf_free.
2017-10-07 16:55:44 +00:00
..
2016-11-05 10:23:02 +00:00
2017-07-21 06:48:47 +00:00
2017-06-28 05:28:15 +00:00
2017-07-21 18:06:57 +00:00
2017-06-11 02:04:39 +00:00
2017-01-12 01:09:15 +00:00
2017-03-14 15:35:40 +00:00
2017-03-16 07:10:08 +00:00
2017-08-25 05:41:28 +00:00
2017-03-16 08:37:05 +00:00
…
2017-06-23 18:57:56 +00:00
2017-07-22 04:20:08 +00:00
2017-03-19 15:48:41 +00:00
2017-05-25 01:15:53 +00:00
2017-07-21 18:06:57 +00:00
2017-04-14 21:49:20 +00:00
2017-07-21 18:06:57 +00:00
2017-03-18 03:49:50 +00:00
2016-06-09 18:27:41 +00:00
2017-03-16 06:14:33 +00:00
2016-12-31 13:05:48 +00:00
2017-08-07 17:28:35 +00:00
2016-08-26 09:42:51 +00:00
2017-03-14 20:43:04 +00:00
2017-06-10 11:14:54 +00:00
2017-03-16 08:40:47 +00:00
2017-06-22 18:40:34 +00:00
2017-09-17 15:45:39 +00:00
2017-07-24 16:23:28 +00:00
2017-08-03 07:30:35 +00:00
2017-01-29 10:33:42 +00:00
2017-06-22 18:40:34 +00:00
2017-03-29 08:00:13 +00:00
2017-03-29 01:21:48 +00:00
2017-07-21 18:06:57 +00:00
2017-05-01 01:36:54 +00:00
2017-04-11 17:13:56 +00:00
2017-03-29 01:21:48 +00:00
2017-03-11 08:39:24 +00:00
2016-11-05 10:23:02 +00:00
2017-09-11 21:32:35 +00:00
2017-10-07 16:55:44 +00:00
2016-11-07 08:36:06 +00:00
2016-09-01 22:27:47 +00:00
2017-09-11 22:32:38 +00:00
2017-05-14 14:21:09 +00:00
2017-03-16 00:51:24 +00:00
2017-07-02 04:19:03 +00:00
2017-08-03 07:28:54 +00:00
2017-07-18 06:57:50 +00:00
2017-02-20 10:44:24 +00:00
2017-03-29 01:21:48 +00:00
2016-11-08 09:51:55 +00:00
2017-07-21 18:06:57 +00:00
2017-03-11 09:22:53 +00:00
2017-02-26 10:58:01 +00:00
2017-01-17 01:59:42 +00:00
2017-08-08 19:47:11 +00:00
2016-09-28 09:28:26 +00:00
2017-03-19 14:46:40 +00:00
2016-08-26 10:04:10 +00:00
2017-05-10 23:09:17 +00:00
2017-05-01 01:36:54 +00:00
2017-05-01 01:36:54 +00:00
…
2017-03-02 04:23:53 +00:00
2017-02-03 01:04:22 +00:00
2017-07-21 06:48:47 +00:00
2016-04-14 17:07:26 +00:00
2017-07-22 05:26:29 +00:00
2017-04-21 16:45:43 +00:00
2017-03-19 14:25:23 +00:00
2017-09-16 02:32:00 +00:00
…
2017-06-26 12:17:04 +00:00
2017-09-17 15:45:39 +00:00
2017-05-16 19:35:25 +00:00
2017-03-18 05:53:09 +00:00
2017-10-04 11:58:52 +00:00
2017-10-03 11:00:34 +00:00
2017-08-10 05:38:31 +00:00
2017-03-19 16:01:44 +00:00
2016-08-30 13:56:11 +00:00