#
fcf6efef |
| 02-Mar-2019 |
Sascha Wildner <saw@online.de> |
kernel: Remove numerous #include <sys/thread2.h>.
Most of them were added when we converted spl*() calls to crit_enter()/crit_exit(), almost 14 years ago. We can now remove a good chunk of them agai
kernel: Remove numerous #include <sys/thread2.h>.
Most of them were added when we converted spl*() calls to crit_enter()/crit_exit(), almost 14 years ago. We can now remove a good chunk of them again for where crit_*() are no longer used.
I had to adjust some files that were relying on thread2.h or headers that it includes coming in via other headers that it was removed from.
show more ...
|
#
ac8ea0ad |
| 12-Aug-2015 |
Sascha Wildner <saw@online.de> |
i386 removal, part 34/x: Remove some i386 traces from the kernel.
|
#
b5523eac |
| 19-Feb-2015 |
Sascha Wildner <saw@online.de> |
kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.
The main reason is that our having to use the MB_WAIT and MB_DONTWAIT flags was a recurring issue when porting drivers from FreeBSD
kernel: Move us to using M_NOWAIT and M_WAITOK for mbuf functions.
The main reason is that our having to use the MB_WAIT and MB_DONTWAIT flags was a recurring issue when porting drivers from FreeBSD because it tended to get forgotten and the code would compile anyway with the wrong constants. And since MB_WAIT and MB_DONTWAIT ended up as ocflags for an objcache_get() or objcache_reclaimlist call (which use M_WAITOK and M_NOWAIT), it was just one big converting back and forth with some sanitization in between.
This commit allows M_* again for the mbuf functions and keeps the sanitizing as it was before: when M_WAITOK is among the passed flags, objcache functions will be called with M_WAITOK and when it is absent, they will be called with M_NOWAIT. All other flags are scrubbed by the MB_OCFLAG() macro which does the same as the former MBTOM().
Approved-by: dillon
show more ...
|
#
26595b18 |
| 28-Nov-2014 |
Sascha Wildner <saw@online.de> |
kernel: Use the new auto-created sysctl ctx/tree in various drivers.
Everywhere where we formerly rolled a hw.fooX.* per-device ctx/tree ourselves.
This commit switches it to dev.foo.X.*
|
#
73029d08 |
| 29-Jun-2014 |
Franco Fichtner <franco@lastsummer.de> |
kernel: make pktinfo and cpuid native to ip_input()
In order to remove ether_input_pkt(), switch the prototype of if_input() and adjust all callers. While there, consolidate the style of the invoke
kernel: make pktinfo and cpuid native to ip_input()
In order to remove ether_input_pkt(), switch the prototype of if_input() and adjust all callers. While there, consolidate the style of the invoke.
Suggested and reviewed by: sephe
show more ...
|
#
ac9843a1 |
| 04-Jun-2013 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
ifq: Remove the unused parameter 'mpolled' from ifq dequeue interface
The ifq_poll() -> ifq_dequeue() model is not MPSAFE, and mpolled has not been used, i.e. set to NULL, for years; time to let it
ifq: Remove the unused parameter 'mpolled' from ifq dequeue interface
The ifq_poll() -> ifq_dequeue() model is not MPSAFE, and mpolled has not been used, i.e. set to NULL, for years; time to let it go.
show more ...
|
#
4c77af2d |
| 11-Mar-2013 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
netif: Setup TX ring CPUID before hooking up interrupt vectors
|
#
d3c9c58e |
| 20-Feb-2013 |
Sascha Wildner <saw@online.de> |
kernel: Use DEVMETHOD_END in the drivers.
|
#
d40991ef |
| 13-Feb-2013 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
if: Per-cpu ifnet/ifaddr statistics, step 1/3
Wrap ifnet/ifaddr stats updating, setting and extraction into macros; ease upcoming changes.
|
#
f0a26983 |
| 11-Jan-2013 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
if: Multiple TX queue support step 1 of many; introduce ifaltq subqueue
Put the plain queue information, e.g. queue header and tail, serializer, packet staging scoreboard and ifnet.if_start schedule
if: Multiple TX queue support step 1 of many; introduce ifaltq subqueue
Put the plain queue information, e.g. queue header and tail, serializer, packet staging scoreboard and ifnet.if_start schedule netmsg etc. into its own structure (subqueue). ifaltq structure could have multiple of subqueues based on the count that drivers can specify.
Subqueue's enqueue, dequeue, purging and states updating are protected by the subqueue's serializer, so for hardwares supporting multiple TX queues, contention on queuing operation could be greatly reduced.
The subqueue is passed to if_start to let the driver know which hardware TX queue to work on. Only the related driver's TX queue serializer will be held, so for hardwares supporting multiple TX queues, contention on driver's TX queue serializer could be greatly reduced.
Bunch of ifsq_ prefixed functions are added, which is used to perform various operations on subqueues. Commonly used ifq_ prefixed functions are still kept mainly for the drivers which do not support multiple TX queues (well, these functions also ease the netif/ convertion in this step :).
All of the pseudo network devices under sys/net are converted to use the new subqueue operation. netproto/802_11 is converted too. igb(4) is converted to use the new subqueue operation, the rest of the network drivers are only changed for the if_start interface modification.
For ALTQs which have packet scheduler enabled, only the first subqueue is used (*).
(*) Whether we should utilize multiple TX queues if ALTQ's packet scheduler is enabled is quite questionable. Mainly because hardware's multiple TX queue packet dequeue mechanism could have negative impact on ALTQ's packet scheduler's decision.
show more ...
|
#
dfd3b18b |
| 05-Jan-2013 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
if: Move if_cpuid into ifaltq; prepare multiple TX queues support
if_cpuid and if_npoll_cpuid are merged and moved into ifaltq as altq_cpuid, which indicates the owner CPU of the tx queue. Since we
if: Move if_cpuid into ifaltq; prepare multiple TX queues support
if_cpuid and if_npoll_cpuid are merged and moved into ifaltq as altq_cpuid, which indicates the owner CPU of the tx queue. Since we already have code in if_start_dispatch() to catching tx queue owner CPU changes, this merging is quite safe.
show more ...
|
#
9ed293e0 |
| 28-Dec-2012 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
if: Move IFF_OACTIVE bit into ifaltq; prepare multiple TX queues support
ifaltq.altq_hw_oactive is now used to record that NIC's TX queue is full. IFF_OACTIVE is removed from kernel. User space IFF
if: Move IFF_OACTIVE bit into ifaltq; prepare multiple TX queues support
ifaltq.altq_hw_oactive is now used to record that NIC's TX queue is full. IFF_OACTIVE is removed from kernel. User space IFF_OACTIVE is kept for compability.
ifaltq.altq_hw_oactive should not be accessed directly. Following set of functions are provided and should be used: ifq_is_oactive(ifnet.if_snd) - Whether NIC's TX queue is full or not ifq_set_oactive(ifnet.if_snd) - NIC's TX queue is full ifq_clr_oactive(ifnet.if_snd) - NIC's TX queue is no longer full
show more ...
|
#
ee332442 |
| 06-Nov-2012 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
fxp: Switch device_polling to ifpoll
|
#
eda7db08 |
| 13-Apr-2012 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
ether: Don't manually packing up input mbufs
Since we use spin ports for netisrs now, we no longer need to explicitly avoid IPI storm on input path.
|
#
28e81a28 |
| 29-Dec-2011 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
intr: Remove no longer correct ithread_cpuid; use rman_get_cpuid instead
|
#
aa2b9d05 |
| 24-Jun-2011 |
Sascha Wildner <saw@online.de> |
kernel: Use NULL for DRIVER_MODULE()'s evh & arg (which are pointers).
This is just cosmetics for easier reading.
|
#
62b5ec1d |
| 02-Jan-2011 |
Sascha Wildner <saw@online.de> |
kernel: Remove support for the Xerox Network Systems (NS) protocol.
It was previously removed from LINT with commit 67bf99c4 and its removal was also announced here:
http://leaf.dragonflybsd.org/ma
kernel: Remove support for the Xerox Network Systems (NS) protocol.
It was previously removed from LINT with commit 67bf99c4 and its removal was also announced here:
http://leaf.dragonflybsd.org/mailarchive/kernel/2010-09/msg00025.html
To be on the safe side, bump _DragonFly_version due to /usr/include/netns going away. In the unlikely event of something breaking in pkgsrc we'll have a version to patch against, if needed.
show more ...
|
#
b8a16790 |
| 17-Sep-2010 |
Matthew Dillon <dillon@apollo.backplane.com> |
network - Remove crit_exit/crit_enter wrappers in pf.c
* Note I'm talking about exit/enter wrappers, not enter/exit wrappers. I believe the enter/exit wrappers can be removed too but for now we
network - Remove crit_exit/crit_enter wrappers in pf.c
* Note I'm talking about exit/enter wrappers, not enter/exit wrappers. I believe the enter/exit wrappers can be removed too but for now we have to remove the exit/enter wrappers which assumed a critical section would be held on entry.
This is no longer the case. Since so much of the network stack is now threaded callers into PF are not necessarily holding a critical section to exit out of.
Reported-by: lentferj, Rumko
show more ...
|
#
5bd08532 |
| 17-Sep-2010 |
Matthew Dillon <dillon@apollo.backplane.com> |
network - Zero out m_len / m_pkthdr.len in m_get*() and friends
* Newly allocated mbufs now set m_len and (if a packet header) m_pkthdr.len to 0 instead of leaving them uninitialized, allowing u
network - Zero out m_len / m_pkthdr.len in m_get*() and friends
* Newly allocated mbufs now set m_len and (if a packet header) m_pkthdr.len to 0 instead of leaving them uninitialized, allowing us to assert that the mbuf does not have an overrun later when it is freed.
Reported-by: Jan Lentfer <Jan.Lentfer@web.de>
show more ...
|
#
441d34b2 |
| 12-Jun-2010 |
Sascha Wildner <saw@online.de> |
network code: Convert if_multiaddrs from LIST to TAILQ.
It can then be traversed backwards in the three drivers which want to do that.
Taken-from: FreeBSD
|
#
2eb0d069 |
| 21-Mar-2009 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
ether_input/rss: Pass packet info to ether_input_chain.
- Pass packet info to ether_input_chain(), if netisr_find_pktinfo_port() could locate the msgport, then short circuit the rest of the ether_
ether_input/rss: Pass packet info to ether_input_chain.
- Pass packet info to ether_input_chain(), if netisr_find_pktinfo_port() could locate the msgport, then short circuit the rest of the ether_input code and dispatch the ethernet packet directly. - Revoke the pi_hash field in pktinfo and extend the pktinfo_portfn_t to accpet an mbuf parameter, so that pktinfo_portfn_t could change the mbuf hash value. e.g. pktinfo_portfn_cpu0() will always set m_pkthdr.hash to 0. - Adjust ether_input_chain() callers accordingly.
show more ...
|
#
a75a1559 |
| 17-Sep-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Always enable ETHER_INPUT_CHAIN support
|
#
50098e2e |
| 17-Sep-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Remove the '2' suffix from ether_input_chain and vlan_input; their counterparts have gone for a long time.
|
#
95893fe4 |
| 17-Aug-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Nuke INTR_NETSAFE
|
#
7efc589a |
| 03-Aug-2008 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
Promote sysctl_int_range()
|