History log of /dflybsd-src/sys/dev/netif/plip/if_plip.c (Results 1 – 25 of 29)
Revision Date Author Comments
# afd2da4d 03-Aug-2016 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Remove PG_ZERO and zeroidle (page-zeroing) entirely

* Remove the PG_ZERO flag and remove all page-zeroing optimizations,
entirely. Aftering doing a substantial amount of testing, these

kernel - Remove PG_ZERO and zeroidle (page-zeroing) entirely

* Remove the PG_ZERO flag and remove all page-zeroing optimizations,
entirely. Aftering doing a substantial amount of testing, these
optimizations, which existed all the way back to CSRG BSD, no longer
provide any benefit on a modern system.

- Pre-zeroing a page only takes 80ns on a modern cpu. vm_fault overhead
in general is ~at least 1 microscond.

- Pre-zeroing a page leads to a cold-cache case on-use, forcing the fault
source (e.g. a userland program) to actually get the data from main
memory in its likely immediate use of the faulted page, reducing
performance.

- Zeroing the page at fault-time is actually more optimal because it does
not require any reading of dynamic ram and leaves the cache hot.

- Multiple synth and build tests show that active idle-time zeroing of
pages actually reduces performance somewhat and incidental allocations
of already-zerod pages (from page-table tear-downs) do not affect
performance in any meaningful way.

* Remove bcopyi() and obbcopy() -> collapse into bcopy(). These other
versions existed because bcopy() used to be specially-optimized and
could not be used in all situations. That is no longer true.

* Remove bcopy function pointer argument to m_devget(). It is no longer
used. This function existed to help support ancient drivers which might
have needed a special memory copy to read and write mapped data. It has
long been supplanted by BUSDMA.

show more ...


# 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.


# fda7d388 29-Nov-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

bpf: Use bpf global token instead mplock to protect bpf stuffs

Submitted-by: tuxillo@ w/ modification


# 848a176c 01-May-2012 Sascha Wildner <saw@online.de>

kernel/plip: A little indent fix.


# 0e6f0e28 19-Jan-2012 Sepherosa Ziehau <sephe@dragonflybsd.org>

bus: Pass intsrerupt description to setup_intr bus method

If no interrupt description is supplied, then the device's name
will be used.

Add bus_setup_intr_descr(), which allow device drivers to pas

bus: Pass intsrerupt description to setup_intr bus method

If no interrupt description is supplied, then the device's name
will be used.

Add bus_setup_intr_descr(), which allow device drivers to pass
interrupt description. Reimplement bus_setup_intr() using
bus_setup_intr_descr().

show more ...


# 4090d6ff 03-Jan-2012 Sascha Wildner <saw@online.de>

kernel: Use NULL for pointers.


# abf21138 11-Oct-2011 Sepherosa Ziehau <sephe@dragonflybsd.org>

legacy devices: Utilize bus_alloc_legacy_irq_resource()


# 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.


# 978400d3 06-Jan-2008 Sascha Wildner <swildner@dragonflybsd.org>

Remove bogus checks after kmalloc(M_WAITOK) which never returns NULL.

Reviewed-by: hasso


# e3869ec7 22-Dec-2006 Sascha Wildner <swildner@dragonflybsd.org>

Rename printf -> kprintf in sys/ and add some defines where necessary
(files which are used in userland, too).


# 1f7ab7c9 25-Oct-2006 Matthew Dillon <dillon@dragonflybsd.org>

Do a major clean-up of the BUSDMA architecture. A large number of
essentially machine-independant drivers use the structures and definitions
in machine-dependant directories that are really machine-

Do a major clean-up of the BUSDMA architecture. A large number of
essentially machine-independant drivers use the structures and definitions
in machine-dependant directories that are really machine-independant in
nature.

Split <machine/bus_dma.h> into machine-depdendant and machine-independant parts
and make the primary access run through <sys/bus_dma.h>.

Remove <machine/bus.h>, <machine/bus_memio.h> and <machine/bus_pio.h>. The
optimizations related to bus_memio.h and bus_pio.h made a huge mess,
introduced machine-specific knowledge into essentially machine-independant
drivers, and required specific #include file orderings to do their job.
They may be reintroduced in some other form later on.

Move <machine/resource.h> to <sys/bus_resource.h>. The contents of the file
is machine-independant or can be made a superset across many platforms.

