Date: Mon, 2 Dec 2019 10:17:04 -0800 From: John Baldwin <jhb@FreeBSD.org> To: "Keller, Jacob E" <jacob.e.keller@intel.com>, "kostikbel@gmail.com" <kostikbel@gmail.com> Cc: "src-committers@freebsd.org" <src-committers@freebsd.org>, "cem@freebsd.org" <cem@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "erj@freebsd.org" <erj@freebsd.org> Subject: Re: svn commit: r354977 - in head: share/man/man3 sys/sys tests/sys/sys Message-ID: <f134b1ca-1bc3-0080-06c2-04889563b620@FreeBSD.org> In-Reply-To: <8f81e1457580142d077b074124a355d70793f250.camel@intel.com> References: <201911211957.xALJvuwi054399@repo.freebsd.org> <CAG6CVpWKxfzNFC%2B94NgQ0A_Ez1Vk6v6uasXnoAKaK4aeWjDLaA@mail.gmail.com> <CAKdFRZgzg-1h%2Bi1O3=aaRKjGGtx=Gao_tZrz1SaQP3QgDX3x1g@mail.gmail.com> <0435131fb462d6930409ce335af25dd5a33ec2b2.camel@intel.com> <20191122002233.GJ2707@kib.kiev.ua> <363f0fb5ec2924d2fb79d337030a7a3133467258.camel@intel.com> <20191122003451.GK2707@kib.kiev.ua> <8f81e1457580142d077b074124a355d70793f250.camel@intel.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11/21/19 4:50 PM, Keller, Jacob E wrote: > On Fri, 2019-11-22 at 02:34 +0200, Konstantin Belousov wrote: >> On Fri, Nov 22, 2019 at 12:25:00AM +0000, Keller, Jacob E wrote: >>> On Fri, 2019-11-22 at 02:22 +0200, Konstantin Belousov wrote: >>>> On Thu, Nov 21, 2019 at 09:52:54PM +0000, Keller, Jacob E wrote: >>>>> We use a bit string as a method of determining which index >>>>> numbers >>>>> have >>>>> been assigned. >>>> For unit numbers we have unr(9) as well. >>> >>> Does unr have support for allocating contiguous sequences of unit >>> numbers? >> >> No, it does not. Although the data structure is optimized to track >> contiguous runs, there is currently no API to allocate the chunk of >> desired >> length. > > Hmm. Might make more sense to extend the API to allow requesting chunks > of desired length, and then use that. Well, there is also the rman structure which does handle runs. However, I think vmem is probably what you should use. cxgbe(4) uses it to manage sub-allocations of on-card memory for TLS keys and other buffers. You can write simple wrapper functions for your use case around vmem_* that the rest of your driver can use. I don't think it really makes sense to extend bitstring or unr. I think we should leave those for more specific use cases and use vmem for cases that need a more general solution. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?f134b1ca-1bc3-0080-06c2-04889563b620>