Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-02-01 Thread Paul E. McKenney
On Thu, Jan 31, 2019 at 10:47:50AM -0800, Alexei Starovoitov wrote: > On Thu, Jan 31, 2019 at 06:01:56AM -0800, Paul E. McKenney wrote: > > On Wed, Jan 30, 2019 at 02:57:43PM -0800, Alexei Starovoitov wrote: > > > On Wed, Jan 30, 2019 at 01:05:36PM -0800, Paul E. McKenney wrote: > > > > On Wed, Jan

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-31 Thread Alexei Starovoitov
On Thu, Jan 31, 2019 at 06:01:56AM -0800, Paul E. McKenney wrote: > On Wed, Jan 30, 2019 at 02:57:43PM -0800, Alexei Starovoitov wrote: > > On Wed, Jan 30, 2019 at 01:05:36PM -0800, Paul E. McKenney wrote: > > > On Wed, Jan 30, 2019 at 11:51:14AM -0800, Alexei Starovoitov wrote: > > > > On Wed, Jan

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-31 Thread Paul E. McKenney
On Wed, Jan 30, 2019 at 02:57:43PM -0800, Alexei Starovoitov wrote: > On Wed, Jan 30, 2019 at 01:05:36PM -0800, Paul E. McKenney wrote: > > On Wed, Jan 30, 2019 at 11:51:14AM -0800, Alexei Starovoitov wrote: > > > On Wed, Jan 30, 2019 at 10:36:18AM -0800, Paul E. McKenney wrote: > > > > On Wed, Jan

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-30 Thread Alexei Starovoitov
On Wed, Jan 30, 2019 at 01:05:36PM -0800, Paul E. McKenney wrote: > On Wed, Jan 30, 2019 at 11:51:14AM -0800, Alexei Starovoitov wrote: > > On Wed, Jan 30, 2019 at 10:36:18AM -0800, Paul E. McKenney wrote: > > > On Wed, Jan 30, 2019 at 06:11:00PM +, Will Deacon wrote: > > > > Hi Alexei, > > > >

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-30 Thread Paul E. McKenney
On Wed, Jan 30, 2019 at 11:51:14AM -0800, Alexei Starovoitov wrote: > On Wed, Jan 30, 2019 at 10:36:18AM -0800, Paul E. McKenney wrote: > > On Wed, Jan 30, 2019 at 06:11:00PM +, Will Deacon wrote: > > > Hi Alexei, > > > > > > On Mon, Jan 28, 2019 at 01:56:24PM -0800, Alexei Starovoitov wrote:

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-30 Thread Alexei Starovoitov
On Wed, Jan 30, 2019 at 10:36:18AM -0800, Paul E. McKenney wrote: > On Wed, Jan 30, 2019 at 06:11:00PM +, Will Deacon wrote: > > Hi Alexei, > > > > On Mon, Jan 28, 2019 at 01:56:24PM -0800, Alexei Starovoitov wrote: > > > On Mon, Jan 28, 2019 at 10:24:08AM +0100, Peter Zijlstra wrote: > > > >

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-30 Thread Alexei Starovoitov
On Wed, Jan 30, 2019 at 06:11:00PM +, Will Deacon wrote: > Assuming that a desirable property of an eBPF program is portability between > CPU architectures, then you're effectively forcing the programmer to "assume that is fundamental misunderstanding that being thrown in this thread. bpf is n

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-30 Thread Alexei Starovoitov
On Wed, Jan 30, 2019 at 09:58:50AM +0100, Peter Zijlstra wrote: > On Tue, Jan 29, 2019 at 06:32:13PM -0800, Alexei Starovoitov wrote: > > On Tue, Jan 29, 2019 at 10:16:54AM +0100, Peter Zijlstra wrote: > > > On Mon, Jan 28, 2019 at 01:56:24PM -0800, Alexei Starovoitov wrote: > > > > On Mon, Jan 28,

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-30 Thread Paul E. McKenney
On Wed, Jan 30, 2019 at 06:11:00PM +, Will Deacon wrote: > Hi Alexei, > > On Mon, Jan 28, 2019 at 01:56:24PM -0800, Alexei Starovoitov wrote: > > On Mon, Jan 28, 2019 at 10:24:08AM +0100, Peter Zijlstra wrote: > > > On Fri, Jan 25, 2019 at 04:17:26PM -0800, Alexei Starovoitov wrote: > > > > Wh

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-30 Thread Will Deacon
Hi Alexei, On Mon, Jan 28, 2019 at 01:56:24PM -0800, Alexei Starovoitov wrote: > On Mon, Jan 28, 2019 at 10:24:08AM +0100, Peter Zijlstra wrote: > > On Fri, Jan 25, 2019 at 04:17:26PM -0800, Alexei Starovoitov wrote: > > > What I want to avoid is to define the whole execution ordering model > > >

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-30 Thread Peter Zijlstra
On Tue, Jan 29, 2019 at 06:32:13PM -0800, Alexei Starovoitov wrote: > On Tue, Jan 29, 2019 at 10:16:54AM +0100, Peter Zijlstra wrote: > > On Mon, Jan 28, 2019 at 01:56:24PM -0800, Alexei Starovoitov wrote: > > > On Mon, Jan 28, 2019 at 10:24:08AM +0100, Peter Zijlstra wrote: > > > > > > Ah, but th

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-29 Thread Alexei Starovoitov
On Tue, Jan 29, 2019 at 10:16:54AM +0100, Peter Zijlstra wrote: > On Mon, Jan 28, 2019 at 01:56:24PM -0800, Alexei Starovoitov wrote: > > On Mon, Jan 28, 2019 at 10:24:08AM +0100, Peter Zijlstra wrote: > > > > Ah, but the loop won't be in the BPF program itself. The BPF program > > > would only ha

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-29 Thread Alexei Starovoitov
On Tue, Jan 29, 2019 at 09:59:03AM +0100, Peter Zijlstra wrote: > On Mon, Jan 28, 2019 at 01:37:12PM -0800, Alexei Starovoitov wrote: > > On Mon, Jan 28, 2019 at 09:43:10AM +0100, Peter Zijlstra wrote: > > > > Isn't that still broken? AFAIU networking progs can happen in task > > > context (TX) an

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-29 Thread Peter Zijlstra
On Mon, Jan 28, 2019 at 01:56:24PM -0800, Alexei Starovoitov wrote: > On Mon, Jan 28, 2019 at 10:24:08AM +0100, Peter Zijlstra wrote: > > Ah, but the loop won't be in the BPF program itself. The BPF program > > would only have had the BPF_SPIN_LOCK instruction, the JIT them emits > > code similar

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-29 Thread Peter Zijlstra
On Mon, Jan 28, 2019 at 01:37:12PM -0800, Alexei Starovoitov wrote: > On Mon, Jan 28, 2019 at 09:43:10AM +0100, Peter Zijlstra wrote: > > Isn't that still broken? AFAIU networking progs can happen in task > > context (TX) and SoftIRQ context (RX), which can nest. > > Sure. sendmsg side of network

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-28 Thread Alexei Starovoitov
On Mon, Jan 28, 2019 at 10:24:08AM +0100, Peter Zijlstra wrote: > On Fri, Jan 25, 2019 at 04:17:26PM -0800, Alexei Starovoitov wrote: > > On Fri, Jan 25, 2019 at 11:23:12AM +0100, Peter Zijlstra wrote: > > > On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > > > > On Thu, Jan 24,

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-28 Thread Alexei Starovoitov
On Mon, Jan 28, 2019 at 09:43:10AM +0100, Peter Zijlstra wrote: > On Fri, Jan 25, 2019 at 03:42:43PM -0800, Alexei Starovoitov wrote: > > On Fri, Jan 25, 2019 at 10:10:57AM +0100, Peter Zijlstra wrote: > > > > What about the progs that run from SoftIRQ ? Since that bpf_prog_active > > > thing isn'

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-28 Thread Alexei Starovoitov
On Mon, Jan 28, 2019 at 09:35:08AM +0100, Peter Zijlstra wrote: > On Mon, Jan 28, 2019 at 09:31:23AM +0100, Peter Zijlstra wrote: > > On Fri, Jan 25, 2019 at 03:42:43PM -0800, Alexei Starovoitov wrote: > > > On Fri, Jan 25, 2019 at 10:10:57AM +0100, Peter Zijlstra wrote: > > > > On Thu, Jan 24, 201

