Tue, Feb 23
kcsan_access will be called from any memory access from a C file build with -fsanitize=thread unless the function has been marked as not to be sanitized. As long as we are far enough the boot (after SI_SUB_SMP, SI_ORDER_SECOND), kcsan_md_unsupported marks the address as valid to sanitize (always the case on amd64), and the kernel isn't in a panic we will check if the current memory access and any on the other CPUs in the system collide. If they do we report that as a possible race.
The DELAY call is to wait for other CPUs to make memory accesses and check they are different from the one on the current CPU.
How do you propose to fix the issue mentioned in the commit message in https://github.com/HardenedBSD/hardenedBSD/commit/1b291848bfbb8fe12b893d12c5163f74b84257aa?
Fri, Feb 19
Thu, Feb 18
I'm happy with this, although the cyclecount name is a bit confusing as it's not related to the CPU clock so isn't CPU cycles.
Wed, Feb 17
Is dtrace_gethrtime run while pinned to a single CPU? My readding of the spec is that it should be identical over all cores as it's based on the system counter, although it this is not the case it could lead to interesting results.
Tue, Feb 16
This driver only manages MSI/MSI-X interrupts.
Sat, Feb 13
On FDT there is the cpu-map we can use https://mjmwired.net/kernel/Documentation/devicetree/bindings/cpu.
Thu, Feb 11
It would pay to bump __FreeBSD_version when you commit this.
Should we include big.LITTLE cluster info in the topo info returned from cpu_topo (in a future patch)? The each cluster will most likely share an L2 cache, although I'm not sure if this is required.
Tue, Feb 9
That's because extract_user_id_field returns a default value of 0 for the watchpoint count field.
Fri, Feb 5
Thu, Feb 4
Wed, Feb 3
Tue, Feb 2
Remove an unneeded instruction
Rebase after locore.S changes
Thu, Jan 28
Wed, Jan 27
Tue, Jan 26
Jan 25 2021
We need to limit which CPUs we send these interrupts to on the original dual socket ThunderX as it is unable to forward them between the two sockets.
Jan 23 2021
Jan 20 2021
Jan 17 2021
Jan 16 2021
Jan 15 2021
Update based on feedback from markj
I expect we could do something similar in pmap_extract. We would need to limit it to stage 1 pmaps (i.e. non-hypervisor pmaps), and need to check if it's a userspace or kernel pmap.
Add a comment explaining why interrupts are disabled
Use an AT instruction with a fallback on walking the page table.
Fix the build and boot tested on N1SDP
It fixes warning similar to the following. This is because it's running ctfconvert on the .c file rather than a .o file.
Jan 14 2021
After R10:6eebda3bbad9 you can replace this with:
include GENERIC-MMCCAP include "../../conf/std.nodebug"
Something like D28152
I've tested on arm64, I still need to run through universe.
We could split out the -NODEBUG options to std.nodebug then include that from both here and GENERIC-NODEBUG
Jan 13 2021
Tested with dtrace -n ":::". This will trigger on memcpy as called by dtrace_getnanouptime, however it seems to be inlined by the in tree clang.
Jan 12 2021
Jan 11 2021
Jan 9 2021
I think we now handle this with my recent commits.
Jan 8 2021
Jan 7 2021
Jan 5 2021
Set the overflow when restoring register values. Start is just to start the counters counting.