History log of /dragonfly/sys/sys/serialize.h (Results 1 – 20 of 20)
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
# b81f92e0 31-Aug-2019 zrj <rimvydas.jasinskas@gmail.com>

<sys/serialize.h>: Limit prototypes to kernel only.

The "struct lwkt_serialize" must be left userland visible for if_net.


Revision tags: 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, v5.3.0, v5.2.0rc, v5.0.2, v5.0.1, v5.0.0, v5.0.0rc2, v5.1.0, v5.0.0rc1, v4.8.1, 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, v4.0.5, v4.0.4
# c61040ee 22-Feb-2015 Sascha Wildner <saw@online.de>

kernel/lwkt_serialize: Take serializer bookkeeping out of INVARIANTS.

IS_SERIALIZED() is no longer only used in [K]KASSERT(), which disrupts
compiling without INVARIANTS rather regularly.

This comm

kernel/lwkt_serialize: Take serializer bookkeeping out of INVARIANTS.

IS_SERIALIZED() is no longer only used in [K]KASSERT(), which disrupts
compiling without INVARIANTS rather regularly.

This commit makes the needed bits available without INVARIANTS too.

show more ...


Revision tags: 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, 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, v3.4.0, v3.4.1, v3.4.0rc, v3.5.0, v3.2.2
# 1918fc5c 24-Oct-2012 Sascha Wildner <saw@online.de>

kernel: Make SMP support default (and non-optional).

The 'SMP' kernel option gets removed with this commit, so it has to
be removed from everybody's configs.

Reviewed-by: sjg
Approved-by: many


Revision tags: v3.2.1, v3.2.0, v3.3.0, v3.0.3, v3.0.2, v3.0.1, v3.1.0, v3.0.0
# 86d7f5d3 26-Nov-2011 John Marino <draco@marino.st>

Initial import of binutils 2.22 on the new vendor branch

Future versions of binutils will also reside on this branch rather
than continuing to create new binutils branches for each new version.


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, 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, v2.3.1
# 05e4eb5c 28-Apr-2009 Sepherosa Ziehau <sephe@dragonflybsd.org>

serializer: Revoke PROFILE_SERIALIZER kernel option

This kernel is added by me to do preliminary serializer contention
profiling. It is kinda invasive and expands struct lwkt_serialize
considerably

serializer: Revoke PROFILE_SERIALIZER kernel option

This kernel is added by me to do preliminary serializer contention
profiling. It is kinda invasive and expands struct lwkt_serialize
considerably. Need to find a better way...

show more ...


Revision tags: v2.2.1
# bc197380 12-Apr-2009 Sepherosa Ziehau <sephe@dragonflybsd.org>

Put lwkt_serialize_array_{enter,try,exit}() into its own header file;
name it sys/serialize2.h according to our convention.


# f61533ad 11-Apr-2009 Sepherosa Ziehau <sephe@dragonflybsd.org>

Factor out lwkt_serialize_array_{enter,try,exit}()


Revision tags: v2.2.0, v2.3.0
# 710e21de 31-Dec-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Unbreak kernel/module building without INVARIANTS


# dcad4d19 28-Dec-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Put last_td accessing back into INVARIANTS


Revision tags: v2.1.1, v2.0.1
# 9db4b353 14-May-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Reduce ifnet.if_serializer contention on output path:
- Push ifnet.if_serializer holding down into each ifnet.if_output implementation
- Add a serializer into ifaltq, which is used to protect send qu

Reduce ifnet.if_serializer contention on output path:
- Push ifnet.if_serializer holding down into each ifnet.if_output implementation
- Add a serializer into ifaltq, which is used to protect send queue instead of
its parent's if_serializer. This change has following implication:
o On output path, enqueueing packets and calling ifnet.if_start are decoupled
o In device drivers, poll->dev_encap_ok->dequeue operation sequence is no
longer safe, instead dequeue->dev_encap_fail->prepend should be used
This serializer will be held by using lwkt_serialize_adaptive_enter()
- Add altq_started field into ifaltq, which is used to interlock the calling
of its parent's if_start, to reduce ifnet.if_serializer contention.
if_devstart(), a helper function which utilizes ifaltq.altq_started, is added
to reduce code duplication in ethernet device drivers.
- Add if_cpuid into ifnet. This field indicates on which CPU device driver's
interrupt will happen.
- Add ifq_dispatch(). This function will try to hold ifnet.if_serializer in
order to call ifnet.if_start. If this attempt fails, this function will
schedule ifnet.if_start to be called on CPU located by ifnet.if_start_cpuid
if_start_nmsg, which is per-CPU netmsg, is added to ifnet to facilitate
ifnet.if_start scheduling. ifq_dispatch() is called by ether_output_frame()
currently
- Use ifq_classic_ functions, if altq is not enabled
- Fix various device drivers bugs in their if_start implementation
- Add ktr for ifq classic enqueue and dequeue
- Add ktr for ifnet.if_start

show more ...


