History log of /dragonfly/sys/netgraph7/netgraph/ng_base.c (Results 1 – 24 of 24)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: v6.2.1, v6.2.0, v6.3.0, v6.0.1, v6.0.0, v6.0.0rc1, v6.1.0, v5.8.3, v5.8.2, v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3, v5.6.2, v5.6.1, v5.6.0, v5.6.0rc1, v5.7.0, v5.4.3, v5.4.2
# 79dee9e9 28-Mar-2019 Sascha Wildner <saw@online.de>

kernel/netgraph7: Fix the build after the recent callout changes.


Revision tags: v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0, v5.3.0, v5.2.0rc
# e535ebfa 21-Jan-2018 zrj <rimvydas.jasinskas@gmail.com>

netgraph: Disable unused structs.

This needs recheck.

While there, document that musycc and if_mn requires netgraph and
are not compatible with netgraph7.


Revision tags: v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1
# ca34a086 28-Mar-2017 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Fix improper parens

* Fix improper parens. The code paths luckily worked correctly
even with the mistakes, for the most part.

* Fix bug in netgraph (netgraph is not used much in DragonF

kernel - Fix improper parens

* Fix improper parens. The code paths luckily worked correctly
even with the mistakes, for the most part.

* Fix bug in netgraph (netgraph is not used much in DragonFly).

Reported-by: dcb / bugs #2989, 2990, 2991, 2992

show more ...


Revision tags: v4.8.0, v4.6.2, v4.9.0, v4.8.0rc, v4.6.1, v4.6.0, v4.6.0rc2, v4.6.0rc, v4.7.0, v4.4.3, v4.4.2, v4.4.1, v4.4.0, v4.5.0, v4.4.0rc, v4.2.4, v4.3.1, v4.2.3, v4.2.1, v4.2.0, v4.0.6, v4.3.0, v4.2.0rc
# c0095626 23-Mar-2015 Sascha Wildner <saw@online.de>

kernel: Adjust netgraph7 for the mtx_init() change.


Revision tags: v4.0.5, v4.0.4, v4.0.3, v4.0.2, v4.0.1, v4.0.0, v4.0.0rc3, v4.0.0rc2, v4.0.0rc, v4.1.0, v3.8.2
# 384d4156 17-Jul-2014 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Assert the refcount is zero when freeing the item.


# cfb360d8 15-Jul-2014 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Factor out and inline item reference counting code.

* Netgraph7 assumes that nodes synchronously consume the items passed to them,
i.e. either 1) immediatly drop the item or 2) immediat

netgraph7: Factor out and inline item reference counting code.

* Netgraph7 assumes that nodes synchronously consume the items passed to them,
i.e. either 1) immediatly drop the item or 2) immediatly pass the item to the
next node.

The previous assumption is not true for nodes that have their own internal
item queues and defer the processing of the item. Such nodes can use these
routines to prevent the items from being freed too early.

* Move the apply callback check into the item reference release code.

show more ...


# a62226e4 15-Jul-2014 Sascha Wildner <saw@online.de>

kernel/netgraph7: Use kprintf etc. directly instead of defining printf.

While here, remove some commented out code from dragonfly.h

In-discussion-with: nant


# 0560a357 20-Jun-2014 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Allow name and ID hashes to grow.

* Also, nodes can be renamed now.

Obtained-from: FreeBSD (with changes)


# 7e5f7144 19-Jun-2014 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Use a shared token to protect typelist changes.

* Reduce differences with FreeBSD current.


# dce7062e 18-Jun-2014 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Use a shared token to protect topology changes.

* FreeBSD current uses a reader/writer lock to protect topology changes.
Take the same approach except we use a shared token instead.


# aba65d57 18-Jun-2014 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Remove unneeded critical sections.

* While here, fix some style nits.

* Also add a missing objcache_destroy() call.


# 2ffe124d 18-Jun-2014 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Directly use objcache_* functions instead of a translation macro.


Revision tags: v3.8.1, v3.6.3, v3.8.0, v3.8.0rc2, v3.9.0, v3.8.0rc, v3.6.2, v3.6.1, v3.6.0, v3.7.1, v3.6.0rc, v3.7.0, v3.4.3, v3.4.2
# ad9efc7b 09-May-2013 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Major rework of netgraph7 internal mechanisms.

* Promote the netgraph taskqueue to a fully fledged per-CPU lwkt.

Currently all work is queued to cpu0 but the idea is to later distribut

netgraph7: Major rework of netgraph7 internal mechanisms.

* Promote the netgraph taskqueue to a fully fledged per-CPU lwkt.

Currently all work is queued to cpu0 but the idea is to later distribute
work among the threads. I also explored the idea of using netisr threads
instead of our own dedicated threads but I think it would be a bad idea to
globaly block a netisr thread due to a netgraph token or other lock.

* Embed a struct lwkt_msg in netgraph items.

* Make ng_apply_item() accept only one argument.

* Remove the global worklist and per-node input queues and related routines.

* Always and only queue items coming from interrupt context.

Items are now always queued, except if they are already being sent from a
netgraph thread (depth > 1). The NG_QUEUE and HK_QUEUE flags become no-ops
but are kept for compatibility reasons.

* Replace the node reader/writer gate with a per-node lwkt shared
token.

