No description
  • C 98.3%
  • Assembly 1.3%
  • C++ 0.2%
  • Makefile 0.1%
Find a file
Mike Kelly 74615f69cf
Some checks failed
/ x86_64 (--disable-kdb, --enable-platform=xen --enable-ncpus=1, --enable-user32) (push) Successful in 47s
/ x86_64 (--disable-kdb, --enable-platform=xen --enable-ncpus=1, --disable-user32) (push) Successful in 1m7s
/ x86_64 (--enable-kdb, --enable-apic --enable-ncpus=8, --enable-user32) (push) Failing after 1m28s
/ x86_64 (--disable-kdb, --enable-apic --enable-ncpus=1, --disable-user32) (push) Successful in 1m40s
/ x86_64 (--enable-kdb, --disable-apic --enable-ncpus=1, --enable-user32) (push) Failing after 1m40s
/ x86_64 (--enable-kdb, --enable-platform=xen --enable-ncpus=1, --disable-user32) (push) Successful in 41s
/ x86_64 (--enable-kdb, --enable-apic --enable-ncpus=8, --disable-user32) (push) Successful in 1m47s
/ x86_64 (--disable-kdb, --disable-apic --enable-ncpus=1, --disable-user32) (push) Successful in 1m49s
/ x86_64 (--disable-kdb, --enable-apic --enable-ncpus=8, --enable-user32) (push) Failing after 1m57s
/ x86_64 (--disable-kdb, --enable-apic --enable-ncpus=1, --enable-user32) (push) Failing after 1m57s
/ x86_64 (--enable-kdb, --enable-apic --enable-ncpus=1, --disable-user32) (push) Successful in 1m57s
/ x86_64 (--enable-kdb, --disable-apic --enable-ncpus=1, --disable-user32) (push) Successful in 2m0s
/ x86_64 (--disable-kdb, --enable-apic --enable-ncpus=8, --disable-user32) (push) Successful in 2m0s
/ x86_64 (--enable-kdb, --enable-apic --enable-ncpus=1, --enable-user32) (push) Failing after 2m0s
/ x86_64 (--enable-kdb, --enable-platform=xen --enable-ncpus=1, --enable-user32) (push) Successful in 41s
/ x86_64 (--disable-kdb, --disable-apic --enable-ncpus=1, --enable-user32) (push) Failing after 2m3s
/ i386 (--enable-kdb, --enable-platform=xen --enable-pae --enable-ncpus=1) (push) Failing after 12m36s
/ i386 (--enable-kdb, --enable-apic --enable-pae --enable-ncpus=8) (push) Failing after 12m36s
/ i386 (--enable-kdb, --enable-apic --enable-pae --enable-ncpus=1) (push) Failing after 12m36s
/ i386 (--enable-kdb, --enable-apic --disable-pae --enable-ncpus=8) (push) Failing after 12m36s
/ i386 (--enable-kdb, --enable-apic --disable-pae --enable-ncpus=1) (push) Failing after 12m36s
/ i386 (--enable-kdb, --disable-apic --enable-pae --enable-ncpus=1) (push) Failing after 12m36s
/ i386 (--enable-kdb, --disable-apic --disable-pae --enable-ncpus=1) (push) Failing after 12m37s
/ i386 (--disable-kdb, --enable-platform=xen --enable-pae --enable-ncpus=1) (push) Failing after 12m37s
/ i386 (--disable-kdb, --enable-apic --enable-pae --enable-ncpus=8) (push) Failing after 12m37s
/ i386 (--disable-kdb, --enable-apic --enable-pae --enable-ncpus=1) (push) Failing after 12m37s
/ i386 (--disable-kdb, --enable-apic --disable-pae --enable-ncpus=8) (push) Failing after 12m37s
/ i386 (--disable-kdb, --enable-apic --disable-pae --enable-ncpus=1) (push) Failing after 12m37s
/ i386 (--disable-kdb, --disable-apic --enable-pae --enable-ncpus=1) (push) Failing after 12m37s
/ i386 (--disable-kdb, --disable-apic --disable-pae --enable-ncpus=1) (push) Failing after 12m38s
Rebalance segments for privileged page allocation
It's possible to allocate all pages in a segment (and higher priority
ones) to privileged threads. This can result in a panic even though
memory is available in lower priority segments which haven't yet been
rebalanced by the pageout daemon. Rebalancing is now done actively
during privileged page allocation.
Message-ID: <20260310212847.153812-2-mike@weatherwax.co.uk>
2026-03-13 01:46:35 +01:00
.forgejo/workflows ci: Test xen platform as well 2026-02-08 09:06:23 +01:00
aarch64 make hwcaps_t a pointer to uint64_t 2025-01-14 02:25:07 +01:00
chips Use -Wstrict-prototypes and fix warnings 2022-12-21 12:55:46 +01:00
ddb ddb: Show last processor number in show thread/us 2026-01-02 19:57:52 +01:00
device kmsg: Don't truncate messages when overflowing. 2025-12-28 13:58:47 +01:00
doc Implement per-task virtual memory limit 2025-09-22 00:51:29 +02:00
i386 Revert "periodic intrs: Change the clock source to be lapic timer on all cpus" 2026-03-03 10:54:02 +01:00
include device: Define DEV_FLUSH_CACHE status flavor 2026-01-27 01:29:49 +01:00
ipc ipc: supress warning on cast of ipc_port_t to name 2026-01-29 00:10:03 +01:00
kern gnumach: kern/ipc_host: add branch prediction hints to port conversions 2026-03-02 21:54:10 +01:00
linux smp: Fix build with default parameters 2025-08-01 01:31:29 +02:00
tests Add missing symlink 2026-02-24 09:48:31 +01:00
util Delete util/putchar.{c,h} and util/puts.c 2023-01-18 02:02:56 +01:00
vm Rebalance segments for privileged page allocation 2026-03-13 01:46:35 +01:00
x86_64 asm: Add CX8() macro for wider types 2026-02-24 09:32:25 +01:00
xen Implement per-task virtual memory limit 2025-09-22 00:51:29 +02:00
.gitignore Ignore more files 2026-02-24 09:44:46 +01:00
=announce-1.0 Wed Apr 16 12:52:25 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu> 1997-04-17 20:05:46 +00:00
=announce-1.1 *** empty log message *** 1997-05-09 17:34:25 +00:00
=announce-1.1.1 *** empty log message *** 1997-05-12 16:29:00 +00:00
=announce-1.2 *** empty log message *** 1999-06-21 19:05:59 +00:00
=announce-1.3 1.3 release ready 2002-05-27 20:00:56 +00:00
AUTHORS 2006-10-15 Thomas Schwinge <tschwinge@gnu.org> 2009-06-18 00:26:46 +02:00
ChangeLog Switch to the new ChangeLog style. 2009-07-11 09:49:36 +02:00
config.status.dep.patch Update dependency patch for Automake 1.10.2, 1.11, and thereabouts. 2009-11-16 23:49:11 +01:00
configfrag-first.ac configfrag: fix usage of mach_ncpus before his definition 2024-11-20 00:28:31 +01:00
configfrag.ac configfrag: fix usage of mach_ncpus before his definition 2024-11-20 00:28:31 +01:00
configure.ac Fix build against automake 1.17 2025-02-04 23:30:02 +01:00
COPYING 2007-01-22 Thomas Schwinge <tschwinge@gnu.org> 2009-06-18 00:27:02 +02:00
COPYING3 Add GPLv3 license text 2018-11-26 00:37:13 +01:00
DEVELOPMENT 2007-04-25 Thomas Schwinge <tschwinge@gnu.org> 2009-06-18 00:27:08 +02:00
gensym.awk Define prototype for bogus in gensym.awk 2023-02-15 17:52:55 +01:00
gitlog-to-changelog Generate ChangeLog files for distributions. 2013-09-27 21:24:24 +02:00
Makefile.am Fix build against automake 1.17 2025-02-04 23:30:02 +01:00
Makefile.in.dep.2.patch Fix build against automake 1.17 2025-02-04 23:30:02 +01:00
Makefile.in.dep.patch Fix bootstrap hack for automake 1.16 2018-08-13 21:24:07 +02:00
Makefrag.am irq: Add irqgetstat device status IRQGETPICMODE flavor 2025-10-14 20:50:18 +02:00
Makerules.am Make sure the field offsets are updated 2015-07-25 04:00:27 +02:00
Makerules.mig.am Rework *.msgids handling when neither client nor server stubs are required 2015-10-31 12:44:06 +01:00
NEWS GNU Mach 1.8 2016-12-18 19:16:18 +01:00
README Fix IRC network name 2025-05-05 09:57:05 +02:00
version.c.in 2005-07-12 Guillem Jover <guillem@hadrons.org> 2009-06-18 00:15:27 +02:00
version.m4 Drop spurious version suffix 2022-02-11 15:24:28 +01:00

This is GNU Mach, the GNU distribution of the Mach microkernel,
<http://www.gnu.org/software/hurd/microkernel/mach/gnumach.html>.  Welcome.

GNU Mach is the microkernel upon which a GNU Hurd system is based.  It
provides an Inter Process Communication (IPC) mechanism that the Hurd
uses to define interfaces for implementing in a distributed multi-server
fashion the services a traditional operating system kernel provides.

GNU Mach runs on 32-bit x86 machines.  A version running on 64-bit x86
(x86_64) machines is in progress.  Volunteers interested in ports to
other architectures are sought; please contact us (see below) if you'd
like to help.

libmach, bootloaders, default pagers, and the like are not part of
this distribution.  For libraries, we refer you to the GNU C Library,
which has Mach support.  For bootloaders, we refer you to GRUB.  (This
kernel can be loaded by any bootloader that uses the multiboot
standard.)  For default pagers, we refer you to your particular system
that you will run on top of Mach.

The Mach Interface Generator (MIG) is no longer part of this distribution, and
instead is packaged separately: GNU MIG.

Generic installation instructions may be found in the file INSTALL.

By default, most drivers for network boards are included, as well as
drivers for IDE, SCSI and AHCI disks.

If you want the in-kernel debugger compiled in, specify --enable-kdb
to configure.  This is only useful if you actually anticipate
debugging the kernel, of course.  We don't turn it on by default
because it adds considerably to the unpageable memory footprint of the
kernel.

GNU Mach can be cross-built.  No specific options need to be given when
building on a 32-bit x86 ELF userland such as GNU/Linux.  Manually switch the
compiler to 32-bit mode when using a 64-bit x86 (x86_64) ELF toolchain:

    $ [...]/configure --host=i686-gnu CC='gcc -m32' LD='ld -melf_i386'

or point to a 32-bit ELF toolchain:

    $ [...]/configure --host=i686-gnu CC=i686-linux-gnu-gcc LD=i686-linux-gnu-ld

Also, GNU MIG needs to be a 32bit version to properly compile the interfaces,
you can specify for instance

    $ [...]/configure --host=i686-gnu CC=i686-linux-gnu-gcc LD=i686-linux-gnu-ld MIG=i686-linux-gnu-mig


Please read the FAQ at <http://www.gnu.org/software/hurd/faq.html>.
Bug reports should be sent to <bug-hurd@gnu.org> or filed on
<http://savannah.gnu.org/bugs/?group=hurd>.  Requests for assistance
should be sent to <help-hurd@gnu.org> or filed on
<http://savannah.gnu.org/support/?group=hurd>.  You can also find us on
the libera.chat IRC network in the #hurd channel.