Make <sys/bus.h> include <sys/bus_dma.h> and <sys/bus_resource.h> and
include <sys/bus.h> where necessary. Remove all #include's of
<machine/resource.h> and <machine/bus.h>. That is, make the BUSDMA
infrastructure integral to I/O-mapped and memory-mapped accesses to devices
and remove a large chunk of machine-specific dependancies from drivers.
bus_if.h and device_if.h are now required to be present when using <sys/bus.h>.

show more ...


# efda3bd0 05-Sep-2006 Matthew Dillon <dillon@dragonflybsd.org>

Rename malloc->kmalloc, free->kfree, and realloc->krealloc. Pass 1


# 78195a76 28-Nov-2005 Matthew Dillon <dillon@dragonflybsd.org>

Make all network interrupt service routines MPSAFE part 1/3.

Replace the critical section that was previously used to serialize access
with the LWKT serializer. Integrate the serializer into the IF

Make all network interrupt service routines MPSAFE part 1/3.

Replace the critical section that was previously used to serialize access
with the LWKT serializer. Integrate the serializer into the IFNET structure.
Note that kern.intr_mpsafe must be set to 1 for network interrupts to actually
run MPSAFE. Also note that any interrupts shared with othre non-MP drivers
will cause all drivers on that interrupt to run with the Big Giant Lock.

Network interrupt - Each network driver then simply passes that serializer
to bus_setup_intr() so only a single serializer is required to process the
entire interrupt path. LWKT serialization support is already 100% integrated
into the interrupt subsystem so it will already be held as of when the
registered interrupt procedure is called.

Ioctl and if_* functions - All callers of if_* functions (such as if_start,
if_ioctl, etc) now obtain the IFNET serializer before making the call. Thus
all of these entry points into the driver will now be serialized.

if_input - All code that calls if_input now ensures that the serializer
is held. It will either already be held (when called from a driver), or
the serializer will be wrapped around the call. When packets are forwarded
or bridged between interfaces, the target interface serializer will be
dropped temporarily to avoid a deadlock.

Device Driver access - dev_* entry points into certain pseudo-network
devices now obtain and release the serializer. This had to be done on
a device-by-device basis (but there are only a few such devices).

Thanks to several people for helping test the patch, in particular
Sepherosa Ziehau.

show more ...


# 39b5d600 28-Oct-2005 Matthew Dillon <dillon@dragonflybsd.org>

Cleanup some of the newbus infrastructure.

* Change the device_identify API to return success/failure, like
most of the other newbus methods. This may be used for conflict
resolution in the fut

Cleanup some of the newbus infrastructure.

* Change the device_identify API to return success/failure, like
most of the other newbus methods. This may be used for conflict
resolution in the future.

* Clearly document the device_identify method and formalize its use
by adding discrimination between initial bus probes and bus rescans.
Do not re-execute static identification code that has already been run
every time a new driver is added at run-time.

* Clearly document the do-ISA-last hack.

* Provide generic routines for the most common device_identify operations
(psueo or synthesized devices that operate under other devices, such as
lpt operating under ppbus, which are not 'scanned' by the parent bus).

* Remove the hacks that install and initialize the nexus device. Instead,
use the existing DRIVER_MODULE infrastructure to install nexus under
root_bus.

* Document the boot-time initialization path so it doesn't take the next
guy 8 hours to figure out what code is actually being run when.

show more ...


# ee61f228 12-Oct-2005 Matthew Dillon <dillon@dragonflybsd.org>

Remove the INTR_TYPE_* flags. The interrupt type is no longer used to
figure out which spl*() set an interrupt belongs to, because, well, spl's
no longer exist.


# ea0c0e03 29-Aug-2005 Sepherosa Ziehau <sephe@dragonflybsd.org>

Remove unnecessary bzero(softc).
With following exceptions:
- ed(4) if_ed_cbus.c
- snc(4)
They are PC-98 only.


# a6d5e0d8 13-Jun-2005 Joerg Sonnenberger <joerg@dragonflybsd.org>

Convert from splhigh to critical sections.


# e9cb6d99 24-May-2005 Matthew Dillon <dillon@dragonflybsd.org>

Get rid of bus_{disable,enable}_intr(), it wasn't generic enough for
our needs.

