#
8a1e8cca |
| 29-Mar-2024 |
miod <miod@openbsd.org> |
Drop the first argument of intr_establish().
Instead, require all callers to put the right value in the ih_pil field, and have intr_establish() trust them rather than assigning this field again from
Drop the first argument of intr_establish().
Instead, require all callers to put the right value in the ih_pil field, and have intr_establish() trust them rather than assigning this field again from its first argument.
ok claudio@ kettenis@
show more ...
|
#
b3af768d |
| 11-Apr-2023 |
jsg <jsg@openbsd.org> |
fix double words in comments feedback and ok jmc@ miod, ok millert@
|
#
24ee467d |
| 04-Feb-2023 |
cheloha <cheloha@openbsd.org> |
timecounting: remove incomplete PPS support
The timecounting code has had stubs for pulse-per-second (PPS) polling since it was imported in 2004. At this point it seems unlikely that anyone is goin
timecounting: remove incomplete PPS support
The timecounting code has had stubs for pulse-per-second (PPS) polling since it was imported in 2004. At this point it seems unlikely that anyone is going to finish adding PPS support, so let's remove the stubs:
- Delete the dead tc_poll_pps() call from tc_windup(). - Remove all tc_poll_pps symbols from the kernel.
Link: https://marc.info/?l=openbsd-tech&m=167519035723210&w=2
ok miod@
show more ...
|
#
47c47fea |
| 16-Oct-2022 |
jsg <jsg@openbsd.org> |
Change function definitions using the identifier-list form used in the 1st edition of Kernighan and Ritchie's The C Programming Language, to that of the parameter-type-list form described in the ANSI
Change function definitions using the identifier-list form used in the 1st edition of Kernighan and Ritchie's The C Programming Language, to that of the parameter-type-list form described in the ANSI X3.159-1989 standard.
In ISO/IEC 9899:2023 drafts, there is only one form of function definition. "N2432 Remove support for function definitions with identifier lists".
ok kettenis@
show more ...
|
#
806956e3 |
| 21-Feb-2022 |
jsg <jsg@openbsd.org> |
independednt -> independent, let's -> lets
|
#
eb7eaf8d |
| 24-Oct-2021 |
mpi <mpi@openbsd.org> |
Constify struct cfattach.
ok visa@ a long time ago
|
#
8611d3cd |
| 23-Feb-2021 |
cheloha <cheloha@openbsd.org> |
timecounting: use C99-style initialization for all timecounter structs
The timecounter struct is large and I think it may change in the future. Changing it later will be easier if we use C99-style
timecounting: use C99-style initialization for all timecounter structs
The timecounter struct is large and I think it may change in the future. Changing it later will be easier if we use C99-style initialization for all timecounter structs. It also makes reading the code a bit easier.
For reasons I cannot explain, switching to C99-style initialization sometimes changes the hash of the resulting object file, even though the resulting struct should be the same. So there is a binary change here, but only sometimes. No behavior should change in either case.
I can't compile-test this everywhere but I have been staring at the diff for days now and I'm relatively confident this will not break compilation. Fingers crossed.
ok gnezdo@
show more ...
|
#
d82e6535 |
| 06-Jul-2020 |
pirofti <pirofti@openbsd.org> |
Add support for timeconting in userland.
This diff exposes parts of clock_gettime(2) and gettimeofday(2) to userland via libc eliberating processes from the need for a context switch everytime they
Add support for timeconting in userland.
This diff exposes parts of clock_gettime(2) and gettimeofday(2) to userland via libc eliberating processes from the need for a context switch everytime they want to count the passage of time.
If a timecounter clock can be exposed to userland than it needs to set its tc_user member to a non-zero value. Tested with one or multiple counters per architecture.
The timing data is shared through a pointer found in the new ELF auxiliary vector AUX_openbsd_timekeep containing timehands information that is frequently updated by the kernel.
Timing differences between the last kernel update and the current time are adjusted in userland by the tc_get_timecount() function inside the MD usertc.c file.
This permits a much more responsive environment, quite visible in browsers, office programs and gaming (apparently one is are able to fly in Minecraft now).
Tested by robert@, sthen@, naddy@, kmos@, phessler@, and many others!
OK from at least kettenis@, cheloha@, naddy@, sthen@
show more ...
|
#
630edadf |
| 25-Jun-2019 |
dlg <dlg@openbsd.org> |
add support for bypassing iommu translation
managing the translation table entries (TTEs) on an iommu is not free, and is in fact extremely expensive on some platforms. the flip side of this is that
add support for bypassing iommu translation
managing the translation table entries (TTEs) on an iommu is not free, and is in fact extremely expensive on some platforms. the flip side of this is that forcing dma through TTEs does provide some safety and can help during the development of drivers. however, this has been less true in recent years than it used to be and is less of a concern now, especially considering the performance differences on some platforms.
devices have to create dmamaps with BUS_DMA_64BIT to bypass the iommu because the memory window presented to hardware with direct access to memory is at an extremely high address. there's no 32bit bypass access to memory, it has to go through TTEs otherwise.
on an m4000 there are several orders of magnitude performance difference between a driver with BUS_DMA_64BIT set and one without it.
hilariously, sun used a pci bridge on a whole generation of machines that had broken support for dma addresses over 40 bits (or around there), so devices behind those pci bridges need to have their dmamap_creates intercepted and any potential BUS_DMA_64BIT flags cleared on the way to the iommu drivers. this affects at least v215, v245, and v445, and probably u25s and u45s. it probably explains why all their onboard nics and disk controllers feel super slow, and why there was a meme at sun that bcopy was cheaper than dma when moving packets on and off a nic.
ok kettenis@ deraadt@
show more ...
|
#
27d3e2e5 |
| 25-May-2017 |
dlg <dlg@openbsd.org> |
tweak sparc64 membars as a step toward making them usable in userland.
specifically, dont rely on magic in ctlreg to implement membars. moving that to atomic.h would add a lot of pollution to the na
tweak sparc64 membars as a step toward making them usable in userland.
specifically, dont rely on magic in ctlreg to implement membars. moving that to atomic.h would add a lot of pollution to the namespace, so move to passing the membar options to a single __membar macro.
this tweaks everything that was using the ctlreg backend to either use an appropriate membar_foo(), or to use __membar() in the MD code.
ok kettenis@
show more ...
|
#
aaed5986 |
| 23-Aug-2016 |
guenther <guenther@openbsd.org> |
Convert %q to %ll in format strings
ok natano@ krw@
|
#
8bfc2cde |
| 12-Jul-2014 |
uebayasi <uebayasi@openbsd.org> |
reboot(9), panic(9): Call panic(9) for unrecoverable MD H/W errors (NMIs)
Some architectures have ability to detect hardware sanity and notify system (NMI, firmware callback, etc.). Handle these ha
reboot(9), panic(9): Call panic(9) for unrecoverable MD H/W errors (NMIs)
Some architectures have ability to detect hardware sanity and notify system (NMI, firmware callback, etc.). Handle these hardware severe errors, same as software errors, with panic(9).
According to miod@, SGI IP27 NMI is triggered by pushing some "hidden" button, which "usual" users/admins don't know. Pushing such a button is "RB_USERREQ" (human-triggered) in that the button is pushed by a human, but not "RB_USERREQ" in that no user intervention in system (== no command input) is done. miod@ agreed that changing these from RB_USERREQ to !RB_USERREQ (== panic(9)) is not a big problem.
OK miod@ kettenis@
show more ...
|
#
f8e6c425 |
| 12-Jul-2014 |
tedu <tedu@openbsd.org> |
add a size argument to free. will be used soon, but for now default to 0. after discussions with beck deraadt kettenis.
|
#
818c7e6d |
| 12-Jul-2014 |
uebayasi <uebayasi@openbsd.org> |
boot(9), reboot(9): Migrate MD callers of boot(9) to reboot(9)
I have found that some ports call boot(9) from machine-dependent code to reboot system. These should be changed to either:
- Sending
boot(9), reboot(9): Migrate MD callers of boot(9) to reboot(9)
I have found that some ports call boot(9) from machine-dependent code to reboot system. These should be changed to either:
- Sending signal to init(8) to trigger it to shutdown system cleanly, like acpi(4) does, in cases where found problems don't prevent system from working immediately, or
- Just doing panic(9) if the situation is severely broken.
For now, just rewrite boot() to reboot(). Actual fixes follow.
Discussed with & OK from kettenis@
show more ...
|
#
fa1bd43d |
| 24-Jan-2014 |
kettenis <kettenis@openbsd.org> |
Add support for BUS_INTR_ESTABLISH_MPSAFE.
|
#
0ca66180 |
| 06-Jul-2011 |
kettenis <kettenis@openbsd.org> |
Handle pci_conf_read() faults on reading non-existent registers that result in master aborts. Return 0xffffffff to emulate what happens on non-perfect architectures in that case.
ok deraadt@
|
#
0d93a06b |
| 26-Jun-2011 |
kettenis <kettenis@openbsd.org> |
Fix some inconsistencies in how we build 64-bit addresses from OF properties.
|
#
b1926db3 |
| 04-Dec-2010 |
miod <miod@openbsd.org> |
Introduce a new pci routine, pci_conf_size(), which returns the size of a given pcitag_t configuration address space. Currently, all pci controllers will return the usual 0x100 bytes of PCI configura
Introduce a new pci routine, pci_conf_size(), which returns the size of a given pcitag_t configuration address space. Currently, all pci controllers will return the usual 0x100 bytes of PCI configuration space, but this will eventually change on PCIe-capable controlers. ok kettenis@
show more ...
|
#
118aaddb |
| 29-Mar-2009 |
kettenis <kettenis@openbsd.org> |
bzero pci attach args
ok deraadt@, miod@
|
#
e10c952f |
| 29-Mar-2009 |
sthen <sthen@openbsd.org> |
make various strings ("can't map mem space" and similar) more consistent between instances, saving space in the kernel. feedback from many (some incorporated, some left for future work).
ok deraadt,
make various strings ("can't map mem space" and similar) more consistent between instances, saving space in the kernel. feedback from many (some incorporated, some left for future work).
ok deraadt, kettenis, "why not" miod.
show more ...
|
#
af956b4d |
| 02-Jan-2009 |
kettenis <kettenis@openbsd.org> |
Make IOMMU code use the generic _bus_dmamem_map() and _bus_dmamem_unmap().
|
#
d5156216 |
| 25-Nov-2008 |
kettenis <kettenis@openbsd.org> |
Fix dmesg ugliness caused by not printing iotdb stuff.
|
#
45d6f03d |
| 23-Jul-2008 |
kettenis <kettenis@openbsd.org> |
Clear correctable errors after handling them. From Bjorn Andersson.
|
#
d9c89e4c |
| 20-Jul-2008 |
kettenis <kettenis@openbsd.org> |
Provide a timecounter based on the UltraSPARC IIe STICK logic.
|
#
ddb8df12 |
| 12-Jul-2008 |
kettenis <kettenis@openbsd.org> |
Don't install interrupt handlers for non-exitsing interrupts on CMU-CH.
|