On Thu, Jul 19, 2018 at 2:49 PM, Hyunseok <[email protected]> wrote:
> Thanks for your reply.
>
> BPF_TABLE("extern") seems to work only if the eBPF program is loaded by the
> same userspace process which creates the map, like in this example.

No. The example uses a locally-created map to illustrate the process,
but a pinned map
works in a similar way.

The user space application:
   . using bpf_obj_get to get a FD for the pinned map.
   . create TableDesc with the FD.
   . Add TableDesc to the local_ts.
   . Create a BPF object with the local_ts.
   . ...

In the bpf program itself, declare the pinned map with "extern" type.

>
> But, what if a map is created (and pinned) by process A, and an eBPF program
> is loaded by another process B?
> Is there any way for the eBPF program to access the pinned map?

Just follow the above process, it should work. Facebook has used the
same mechanism for a while to access externally-pinned maps.

>
> bpf_obj_get cannot be used by eBPF programs as it is a userspace API.

bpf_obj_get() intends to be used in userspace, not kernel.

>
>
> On Thu, Jul 19, 2018 at 3:33 PM, Y Song <[email protected]> wrote:
>>
>> The following is an example in C++ to import an external map to BPF
>> modules.
>> https://github.com/iovisor/bcc/blob/master/examples/cpp/UseExternalMap.cc
>> You can use libbpf function `bpf_obj_get` to get a map fd in the above
>> example.
>>
>> On Wed, Jul 18, 2018 at 11:48 AM,  <[email protected]> wrote:
>> > Hi,
>> >
>> > I have an eBPF map created and pinned by a userspace process.
>> >
>> > Now I would like several eBPF programs to access this pinned eBPF map.
>> >
>> > Is there any bcc APIs that can be used?
>> >
>> > BPF_TABLE(), etc creates a new eBPF map, not loads an existing pinned
>> > map.
>> >
>> > Thanks,
>> > -hs
>> > 
>
>

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#1389): https://lists.iovisor.org/g/iovisor-dev/message/1389
Mute This Topic: https://lists.iovisor.org/mt/23673879/21656
Group Owner: [email protected]
Unsubscribe: https://lists.iovisor.org/g/iovisor-dev/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to