# d1d48a34 05-May-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Add lwkt_serialize_adaptive_enter(9), it is same as lwkt_serialize_enter(9)
except that it spins a little bit before sleeping.
- Under debug sysctl tree, add sysctl nodes to tune various backoff

- Add lwkt_serialize_adaptive_enter(9), it is same as lwkt_serialize_enter(9)
except that it spins a little bit before sleeping.
- Under debug sysctl tree, add sysctl nodes to tune various backoff related
parameter for lwkt_serialize_adaptive_enter(9).
- Add ktr for serializer enter end, exit begin, spin backoff and spin backoff
failure.

Reviewed-by: corecode@

show more ...


# 7b913fd6 03-Apr-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add counters for serializer enter/try

Suggested-by: aggelos@


# 21fa6062 02-Apr-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

- Add two fields in lwkt_serialize to profile serializer contention.
- Expose serializer contention data through em's private sysctl tree.


# 81843664 16-Mar-2008 Sepherosa Ziehau <sephe@dragonflybsd.org>

Add ASSERT_NOT_SERIALIZED


# aa368711 26-Aug-2006 Joerg Sonnenberger <joerg@dragonflybsd.org>

Move atomic_intr_t to machine/stdint.h and predent __ to reduce
namespace pollution. Include that file in sys/serialize.h instead
of machine/atomic.h to dramatically reduce namespace pollution of
use

Move atomic_intr_t to machine/stdint.h and predent __ to reduce
namespace pollution. Include that file in sys/serialize.h instead
of machine/atomic.h to dramatically reduce namespace pollution of
userland applications.

show more ...


# 3e086307 23-Nov-2005 Matthew Dillon <dillon@dragonflybsd.org>

Add a lwkt_serialize_try() API function.


# 477d3c1c 13-Oct-2005 Matthew Dillon <dillon@dragonflybsd.org>

Major cleanup of the interrupt registration subsystem.

* Collapse the separate registrations in the kernel interrupt thread and
i386 layers into a single machine-independant kernel interrupt threa

Major cleanup of the interrupt registration subsystem.

* Collapse the separate registrations in the kernel interrupt thread and
i386 layers into a single machine-independant kernel interrupt thread layer
in kern/kern_intr.c. Get rid of the i386 layer's 'MUX' code entirely.

* Have the interrupt vector assembly code (icu_vector.s and apic_vector.s)
call a machine-independant function in the kernel interrupt thread
layer to figure out how to process an interrupt.

* Move a lot of assembly into the new C interrupt processing function.

* Add support for INTR_MPSAFE. If a device driver registers an interrupt
as being MPSAFE, the Big Giant Lock will not be obtained or required.

* Temporarily just schedule the ithread if a FAST interrupt cannot be executed
due to its serializer being locked.

* Add LWKT serialization support for a non-blocking 'try' function.

* Get rid of ointhand2_t and adjust all old ISA code to use inthand2_t.

* Supply a frame pointer as a pointer rather then embedding it on th stack.

* Allow FAST and SLOW interrupts to be mixed on the same IRQ, though this
will not necessarily result in optimal operation.

* Remove direct APIC/ICU vector calls from the apic/icu vector assembly code.
Everything goes through the new routine in kern/kern_intr.c now.

* Add a new flag, INTR_NOPOLL. Interrupts registered with the flag will
not be polled by the upcoming emergency general interrupt polling
sysctl (e.g. ATA cannot be safely polled due to the way ATA register
access interferes with ATA DMA).

* Remove most of the distinction in the i386 assembly layers between FAST
and SLOW interrupts (part 1/2).

* Revamp the interrupt name array returned to userland to list multiple
drivers associated with the same IRQ.

show more ...


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


# a8a94599 07-Feb-2011 Sascha Wildner <saw@online.de>

Remove useless belt and suspenders include guards in some of our headers.

For these headers:

/usr/include/machine/atomic.h
/usr/include/machine/bus_dma.h
/usr/include/machine/coredump.h
/usr/includ

Remove useless belt and suspenders include guards in some of our headers.

For these headers:

/usr/include/machine/atomic.h
/usr/include/machine/bus_dma.h
/usr/include/machine/coredump.h
/usr/include/machine/cpufunc.h
/usr/include/machine/db_machdep.h
/usr/include/machine/elf.h
/usr/include/machine/endian.h
/usr/include/machine/frame.h
/usr/include/machine/limits.h
/usr/include/machine/npx.h
/usr/include/machine/profile.h
/usr/include/machine/segments.h
/usr/include/machine/stdarg.h
/usr/include/machine/stdint.h
/usr/include/machine/trap.h
/usr/include/machine/tss.h
/usr/include/machine/ucontext.h
/usr/include/machine/vframe.h
/usr/include/machine/vm86.h

All these headers #define _CPU_... and not _MACHINE_... even though they
are in /usr/include/machine. And the headers themselves have include
guards already. So there's little point in having them around the actual
#include additionally.

show more ...


# d9a87b93 07-Sep-2010 Matthew Dillon <dillon@apollo.backplane.com>

kernel - Add LWKT_SERIALIZE_INITIALIZER

* Add an initializer for serializer static/global declarations.