Implement some generic atomic.h functions to aid in the implementation of
a low level mutex.

Implement a generic low

Get rid of bus_{disable,enable}_intr(), it wasn't generic enough for
our needs.

Implement some generic atomic.h functions to aid in the implementation of
a low level mutex.

Implement a generic low level sleep-mutex serializer, kern/lwkt_serialize.c.
The serializer is designed to be a replacement for SPL calls but may also
be used for other very low level work (e.g. lockmgr interlocks).

Add a serializer argument to BUS_SETUP_INTR(). When non-NULL, the interrupt
handler will no longer be protected by an SPL so e.g. spl*() will no
longer protect against that device's interrupts.

The IF queueing and dequeueing mechanisms may no longer depend on outside
SPL state because network driver interrupt handlers are no longer required to
enter splnet(). Use critical sections for the moment. The IFQ and
IFF_OACTIVE interactions are not yet MP safe.

show more ...


# c2576c10 19-Feb-2005 Joerg Sonnenberger <joerg@dragonflybsd.org>

Use ifq_set_maxlen instead of messing with the fields directly.


# 1f8e62c9 26-Jan-2005 Joerg Sonnenberger <joerg@dragonflybsd.org>

- Add support for attaching alternative DLTs to an interface.
The function is named bpfattach_dlt, FreeBSD used bpfattach2.
- Change bpf_mtap to take the bpf_if directly.
- Add support for BIOCSDLT

- Add support for attaching alternative DLTs to an interface.
The function is named bpfattach_dlt, FreeBSD used bpfattach2.
- Change bpf_mtap to take the bpf_if directly.
- Add support for BIOCSDLT and BIOCGDLT to recieve a list of DLTs
available on an interface.

Obtained-from: FreeBSD

- Add bpf_ptap, which takes an mbuf and a header, builds a temporary
mbuf chain and calls bpf_mtap on that.

Inspired-by: FreeBSD's bpf_mtap2

- Use the new interface for all drivers doing this by hand before.
- Include the formerly commented out support for radio headers in wi(4)
and wlan(4).
- Change if_loop, i4b_ipr, disc and ic to prepend a uint32_t, not an int.

show more ...


# c5541aee 07-Apr-2004 Matthew Dillon <dillon@dragonflybsd.org>

General netif malloc() flags cleanup. Use M_INTWAIT or M_WAITOK instead
of M_NOWAIT. Generally use M_WAITOK in the attach code or ioctl code
typically called from userland, and M_INTWAIT for routin

General netif malloc() flags cleanup. Use M_INTWAIT or M_WAITOK instead
of M_NOWAIT. Generally use M_WAITOK in the attach code or ioctl code
typically called from userland, and M_INTWAIT for routines that might
be called during non-boot operations. Since M*WAIT flags guarentee a
non-NULL result, also remove now-unnecessary NULL checks.

show more ...


# bd4539cc 23-Mar-2004 Jeffrey Hsu <hsu@dragonflybsd.org>

Eliminate use of curthread in if_ioctl functions by passing down the
ucred structure.


# 3e4a09e7 06-Jan-2004 Matthew Dillon <dillon@dragonflybsd.org>

if_xname support Part 2/2: Convert remaining netif devices and implement full
support for if_xname. Restructure struct ifnet in net/if_var.h, pulling in
a few minor additional changes from current i

if_xname support Part 2/2: Convert remaining netif devices and implement full
support for if_xname. Restructure struct ifnet in net/if_var.h, pulling in
a few minor additional changes from current including making if_dunit an int,
and making if_flags an int.

Submitted-by: Max Laier <max@love2party.net>

show more ...


# 32832096 20-Nov-2003 Matthew Dillon <dillon@dragonflybsd.org>

Add a DECLARE_DUMMY_MODULE() so we can get linker_set module names
for modules that normally use DRIVER_MODULE(). The problem is that
DRIVER_MODULE() will define names that do not match the module n

Add a DECLARE_DUMMY_MODULE() so we can get linker_set module names
for modules that normally use DRIVER_MODULE(). The problem is that
DRIVER_MODULE() will define names that do not match the module name,
so a DECLARE_DUMMY_MODULE() is needed for the kernel to be able to
figure out that a module has been statitically compiled in.

show more ...


12