All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.