netdev
[Top] [All Lists]

Re: Concurrency within netfilter hooks

To: Paul.RUssell@xxxxxxxxxxxxxxxx (Paul Rusty Russell)
Subject: Re: Concurrency within netfilter hooks
From: kuznet@xxxxxxxxxxxxx
Date: Tue, 14 Dec 1999 17:53:10 +0300 (MSK)
Cc: netdev@xxxxxxxxxxx, davem@xxxxxxxxxx (Dave Miller)
In-reply-to: <m11xJQc-000Dx7C@xxxxxxxxxxxxxxxxxxxxxxx> from "Paul Rusty Russell" at Dec 14, 99 10:13:05 am
Sender: owner-netdev@xxxxxxxxxxx
Hello!

> For 2.4, it won't happen, except for packets from userspace being
> interrupted by bottom halves and timers, 

Processes from userspace really overlap since 2.3.15.


> but this is changing: you can look into Alexey's crystal ball at

It is not necessary to look into magic crystals. 8)

- Hooks, executed in process context, i.e. all output, post-routing
  etc. must be multithreaded.

- Hooks (and all the code), usually executed from net_bh (input, forwarding)
  also must be multithreaded, but not softnet is reason for this.
  Netfilter itself creates concurrency in all the paths, which
  used to be executed in net_bh context, when it reinjects packets.

Essentially, softnet adds __nothing__ new to these rules, except for one thing:
concurency becomes common, rather than marginal phenomenon in all the paths.
Essentially, it is the main argument, why I do not jest when proposing
to add softnet before 2.4. All the complexity and all the bugs are already
in 2.3 and softnet only clarifies code and fixes bugs. 8)8)

Alexey

<Prev in Thread] Current Thread [Next in Thread>