svn commit: r354977 - in head: share/man/man3 sys/sys tests/sys/sys

Eric Joyner erj at freebsd.org
Thu Nov 21 21:34:53 UTC 2019


On Thu, Nov 21, 2019 at 12:07 PM Conrad Meyer <cem at freebsd.org> wrote:

> Hi Eric,
>
> On Thu, Nov 21, 2019 at 11:58 AM Eric Joyner <erj at freebsd.org> wrote:
> >
> > Author: erj
> > Date: Thu Nov 21 19:57:56 2019
> > New Revision: 354977
> > URL: https://svnweb.freebsd.org/changeset/base/354977
> >
> > Log:
> >   bitstring: add functions to find contiguous set/unset bit sequences
> >
> >   Add bit_ffs_area_at and bit_ffc_area_at functions for searching a bit
> >   string for a sequence of contiguous set or unset bits of at least the
> >   specified size.
> >
> >   The bit_ffc_area function will be used by the Intel ice driver for
> >   implementing resource assignment logic using a bitstring to represent
> >   whether or not a given index has been assigned or is currently free.
>
> I don't know what the ice driver is/does, so apologies if this is
> nonsensical.  Would it make more sense to use vmem(9) for this
> purpose?  It's a general-purpose resource allocator and can scale well
> with large numbers of resources / CPUs.
>
> Best,
> Conrad
>

+Jake

Hi Conrad,

It doesn't seem nonsensical; this seems like it would vaguely be an ok fit.
But one issue
I find after looking at it is that it doesn't support the "scattered"
allocations that we need; for some types of
hardware queues we need to be able to group together multiple
non-sequential allocations into one single block,
and it doesn't look like we could do that without having to add another
layer on top of vmem.

As well, it looks like it's kind of overbuilt for what we need; we only
need a few operations. It also seems to import
a bunch of stuff in its headers, which might complicate using it in our
unit test code.

If you want to look at the current structure we use, you can look at the
ice_pf_qmgr.[ch] files in this Phabricator
review that introduces ice(4) to the kernel:
https://reviews.freebsd.org/D21959.

- Eric


More information about the svn-src-all mailing list