From: "Dave Tucker" <dave@dtucker.co.uk>
To: "Jonathan Corbet" <corbet@lwn.net>, bpf@vger.kernel.org
Cc: ast@kernel.org, daniel@iogearbox.net, andrii@kernel.org,
kafai@fb.com, songliubraving@fb.com, john.fastabend@gmail.com,
kpsingh@kernel.org, linux-doc@vger.kernel.org
Subject: Re: [PATCH v3 bpf-next 2/2] bpf, docs: document BPF_MAP_TYPE_ARRAY
Date: Tue, 07 Dec 2021 15:29:19 +0000 [thread overview]
Message-ID: <fcab2596-104e-42fe-97b7-15dbfca64ea4@www.fastmail.com> (raw)
In-Reply-To: <87ilw01n6a.fsf@meer.lwn.net>
On Tue, 7 Dec 2021, at 14:53, Jonathan Corbet wrote:
> Dave Tucker <dave@dtucker.co.uk> writes:
>
>> This commit adds documentation for the BPF_MAP_TYPE_ARRAY including
>> kernel version introduced, usage and examples.
>> It also documents BPF_MAP_TYPE_PERCPU_ARRAY since this is similar.
>>
>> Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
>> ---
>> Documentation/bpf/map_array.rst | 182 ++++++++++++++++++++++++++++++++
>> 1 file changed, 182 insertions(+)
>> create mode 100644 Documentation/bpf/map_array.rst
>
> When you add a new file, you need to add it to index.rst as well to
> bring it into the docs build.
I believe I responded to this comment in an earlier version of this patch set.
The glob pattern in Documentaion/bpf/maps.rst includes this in the docs build.
>> diff --git a/Documentation/bpf/map_array.rst b/Documentation/bpf/map_array.rst
>> new file mode 100644
>> index 000000000000..7ed5f7654ee8
>> --- /dev/null
>> +++ b/Documentation/bpf/map_array.rst
>> @@ -0,0 +1,182 @@
>> +.. SPDX-License-Identifier: GPL-2.0-only
>> +.. Copyright (C) 2021 Red Hat, Inc.
>> +
>> +================================================
>> +BPF_MAP_TYPE_ARRAY and BPF_MAP_TYPE_PERCPU_ARRAY
>> +================================================
>> +
>> +.. note:: ``BPF_MAP_TYPE_ARRAY`` was introduced in Kernel version 3.19 and
>> + ``BPF_MAP_TYPE_PERCPU_ARRAY`` in version 4.6
>> +
>> +``BPF_MAP_TYPE_ARRAY`` and ``BPF_MAP_TYPE_PERCPU_ARRAY`` provide generic array
>> +storage. The key type is an unsigned 32-bit integer (4 bytes) and the map is of
>> +constant size. All array elements are pre-allocated and zero initialized when
>> +created. ``BPF_MAP_TYPE_PERCPU_ARRAY`` uses a different memory region for each
>> +CPU whereas ``BPF_MAP_TYPE_ARRAY`` uses the same memory region. The maximum
>> +size of an array, defined in max_entries, is limited to 2^32. The value stored
>> +can be of any size, however, small values will be rounded up to 8 bytes.
>> +
>> +Since Kernel 5.4, memory mapping may be enabled for ``BPF_MAP_TYPE_ARRAY`` by
>> +setting the flag ``BPF_F_MMAPABLE``. The map definition is page-aligned and
>> +starts on the first page. Sufficient page-sized and page-aligned blocks of
>> +memory are allocated to store all array values, starting on the second page,
>> +which in some cases will result in over-allocation of memory. The benefit of
>> +using this is increased performance and ease of use since userspace programs
>> +would not be required to use helper functions to access and mutate data.
>> +
>> +Usage
>> +=====
>> +
>> +Array elements can be retrieved using the ``bpf_map_lookup_elem()`` helper.
>
> It's really better not to use ``literal markup`` for function names.
> Just write function() and the right thing will happen, including
> cross-reference links to the kerneldoc for that function if it exists.
I've just tested this out, and for some reason it's not working as expected.
It's not formatted as ``literal markup`` nor is it linked to kerneldoc.
Perhaps because the issue is because these are part of tools/lib/bpf/bpf_helpers.h?
I also noticed I introduced a warning due to missing a newline after a code block :(
I'll fix that and push a v4, but will wait for confirmation on the use of `` for the helper
functions.
- Dave
> Thanks,
>
> jon
next prev parent reply other threads:[~2021-12-07 15:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-07 13:31 [PATCH v3 bpf-next 0/2] bpf, docs: Document BPF_MAP_TYPE_ARRAY Dave Tucker
2021-12-07 13:31 ` [PATCH v3 bpf-next 1/2] bpf, docs: add kernel version to map_cgroup_storage Dave Tucker
2021-12-07 13:31 ` [PATCH v3 bpf-next 2/2] bpf, docs: document BPF_MAP_TYPE_ARRAY Dave Tucker
2021-12-07 14:53 ` Jonathan Corbet
2021-12-07 15:29 ` Dave Tucker [this message]
2021-12-07 15:36 ` Jonathan Corbet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fcab2596-104e-42fe-97b7-15dbfca64ea4@www.fastmail.com \
--to=dave@dtucker.co.uk \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=corbet@lwn.net \
--cc=daniel@iogearbox.net \
--cc=john.fastabend@gmail.com \
--cc=kafai@fb.com \
--cc=kpsingh@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=songliubraving@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox