summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-04-20fpu: Fix fp_xsave_size meaning confusionSamuel Thibault
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.
2025-04-20fpu_get/set_state: Do not convert tag between fxsr and i387Samuel Thibault
i386_XFLOAT_STATE does expect fxsr tag.
2025-04-20fpu_get_state: Fail if requested xfloat state while we have saved 387 stateSamuel Thibault
Userland will fall back to 387 support, which is what it should.
2025-04-19fpu: Fix saving/restoring SSE MXCSR stateSamuel Thibault
2025-04-07x86_64: update ifdef to exclude the x86_64 for i386 only specific conditionsEtienne Brateau
Message-ID: <20250407201126.1553736-1-etienne.brateau@gmail.com>
2025-03-25vm_page_free: Do not check mem->object lock when mem->absent is falseSamuel Thibault
It may be NULL in that case.
2025-03-25Integrate HPET so the functions used for getting time can have a higher accuracyZhaoming Luo
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>
2025-02-26vm_map_print: show the number of wired pagesv1.8+git20250304Samuel Thibault
2025-02-25vm_object: Drop old now-unused counterSamuel Thibault
2025-02-14Avoid MACRO_BEGIN/END for installed filesSamuel Thibault
2025-02-12Use MACRO_BEGIN/ENDSamuel Thibault
This notably fixes at least a SAVE_HINT call.
2025-02-12lock: Also enable non-SMP slock checking code on MACH_LDEBUGSamuel Thibault
2025-02-12lock: Fix build with MACH_LDEBUG but no SMPSamuel Thibault
2025-02-12vm: Add and use vm_object_lock_taken, vm_object_cache_locked, ↵Samuel Thibault
vm_page_locked_queues to check locking
2025-02-12vm: Fix checking lockSamuel Thibault
2025-02-12vm: Add missing lockingSamuel Thibault
2025-02-12db_show_all_slocks: Fix build on amd64Samuel Thibault
2025-02-12i386 lock: Fix building with MACH_SLOCKS and no SMPSamuel Thibault
We need the slock initializer in that case.
2025-02-12Revert "vm_page: Keep evicting out pages with external pager"Samuel Thibault
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.
2025-02-11vm_page: Keep evicting out pages with external pagerSamuel Thibault
`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.
2025-02-10mig_strncpy: ensure destination string is null terminatedFlavio Cruz
Message-ID: <aasqh5rjtuuf6uwvczxtn2k6eyg3mdnkmcsmw6bkzbjitcatrk@tovv247rvlnh>
2025-02-09vm_page: Avoid double-paging when we do not have a DMMSamuel Thibault
2025-02-09vm_page: Avoid creating a pager in DMM when not double-pagingSamuel Thibault
2025-02-09vm_page: Also detect default memory manager being deadSamuel Thibault
2025-02-09fix buildSamuel Thibault
2025-02-08set startup thread name to pageout after setupSamuel Thibault
2025-02-08Add names to kernel tasks and threadsSamuel Thibault
2025-02-05vm_page_print: Fix typoSamuel Thibault
2025-02-04Fix build against automake 1.17Samuel Thibault
2025-02-04vm_page: Avoid trying to evict internal pages until defpager is upSamuel Thibault
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.
2025-01-14make hwcaps_t a pointer to uint64_tDiego Nieto Cid
* 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>
2025-01-11Fix boot with smp 1gfleury
Message-ID: <20250111083330.26863-1-gfleury@disroot.org>
2024-12-29kern: Add a mach host operation which returns elapsed time since bootupZhaoming Luo
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>
2024-12-29i386/irq: Add missing enumeration for high interruptsDamien Zammit
Because we support up to 64 irqs with 2 IOAPICs. Message-ID: <20241228042008.704671-1-damien@zamaudio.com>
2024-12-28tests: Fix out-of-order generation of mig filesSamuel Thibault
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.
2024-12-28tests: Fix parallel build of iso filesSamuel Thibault
We need to use a separate iso tree directory.
2024-12-28xen: Fix buildSamuel Thibault
2024-12-24kern: Comment fixedv1.8+git20241227Zhaoming Luo
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>
2024-12-24irq: make device_intr_register reject bogus intr idSamuel Thibault
2024-12-23intr: Note which interrupt is being refused to userlandSamuel Thibault
2024-12-22apic: Add extended feature registers for local apic unitDamien Zammit via Bug reports for the GNU Hurd
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>
2024-12-22smp: Use deassert for startup IPI not assertDamien Zammit via Bug reports for the GNU Hurd
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>
2024-12-22smp: Parallel SMP initDamien Zammit via Bug reports for the GNU Hurd
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>
2024-12-22cpuboot: Use x86 array indexing to make code more readableSamuel Thibault
2024-12-22cpuboot: Make sure we copy forwardSamuel Thibault
2024-12-22cpuboot: Fix percpu apboot_gdt for early gsDamien Zammit via Bug reports for the GNU Hurd
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>
2024-12-21acpi_parse_apic: Check CAPABLE bit field on lapic MADT flagDamien Zammit via Bug reports for the GNU Hurd
Previously, we were ignoring cpus that were not enabled but online-capable. Message-ID: <20241221023937.384420-1-damien@zamaudio.com>
2024-12-15task_info: Fix resident_size overflowSamuel Thibault
2024-12-10smp: Make sure BSP is cpu 0 when starting other cpusDamien Zammit via Bug reports for the GNU Hurd
This is basically a no-op but ensures we are doing smp bringup correctly. Message-ID: <20241210072926.911061-5-damien@zamaudio.com>
2024-12-10i386/apic: Fix logical id numberingDamien Zammit
The number is actually a mask bit per cpu. Message-ID: <20241210072926.911061-2-damien@zamaudio.com>