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 |
|
#
feadd4ae |
| 11-Jun-2020 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Refactor sysclock_t from 32 to 64 bits (2)
* Cputimer reload values can be negative, check condition and set a small positive reload value instead.
* Also avoids muldivu64() overflow war
kernel - Refactor sysclock_t from 32 to 64 bits (2)
* Cputimer reload values can be negative, check condition and set a small positive reload value instead.
* Also avoids muldivu64() overflow warnings on the console.
Reported-by: kworr
show more ...
|
#
8fbc264d |
| 09-Jun-2020 |
Matthew Dillon <dillon@apollo.backplane.com> |
kernel - Refactor sysclock_t from 32 to 64 bits
* Refactor the core cpu timer API, changing sysclock_t from 32 to 64 bits. Provide a full 64-bit count from all sources.
* Implement muldivu64() u
kernel - Refactor sysclock_t from 32 to 64 bits
* Refactor the core cpu timer API, changing sysclock_t from 32 to 64 bits. Provide a full 64-bit count from all sources.
* Implement muldivu64() using gcc's 128-bit integer type. This functions takes three 64-bit valus, performs (a * b) / d using a 128-bit intermediate calculation, and returns a 64-bit result.
Change all timer scaling functions to use this function which effectively gives systimers the capability of handling any timeout that fits 64 bits for the timer's resolution.
* Remove TSC frequency scaling, it is no longer needed. The TSC timer is now used at its full resolution.
* Use atomic_fcmpset_long() instead of a clock spinlock when updating the msb bits for hardware timer sources less than 64 bits wide.
* Properly recalculate existing systimers when the clock source is changed. Existing systimers were not being recalculated, leading to the system failing to boot when time sources had radically different clock frequencies.
show more ...
|
Revision tags: v5.8.1, v5.8.0, v5.9.0, v5.8.0rc1, v5.6.3 |
|
#
e2164e29 |
| 18-Oct-2019 |
zrj <rimvydas.jasinskas@gmail.com> |
<sys/slaballoc.h>: Switch to lighter <sys/_malloc.h> header.
The <sys/globaldata.h> embeds SLGlobalData that in turn embeds the "struct malloc_type". Adjust several kernel sources for missing in
<sys/slaballoc.h>: Switch to lighter <sys/_malloc.h> header.
The <sys/globaldata.h> embeds SLGlobalData that in turn embeds the "struct malloc_type". Adjust several kernel sources for missing includes where memory allocation is performed. Try to use alphabetical include order.
Now (in most cases) <sys/malloc.h> is included after <sys/objcache.h>. Once it gets cleaned up, the <sys/malloc.h> inclusion could be moved out of <sys/idr.h> to drm Linux compat layer linux/slab.h without side effects.
show more ...
|
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 |
|
#
82b77854 |
| 16-Feb-2017 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv: Reorganize
|
#
6bc7b4f2 |
| 06-Jan-2017 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv/vmbus: Fix interrupt timer detection logic.
|
#
a4413ab2 |
| 20-Dec-2016 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv: Add API to read raw value of Hyper-V timer.
Accelerate Hyper-V event timer reloading.
|
#
cb60f91b |
| 20-Dec-2016 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv: Move commonly shared header files to the module's top dir.
|
Revision tags: v4.6.1, v4.6.0 |
|
#
ae7ab5b6 |
| 29-Jul-2016 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv/vmbus: Passthrough interrupt resource allocation to nexus
This greatly simplies interrupt allocation. And reenable the interrupt resource not found warning in acpi.
|
Revision tags: v4.6.0rc2, v4.6.0rc, v4.7.0 |
|
#
1f260e2c |
| 16-Jun-2016 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv/vmbus: Factor out vmbus_msg_reset()
|
#
05ec79dd |
| 16-Jun-2016 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv/vmbus: Make sure that interrupt cputimer can be enabled.
Obtained-from: FreeBSD
|
#
e3c41896 |
| 13-Jun-2016 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv/vmbus: Complete vmbus initialization; interrupt cputimer is enabled
Most of the bits are obtained from FreeBSD. However, The interrupt bits are reworked: - Since the vmbus message/event inte
hyperv/vmbus: Complete vmbus initialization; interrupt cputimer is enabled
Most of the bits are obtained from FreeBSD. However, The interrupt bits are reworked: - Since the vmbus message/event interrupt works in the same fashion as MSI-X, we just allocate MSI-X for them, instead of allocating IDT vector, rolling vmbus own interrupt vector and turning the interrupt handling inside-out. The standard and generic bus APIs are used to allocate and setup per-cpu vmbus interrupt. - Interrupt cputimer reuses the current per-cpu interrupt timer code. - AutoEOI is not used, since we reuse the per-cpu interrupt timer IDT vector and MSI IDT vector. After a brief discussion w/ Dexuan Cui, I concluded that AutoEOI probably does not provide noticible performance improvement but will introduce extra code complexity. We leave it off for now.
Obtained-from: FreeBSD (mostly)
show more ...
|
#
45de427d |
| 13-Jun-2016 |
Sepherosa Ziehau <sephe@dragonflybsd.org> |
hyperv: Initial import. It only contains non-intr cputimer.
Obtained-from: FreeBSD
|