* Remove some #if 0'd code

* netgraph7/ng_socket: Avoid blocking on netisr.

Previously, the ng_socket code used a sleep/wakeup mechanism to
prevent returning immediatly from the syscall. This caused
netisr_cpu 0 to block globaly until the item was processed,
which is very inneficient.

Instead, delay the lwkt_replymsg call in the normal case until the item
has been processed. This achieves the same requirement of not returning
from syscall until the item is processed but is much more elegant.

Because ngc_send() returns sooner now, we can't allocate the apply
info from the stack. Instead, dynamically allocate it from an
objcache.

* Zeroize an item before returning it to the objcache.

Objects must be in their initialized state before being returned
to the object cache. Do that for netgraph items.

The above exposed a use after free bug. An item must remain valid
until is applied. If an item has been queued with a registered apply
callback, free it only after the callback is made.

* Add a function to check and apply the callback in case the item has
one registered.

* Pass the apply callback error via lwkt_replymsg() directly, instead of
using a field in the apply_info structure.

* Make sure that ng_socket items don't have their apply callback called
twice which was causing a panic.

* Items are now only allowed to be freed by ng_apply_item(). NG_FREE_ITEM
is kept for compatibility reasons but now it simply marks the item for
deletion and asserts it was not marked already in order to detect
double frees.

Hold a reference on the item every time it is sent or forwarded. When the
recursion is finished we are finally allowed to free the item on
ng_apply_item(). Prior to freeing the item, check it for a registered
callback.

* Let recursion unwinding free the item, even in case of error.

* Go back to using a single item allocation pool, instead of separate data
and message/function pools. If there is a performance hit, we'll have to
deal with it later. Now, ng_realloc_item() simply changes the item type,
without allocating a new one from the objcache.

Dragonfly-bug: http://bugs.dragonflybsd.org/issues/2549

show more ...


# 99334a07 04-Jul-2014 Sascha Wildner <saw@online.de>

kernel/netgraph7: Build fix.


# 0fdb7d01 15-Jan-2014 Sascha Wildner <saw@online.de>

Remove a bunch of unnecessary semicolons.


# fa8cc5a2 19-Jul-2013 Sascha Wildner <saw@online.de>

kernel: Remove some more unused kmalloc types.

M_MPSSAS
M_MPTUSER
M_NETGRAPH_ITEM
M_NWFSMNT
M_PDU
M_RDRAND
M_SMBDATA
M_SMBFSMNT


Revision tags: v3.4.0, v3.4.1, v3.4.0rc, v3.5.0
# 318d84cc 16-Jan-2013 Sascha Wildner <saw@online.de>

kernel/netgraph7: Remove <sys/ktr.h>. There's no DragonFly KTR here.


# 42a79bf8 04-Jan-2013 Sascha Wildner <saw@online.de>

kernel: Remove some unused variables in netgraph/netgraph7.


Revision tags: v3.2.2, v3.2.1, v3.2.0, v3.3.0, v3.0.3
# d721fb72 26-May-2012 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: ng_base: spl* -> crit_*


# 742dff7b 21-Apr-2012 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: Dont register netisr for netgraph

Netgraph7 has been converted to taskqueue in an earlier commit.
* Do not register netisr.
* Rename ngintr() to ngtask(), no functional change.


# d980873c 31-Mar-2012 Sascha Wildner <saw@online.de>

kernel/netgraph7: Fix whitespace.


Revision tags: v3.0.2, v3.0.1, v3.1.0, v3.0.0
# a6c72860 18-Nov-2011 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: convert lockmgr locks into mutexes.


Revision tags: v2.12.0, v2.13.0, v2.10.1, v2.11.0, v2.10.0, v2.9.1, v2.8.2, v2.8.1, v2.8.0, v2.9.0
# a48a177f 13-Sep-2010 Nuno Antunes <nuno.antunes@gmail.com>

netgraph7: fix netgraph7 build

* add missing socketvar2.h header #include's.

* fix comment.


Revision tags: v2.6.3, v2.7.3, v2.6.2, v2.7.2, v2.7.1, v2.6.1, v2.7.0, v2.6.0, v2.5.1, v2.4.1, v2.5.0, v2.4.0, v2.3.2
# 0147868e 21-Jun-2009 Nuno Antunes <nuno.antunes@gmail.com>

Apply netgraph7 megapatch.

* Translate objcache calls.
* Translate uma_zone to objcache.
* Introduce libnetgraph7 (is compiled when WANT_NETGRAPH7 is defined).
* Welcome ng_socket.
* Convert netgrap

Apply netgraph7 megapatch.

* Translate objcache calls.
* Translate uma_zone to objcache.
* Introduce libnetgraph7 (is compiled when WANT_NETGRAPH7 is defined).
* Welcome ng_socket.
* Convert netgraph netisr to a real taskqueue. This fixes a deadlock
specific to dragonfly.
* Welcome ng_async.
* Welcome ng_UI.
* Welcome ng_ether.
* Fix mtx_assert translation.
* Welcome ng_hole.
* Welcome ng_cisco.
* Welcome ng_iface.
* Welcome ng_tee.
* Welcome ng_atmllc.
* Welcome ng_bpf.
* Welcome ng_vjc.

show more ...