Re: bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-28 Thread Peter Zijlstra
On Fri, Jan 25, 2019 at 04:17:26PM -0800, Alexei Starovoitov wrote: > On Fri, Jan 25, 2019 at 11:23:12AM +0100, Peter Zijlstra wrote: > > On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > > > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > > > > And this w

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-28 Thread Peter Zijlstra
On Fri, Jan 25, 2019 at 03:42:43PM -0800, Alexei Starovoitov wrote: > On Fri, Jan 25, 2019 at 10:10:57AM +0100, Peter Zijlstra wrote: > > What about the progs that run from SoftIRQ ? Since that bpf_prog_active > > thing isn't inside BPF_PROG_RUN() what is to stop say: > > > >reuseport_select_

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-28 Thread Peter Zijlstra
On Mon, Jan 28, 2019 at 09:31:23AM +0100, Peter Zijlstra wrote: > On Fri, Jan 25, 2019 at 03:42:43PM -0800, Alexei Starovoitov wrote: > > On Fri, Jan 25, 2019 at 10:10:57AM +0100, Peter Zijlstra wrote: > > > On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > > > > > nmi checks

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-28 Thread Peter Zijlstra
On Fri, Jan 25, 2019 at 03:42:43PM -0800, Alexei Starovoitov wrote: > On Fri, Jan 25, 2019 at 10:10:57AM +0100, Peter Zijlstra wrote: > > On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > > > nmi checks for bpf_prog_active==0. See bpf_overflow_handler. > > yuck yuck yuck.. Th

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-28 Thread Peter Zijlstra
On Fri, Jan 25, 2019 at 03:42:43PM -0800, Alexei Starovoitov wrote: > On Fri, Jan 25, 2019 at 10:10:57AM +0100, Peter Zijlstra wrote: > > Do we want something like (the completely untested) below to avoid > > having to manually audit this over and over? > > > > --- > > include/linux/filter.h |

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Jann Horn
On Sat, Jan 26, 2019 at 1:43 AM Jann Horn wrote: > On Sat, Jan 26, 2019 at 12:44 AM Alexei Starovoitov > wrote: > > > > On Fri, Jan 25, 2019 at 02:51:12PM -0800, Paul E. McKenney wrote: > > > > > > > > > > So no more than (say) 100 milliseconds? > > > > > > > > Depends on RLIMIT_MEMLOCK and on ho

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Jann Horn
On Sat, Jan 26, 2019 at 12:44 AM Alexei Starovoitov wrote: > > On Fri, Jan 25, 2019 at 02:51:12PM -0800, Paul E. McKenney wrote: > > > > > > > > So no more than (say) 100 milliseconds? > > > > > > Depends on RLIMIT_MEMLOCK and on how hard userspace is trying to make > > > things slow, I guess - if

