Please enable JavaScript.
Coggle requires JavaScript to display documents.
ublk-bpf3 - Coggle Diagram
ublk-bpf3
todo list
replace static struct_ops array with xarray
done
cleanup type cast thing
make sure only one bpf callback is defined
add ublk-bpf doc
handle ublk_bpf_attach() failure
add test case for covering forward to userspace
ideas
support bio_split way
CB returns how many bytes advanced
grab one io reference
drop the reference after whole bytes are handled
or before forwarding to userspace
forward to userspace when we can't move on & some bytes remained
update iod before forward to userspace
io won't be completed until all its bytes are handled
check ublk bpf aio implementation
ublk aio depends on io
rename it as ublk_bpf.c
check attach_and_prep code
need to check if the specified 'off' is valid
very important
how to implement?
COMPLETE flag
complete kfunc
how to know if aio reference drops to zero
could be called with attach or without attach
handled iterator
reference counter
attach & detach kfunc
how to know if the io needs to be completed
re-organize code
add single patch to deal with holding one reference when calling bpf prog
before add ublk bpf prog kfuncs
add ublk_bpf_set_io_result() kfunc
add ->end_io_cmd() callback after reference counter patch
add ->attach & ->detach callbacks
for verify purpose
add PRIVATE flag for struct_ops map
so this struct_ops won't be shared with other user
support network bpf aio
key points
io vs aio lifetime
io won't be completed until all aios are done
how to handle io split
follow bio_split()
propagate aio result to io