On 5/14/20 1:28 AM, Al Viro wrote:
On Thu, May 14, 2020 at 12:36:28AM +0200, Daniel Borkmann wrote:

So on say s390 TASK_SIZE_USUALLy is (-PAGE_SIZE), which means we'd alway
try the user copy first, which seems odd.

I'd really like to here from the bpf folks what the expected use case
is here, and if the typical argument is kernel or user memory.

It's used for both. Given this is enabled on pretty much all program types, my
assumption would be that usage is still more often on kernel memory than user 
one.

Then it needs an argument telling it which one to use.  Look at sparc64.
Or s390.  Or parisc.  Et sodding cetera.

The underlying model is that the kernel lives in a separate address space.
Yes, on x86 it's actually sharing the page tables with userland, but that's
not universal.  The same address can be both a valid userland one _and_
a valid kernel one.  You need to tell which one do you want.

Yes, see also 6ae08ae3dea2 ("bpf: Add probe_read_{user, kernel} and 
probe_read_{user,
kernel}_str helpers"), and my other reply wrt bpf_trace_printk() on how to 
address
this. All I'm trying to say is that both bpf_probe_read() and 
bpf_trace_printk() do
exist in this form since early [e]bpf days for ~5yrs now and while broken on 
non-x86
there are a lot of users on x86 for this in the wild, so they need to have a 
chance
to migrate over to the new facilities before they are fully removed.

Reply via email to