Age | Commit message (Collapse) | Author |
|
It was meant to be the size of the whole ifps, but then it was mistaken as
the xsave size. Switch to that meaning, and add to it the offset as
appropriate.
|
|
i386_XFLOAT_STATE does expect fxsr tag.
|
|
Userland will fall back to 387 support, which is what it should.
|
|
|
|
Message-ID: <20250407201126.1553736-1-etienne.brateau@gmail.com>
|
|
It may be NULL in that case.
|
|
Integrate HPET so host_get_time, host_get_time64, and host_get_uptime64
are more precise. The highest precision can be 10ns when this patch is
applied.
* i386/i386/apic.c: Implement the two high-precision clock interface functions
added in this patch for i386.
* i386/i386at/model_dep.c: Initialize HPET if APIC is defined
* kern/mach_clock.c: Integrate the high-precision clocks to have the
10ns precise time values.
* kern/mach_clock.h: Add two new interface functions for accessing the
high-precision clocks.
Message-ID: <20250324042551.4752-2-zhmingluo@163.com>
|
|
|
|
|
|
|
|
This notably fixes at least a SAVE_HINT call.
|
|
|
|
|
|
vm_page_locked_queues
to check locking
|
|
|
|
|
|
|
|
We need the slock initializer in that case.
|
|
This reverts commit 07f78f7000400bd9d2b3a9f665e7cdfea0cd3df9.
Using double_paging is not only about insisting on triggering more
evictions, but also about page being non-NULL and thus following a
different codepath.
|
|
`double_paging` used to be used to detect when we have not really flushed
a page yet (we have just pushed it to the external pager for now) and we
really want to flush something because allocations are paused. But when we
do not have a default pager, we are not double-paging but we should still
continue evicting pages.
|
|
Message-ID: <aasqh5rjtuuf6uwvczxtn2k6eyg3mdnkmcsmw6bkzbjitcatrk@tovv247rvlnh>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Otherwise we will get stuck inside vm_object_pager_create's call to
vm_object_enter trying to reference it.
This avoids getting stuck when there is no swap and we don't start a
defpager.
|
|
* aarch64/include/mach/aarch64/mach_aarch64.defs: (hwcaps_t) make type an
array of uint64_t.
* aarch64/include/mach/aarch64/mach_aarch64_types.h (hwcaps_t) make type a
pointer to uint64_t
Acked-by: Sergey Bugaev <bugaevc@gmail.com>
Message-ID: <20250109224057.1652-1-dnietoc@gmail.com>
|
|
Message-ID: <20250111083330.26863-1-gfleury@disroot.org>
|
|
Add host_get_uptime64() mach interface operation. It can be used to get
the time passed since the boot up.
* doc/mach.texi: Add the documentation for the operation
* include/mach/mach_host.defs: Add the interface
* include/mach/time_value.h: Extend the mappable time variable
* kern/mach_clock.c: Operation implementation
* kern/mach_clock.h: Add a new variable for storing uptime
Signed-off-by: Zhaoming Luo <zhmingluo@163.com>
Message-ID: <20241224015751.1282-1-zhmingluo@163.com>
|
|
Because we support up to 64 irqs with 2 IOAPICs.
Message-ID: <20241228042008.704671-1-damien@zamaudio.com>
|
|
Make is allowed to run the tests/module-% prereqs out-of-order, so
explicit the dependency between installing .defs files and generating
.user/server.c.
|
|
We need to use a separate iso tree directory.
|
|
|
|
Read also:
https://mail.gnu.org/archive/html/bug-hurd/2024-12/msg00219.html
Signed-off-by: Zhaoming Luo <zhmingluo@163.com>
Message-ID: <20241224024417.1403-1-zhmingluo@163.com>
|
|
|
|
|
|
Add workaround for broken systems that advertise 8 bit APIC ids
but only match IPIs on 4 bits of the APIC id.
Message-ID: <20241222014306.430098-4-damien@zamaudio.com>
|
|
Fixes ESR==0x8 error on AMD fam15h. Fixed timings.
Cannot locate documentation on correct mode for STARTUP IPI,
but this patch works on AMD hw and qemu.
Message-ID: <20241222014306.430098-3-damien@zamaudio.com>
|
|
Now that things are in place, we switch to parallel init.
The key to this change is that the INIT/STARTUP sequence
is done in one step, and all cpus wake up at the same time.
Synchronisation is done via waiting for individual flags stored
in separate memory locations.
Message-ID: <20241222014306.430098-2-damien@zamaudio.com>
|
|
|
|
|
|
This allocates a constant space for percpu gdts
and copies the first entry to the nth entry on each cpu,
then patches its own copy of the gdt so it can function
independently.
Message-ID: <20241221235456.423860-2-damien@zamaudio.com>
|
|
Previously, we were ignoring cpus that were not enabled
but online-capable.
Message-ID: <20241221023937.384420-1-damien@zamaudio.com>
|
|
|
|
This is basically a no-op but ensures we are doing smp
bringup correctly.
Message-ID: <20241210072926.911061-5-damien@zamaudio.com>
|
|
The number is actually a mask bit per cpu.
Message-ID: <20241210072926.911061-2-damien@zamaudio.com>
|