bpf memory model. Was: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Alexei Starovoitov
On Fri, Jan 25, 2019 at 11:23:12AM +0100, Peter Zijlstra wrote: > On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > > And this would again be the moment where I go pester you about the BPF > > > memory mode

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Alexei Starovoitov
On Fri, Jan 25, 2019 at 02:51:12PM -0800, Paul E. McKenney wrote: > > > > > > So no more than (say) 100 milliseconds? > > > > Depends on RLIMIT_MEMLOCK and on how hard userspace is trying to make > > things slow, I guess - if userspace manages to create a hashtable, > > with a few dozen megabytes

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Alexei Starovoitov
On Fri, Jan 25, 2019 at 10:10:57AM +0100, Peter Zijlstra wrote: > On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > > > > Thanks for having kernel/locking people on Cc... > > > > > > On Wed, Jan 23, 2019 a

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Paul E. McKenney
On Fri, Jan 25, 2019 at 05:18:12PM +0100, Jann Horn wrote: > On Fri, Jan 25, 2019 at 5:12 AM Paul E. McKenney > wrote: > > On Fri, Jan 25, 2019 at 02:46:55AM +0100, Jann Horn wrote: > > > On Fri, Jan 25, 2019 at 2:22 AM Paul E. McKenney > > > wrote: > > > > On Thu, Jan 24, 2019 at 04:05:16PM -0

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Jann Horn
On Fri, Jan 25, 2019 at 5:12 AM Paul E. McKenney wrote: > On Fri, Jan 25, 2019 at 02:46:55AM +0100, Jann Horn wrote: > > On Fri, Jan 25, 2019 at 2:22 AM Paul E. McKenney > > wrote: > > > On Thu, Jan 24, 2019 at 04:05:16PM -0800, Alexei Starovoitov wrote: > > > > On Thu, Jan 24, 2019 at 03:42:32P

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Paul E. McKenney
On Fri, Jan 25, 2019 at 04:47:20AM +, Alexei Starovoitov wrote: > On 1/24/19 8:31 PM, Paul E. McKenney wrote: > > On Fri, Jan 25, 2019 at 04:27:02AM +, Alexei Starovoitov wrote: > >> On 1/24/19 6:38 PM, Alexei Starovoitov wrote: > For programs created with CAP_SYS_ADMIN, > things

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Peter Zijlstra
On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > And this would again be the moment where I go pester you about the BPF > > memory model :-) > > hehe :) > How do you propose to define it in a way that it appl

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Peter Zijlstra
On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > So clearly this map stuff is shared between bpf proglets, otherwise > > there would not be a need for locking. But what happens if one is from > > task context

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Peter Zijlstra
On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > - on architectures that don't support queued_spin_lock trivial lock is > > > used. > > > Note that arch_spin_lock cannot be used, since not all archs agree

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Peter Zijlstra
On Thu, Jan 24, 2019 at 03:58:59PM -0800, Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > > Thanks for having kernel/locking people on Cc... > > > > On Wed, Jan 23, 2019 at 08:13:55PM -0800, Alexei Starovoitov wrote: > > > > > Implementation deta

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-25 Thread Peter Zijlstra
On Thu, Jan 24, 2019 at 06:57:00PM -0800, Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 06:44:20PM -0800, Eric Dumazet wrote: > > Let see if we understood this well. > > > > 1. create perf event PERF_TYPE_HARDWARE:PERF_COUNT_HW_CPU_CYCLES > > 2. attach bpf probram to this event > > 3. since

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Alexei Starovoitov
On 1/24/19 8:31 PM, Paul E. McKenney wrote: > On Fri, Jan 25, 2019 at 04:27:02AM +, Alexei Starovoitov wrote: >> On 1/24/19 6:38 PM, Alexei Starovoitov wrote: For programs created with CAP_SYS_ADMIN, things get more tricky because you can create your own functions and call them r

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Paul E. McKenney
On Fri, Jan 25, 2019 at 04:27:02AM +, Alexei Starovoitov wrote: > On 1/24/19 6:38 PM, Alexei Starovoitov wrote: > >> For programs created with CAP_SYS_ADMIN, > >> things get more tricky because you can create your own functions and > >> call them repeatedly; I'm not sure whether the pessimal ru

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Alexei Starovoitov
On 1/24/19 6:38 PM, Alexei Starovoitov wrote: >> For programs created with CAP_SYS_ADMIN, >> things get more tricky because you can create your own functions and >> call them repeatedly; I'm not sure whether the pessimal runtime there >> becomes exponential, or whether there is some check that catc

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Paul E. McKenney
On Fri, Jan 25, 2019 at 02:46:55AM +0100, Jann Horn wrote: > On Fri, Jan 25, 2019 at 2:22 AM Paul E. McKenney > wrote: > > On Thu, Jan 24, 2019 at 04:05:16PM -0800, Alexei Starovoitov wrote: > > > On Thu, Jan 24, 2019 at 03:42:32PM -0800, Paul E. McKenney wrote: > > > > On Thu, Jan 24, 2019 at 07

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Alexei Starovoitov
On Thu, Jan 24, 2019 at 06:44:20PM -0800, Eric Dumazet wrote: > > > On 01/24/2019 06:34 PM, Alexei Starovoitov wrote: > > On Thu, Jan 24, 2019 at 06:29:55PM -0800, Eric Dumazet wrote: > >> > >> > >> On 01/24/2019 03:58 PM, Alexei Starovoitov wrote: > >>> On Thu, Jan 24, 2019 at 07:01:09PM +0100,

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Alexei Starovoitov
On Fri, Jan 25, 2019 at 01:18:04AM +0100, Jann Horn wrote: > On Fri, Jan 25, 2019 at 12:59 AM Alexei Starovoitov > wrote: > > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > Thanks for having kernel/locking people on Cc... > > > > > > On Wed, Jan 23, 2019 at 08:13:55PM -0800,

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Eric Dumazet
On 01/24/2019 06:34 PM, Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 06:29:55PM -0800, Eric Dumazet wrote: >> >> >> On 01/24/2019 03:58 PM, Alexei Starovoitov wrote: >>> On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: >> and from NMI ... >>> >>> progs are not preempta

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Alexei Starovoitov
On Fri, Jan 25, 2019 at 02:46:55AM +0100, Jann Horn wrote: > On Fri, Jan 25, 2019 at 2:22 AM Paul E. McKenney > wrote: > > On Thu, Jan 24, 2019 at 04:05:16PM -0800, Alexei Starovoitov wrote: > > > On Thu, Jan 24, 2019 at 03:42:32PM -0800, Paul E. McKenney wrote: > > > > On Thu, Jan 24, 2019 at 07

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Alexei Starovoitov
On Thu, Jan 24, 2019 at 06:29:55PM -0800, Eric Dumazet wrote: > > > On 01/24/2019 03:58 PM, Alexei Starovoitov wrote: > > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > >> and from NMI ... > > > > progs are not preemptable and map syscall accessors have bpf_prog_active > >

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Eric Dumazet
On 01/24/2019 03:58 PM, Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: >> and from NMI ... > > progs are not preemptable and map syscall accessors have bpf_prog_active > counters. > So nmi/kprobe progs will not be running when syscall is running. >

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Jann Horn
On Fri, Jan 25, 2019 at 2:22 AM Paul E. McKenney wrote: > On Thu, Jan 24, 2019 at 04:05:16PM -0800, Alexei Starovoitov wrote: > > On Thu, Jan 24, 2019 at 03:42:32PM -0800, Paul E. McKenney wrote: > > > On Thu, Jan 24, 2019 at 07:56:52PM +0100, Peter Zijlstra wrote: > > > > On Thu, Jan 24, 2019 at

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Paul E. McKenney
On Thu, Jan 24, 2019 at 04:05:16PM -0800, Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 03:42:32PM -0800, Paul E. McKenney wrote: > > On Thu, Jan 24, 2019 at 07:56:52PM +0100, Peter Zijlstra wrote: > > > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > > > > > > Thanks f

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Jann Horn
On Fri, Jan 25, 2019 at 12:59 AM Alexei Starovoitov wrote: > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > Thanks for having kernel/locking people on Cc... > > > > On Wed, Jan 23, 2019 at 08:13:55PM -0800, Alexei Starovoitov wrote: > > > > > Implementation details: > > > - on

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Alexei Starovoitov
On Thu, Jan 24, 2019 at 03:42:32PM -0800, Paul E. McKenney wrote: > On Thu, Jan 24, 2019 at 07:56:52PM +0100, Peter Zijlstra wrote: > > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > > > > Thanks for having kernel/locking people on Cc... > > > > > > On Wed, Jan 23, 2019 at

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Alexei Starovoitov
On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > Thanks for having kernel/locking people on Cc... > > On Wed, Jan 23, 2019 at 08:13:55PM -0800, Alexei Starovoitov wrote: > > > Implementation details: > > - on !SMP bpf_spin_lock() becomes nop > > Because no BPF program is pree

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Paul E. McKenney
On Thu, Jan 24, 2019 at 07:56:52PM +0100, Peter Zijlstra wrote: > On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > > > Thanks for having kernel/locking people on Cc... > > > > On Wed, Jan 23, 2019 at 08:13:55PM -0800, Alexei Starovoitov wrote: > > > > > Implementation details:

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Peter Zijlstra
On Thu, Jan 24, 2019 at 07:01:09PM +0100, Peter Zijlstra wrote: > > Thanks for having kernel/locking people on Cc... > > On Wed, Jan 23, 2019 at 08:13:55PM -0800, Alexei Starovoitov wrote: > > > Implementation details: > > - on !SMP bpf_spin_lock() becomes nop > > Because no BPF program is pree

Re: [PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-24 Thread Peter Zijlstra
Thanks for having kernel/locking people on Cc... On Wed, Jan 23, 2019 at 08:13:55PM -0800, Alexei Starovoitov wrote: > Implementation details: > - on !SMP bpf_spin_lock() becomes nop Because no BPF program is preemptible? I don't see any assertions or even a comment that says this code is non-

[PATCH v4 bpf-next 1/9] bpf: introduce bpf_spin_lock

2019-01-23 Thread Alexei Starovoitov
Introduce 'struct bpf_spin_lock' and bpf_spin_lock/unlock() helpers to let bpf program serialize access to other variables. Example: struct hash_elem { int cnt; struct bpf_spin_lock lock; }; struct hash_elem * val = bpf_map_lookup_elem(&hash_map, &key); if (val) { bpf_spin_lock(&val->l