• J
    nfp: bpf: record offload neutral maps in the driver · 630a4d38
    Jakub Kicinski 提交于
    For asynchronous events originating from the device, like perf event
    output, we need to be able to make sure that objects being referred
    to by the FW message are valid on the host.  FW events can get queued
    and reordered.  Even if we had a FW message "barrier" we should still
    protect ourselves from bogus FW output.
    
    Add a reverse-mapping hash table and record in it all raw map pointers
    FW may refer to.  Only record neutral maps, i.e. perf event arrays.
    These are currently the only objects FW can refer to.  Use RCU protection
    on the read side, update side is under RTNL.
    
    Since program vs map destruction order is slightly painful for offload
    simply take an extra reference on all the recorded maps to make sure
    they don't disappear.
    Signed-off-by: NJakub Kicinski <jakub.kicinski@netronome.com>
    Reviewed-by: NQuentin Monnet <quentin.monnet@netronome.com>
    Signed-off-by: NDaniel Borkmann <daniel@iogearbox.net>
    630a4d38
main.c 11.7 KB