#
7d596a54 |
| 05-Nov-2023 |
Aaron LI <aly@aaronly.me> |
libkern: Remove karc4rand() in favor of karc4random_buf()
The latter karc4random_buf()/arc4random_buf() sees more adoptions in other BSDs as well as the userland. So only reserve the latter and rem
libkern: Remove karc4rand() in favor of karc4random_buf()
The latter karc4random_buf()/arc4random_buf() sees more adoptions in other BSDs as well as the userland. So only reserve the latter and remove the former.
Update the kernel code accordingly to use karc4random_buf() only.
show more ...
|
#
20bf5099 |
| 05-Jan-2023 |
Matthew Dillon <dillon@apollo.backplane.com> |
vtnet - Fix panic when larger MTUs are specified
* Fix a panic when using vtnet with larger MTUs.
Reported-by: daftaupe
|
Revision tags: v6.4.0, v6.4.0rc1, v6.5.0, v6.2.2, 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 |
|
#
e2292763 |
| 01-Sep-2020 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Revamp ifsq_watchdog*() a bit
* Add a flags argument to ifsq_watchdog_init() and implement two flags:
IF_WDOG_ALLTICKS Watchdog callback occurs each second prior to terminal count,
kernel - Revamp ifsq_watchdog*() a bit
* Add a flags argument to ifsq_watchdog_init() and implement two flags:
IF_WDOG_ALLTICKS Watchdog callback occurs each second prior to terminal count, and on terminal count.
IF_WDOG_LASTTICK Watchdog callback occurs one second prior to terminal count, and on terminal count.
0 Watchdog callback only occurs on terminal count.
Note that the ifnet lock is fully serialized when a watchdog callback is made, so generally speaking to avoid hicups you only want to use IF_WDOG_LASTTICK.
* This feature allows the watchdog code to flush any tx buffers (call *_txeof()) that have completed transmission. Many NICs and virtual NICs don't bother to generate interrupts to clean-up such buffers when the rings are only lightly loaded.
* Fix spurious vtnet watchdog events on lightly loaded vtnet interfaces, loosly using the same code that FreeBSD uses (just txeof from the second-prior watchdog callback and then check on terminal count).
show more ...
|
Revision tags: 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, v5.4.1, v5.4.0, v5.5.0, v5.4.0rc1, v5.2.2, v5.2.1, v5.2.0 |
|
#
34c7d7dd |
| 29-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Add polling support.
* We need to tear down the interrupts, to reliably stop them from firing, when enabling polling. So when disabling polling, we need to hope that we can get all in
if_vtnet - Add polling support.
* We need to tear down the interrupts, to reliably stop them from firing, when enabling polling. So when disabling polling, we need to hope that we can get all interrupts set up again, as before.
* When polling, handle the rx and tx virtqueues on the same cpu.
show more ...
|
#
4bf21f5c |
| 29-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Factor out the virtio_bind_intr() calls into a separate function.
* And most importantly, store the bindings in the vtnet_softc struct, so we can restore the interrupt <-> virtqueue bin
if_vtnet - Factor out the virtio_bind_intr() calls into a separate function.
* And most importantly, store the bindings in the vtnet_softc struct, so we can restore the interrupt <-> virtqueue bindings when disabling polling mode.
show more ...
|
#
5f772200 |
| 29-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Fixup serialized assertion in vtnet_is_link_up().
* We check vtnet_is_link_up() from the config interrupt, which runs with just the sc->vtnet_slz serializer.
|
Revision tags: v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1 |
|
#
5bd18522 |
| 10-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
vtnet - Split up serializers, now has separate rx and tx serializers.
* This uses the MULTI SERIALIZERS MODE in the DragonFly net framework.
* This allows the rx and tx paths of if_vtnet to run in
vtnet - Split up serializers, now has separate rx and tx serializers.
* This uses the MULTI SERIALIZERS MODE in the DragonFly net framework.
* This allows the rx and tx paths of if_vtnet to run in parallel.
show more ...
|
#
1ede3780 |
| 27-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Cleanup ifalt_subque handling a bit.
|
#
85c6f9e5 |
| 26-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Get rid of separate vtnet_{rx,tx}_intr_task functions.
* Just inline them into vtnet_rx_vq_intr and vtnet_tx_vq_intr respectively.
|
#
bce0b587 |
| 26-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Fixup previous commit.
|
#
f7e8a8e7 |
| 25-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Use ifsq_watchdog_* functions as the watchdog.
* The existing watchdog code was commented out.
|
#
36ad0f35 |
| 25-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Don't drop vtnet_slz in some of the virtqueue_notify() calls.
* There are several cases where the vtnet_slz serializer is dropped around virtqueue_notify() calls, with the hope that thi
if_vtnet - Don't drop vtnet_slz in some of the virtqueue_notify() calls.
* There are several cases where the vtnet_slz serializer is dropped around virtqueue_notify() calls, with the hope that this allows other cores to run if_vtnet code in parallel.
* In vtnet_exec_ctrl_cmd(), it shouldn't make a significant performance difference, and avoids some theoretical race possibilities.
* In the vtnet_init_rx_vq initialization code, it also is irrelevant for performance, and only complicates things.
* In the vtnet_rxeof() and vtnet_start() cases it might actually be relevant for performance, so we keep those for now. When changing the driver to use the MULTI_SERIALIZERS MODE, the serializer dropping can also be removed in those two cases.
show more ...
|
#
af62becb |
| 25-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Remove vtnet_tick_ch and vtnet_cfgchg_task from softc struct.
* Forgot to remove the softc variables in the changes c5f8e1538bcc13f7a39b805bcc5b774780 and 603be9646446bdb4292b6cd2754478
if_vtnet - Remove vtnet_tick_ch and vtnet_cfgchg_task from softc struct.
* Forgot to remove the softc variables in the changes c5f8e1538bcc13f7a39b805bcc5b774780 and 603be9646446bdb4292b6cd27544788c2c.
* Also remove a leftover taskqueue_drain() call.
show more ...
|
#
9528162f |
| 25-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Pass the vtnet serializer in ether_ifattach().
* This is likely just an intermediate step, the plan is to eventually use the MULTI SERIALIZER MODE.
|
#
603be964 |
| 25-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Remove unused vtnet_tick() code.
|
#
c5f8e153 |
| 25-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - No need to use the taskqueue to run vtnet_update_link_status().
|
#
099c4d8e |
| 22-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
virtio - Get rid of unused flags option in virtio_alloc_virtqueues().
|
#
6ea187fd |
| 24-Mar-2018 |
Imre Vadász <imre@vdsz.com> |
virtio - Explicitly teardown interrupts in driver detach methods.
* This seems to be an easy way to avoid potential races during driver detachements.
|
#
f852cf82 |
| 13-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Move virtqueue_pending() checks into the child driver.
* This makes it easier for now, to deal with virtqueue locking, when multiple virtqueues are mapped to a single interrupt vector.
|
#
b817dce2 |
| 12-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Get rid of config_change devmethod, treat like vq interrupts.
|
#
9d96478c |
| 11-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Specify handler and argument in bind_intr, instead of vq alloc.
|
#
2f2405bb |
| 07-Sep-2017 |
Imre Vadász <imre@vdsz.com> |
virtio - Refactor virtio bus API, to untangle virtuques from IRQ allocation.
* These API changes allow each virtio device driver to explicitly control the assignment of virtqueues to IRQ vectors.
virtio - Refactor virtio bus API, to untangle virtuques from IRQ allocation.
* These API changes allow each virtio device driver to explicitly control the assignment of virtqueues to IRQ vectors.
* This allows explicitly assigning IRQ vectors to cpus. And virtio device drivers also get to know, on which cpu each virtqueue interrupt is running.
show more ...
|
#
d3d27d23 |
| 22-Jan-2018 |
zrj <zrj@dragonflybsd.org> |
Revert "kernel: Disable attributes that take no effect."
This reverts commit 191430ddf0486f992e75ff14effbb5a69e1da2bd.
Needs more checking.
|
#
191430dd |
| 21-Jan-2018 |
zrj <rimvydas.jasinskas@gmail.com> |
kernel: Disable attributes that take no effect.
Both gcc50 and gcc80 ignore these attributes: warning: ignoring attribute 'aligned' because it conflicts with attribute 'packed' [-Wattributes] No dif
kernel: Disable attributes that take no effect.
Both gcc50 and gcc80 ignore these attributes: warning: ignoring attribute 'aligned' because it conflicts with attribute 'packed' [-Wattributes] No differences for final objects.
show more ...
|
#
d07f5241 |
| 17-Oct-2017 |
Imre Vadász <imre@vdsz.com> |
if_vtnet - Handle missing IFCAP_VLAN_* flags nicer. Comment IFCAP_LOR stuff.
* The if_vtnet driver used to define the IFCAP_LRO, IFCAP_VLAN_HWFILTER and IFCAP_VLAN_HWTSO flags itself, to make the
if_vtnet - Handle missing IFCAP_VLAN_* flags nicer. Comment IFCAP_LOR stuff.
* The if_vtnet driver used to define the IFCAP_LRO, IFCAP_VLAN_HWFILTER and IFCAP_VLAN_HWTSO flags itself, to make the code from FreeBSD build. Instead define IFCAP_VLAN_HWFILTER and IFCAP_VLAN_HWTSO to 0, when they are not defined already. This allows the code to build, but all checks for the flags fail. (Inspired by the vmxnet3 driver port).
* The IFCAP_LRO flag is unavailable in DragonFly, but the LRO offload seems to work somehow.
* According to the virtio specification, LRO support should be possible without rx checksum support as well.
show more ...
|