Age | Commit message (Collapse) | Author | |
---|---|---|---|
2025-02-09 | Restring default_pager_paging_storage to i386 | Samuel Thibault | |
Newer ports won't have it either. | |||
2025-02-09 | mach-defpager: Move default_pager_exception_port declaration to header | Samuel Thibault | |
2025-02-08 | Add names to threads | Samuel Thibault | |
2025-02-04 | mach-defpager: comment on improving on lost data | Samuel Thibault | |
Instead of killing the whole object. | |||
2025-02-04 | mach-defpager: also warn only once about read errors | Samuel Thibault | |
2025-02-04 | mach-defpager: Make it print warnings on out-of-swap | Samuel Thibault | |
To give explanation to processes suddenly crashing with SIGBUS. | |||
2024-12-14 | Add a description comment for the MIG type translation files | Zhaoming Luo | |
Signed-off-by: Zhaoming Luo <zhmingluo@163.com> Message-ID: <20241213005831.748151-1-zhmingluo@163.com> | |||
2024-11-04 | More device_get_status count fixes | Samuel Thibault | |
2024-08-25 | Fix line-buffered stderr | Samuel Thibault | |
mach_open_devstream creates a fully-buffered stream by default. This prevents from seeing various messages. | |||
2023-05-11 | Only use host_get_kernel_version and default_pager_paging_storage_new in x86_64. | Flavio Cruz | |
Also fixed the implementation of default_pager_paging_storage_new in proxy def pager to call into default_pager_paging_storage_new. We can fast track the simplification of the RPC ABI for x86_64 if we don't have MACH_MSG_TYPE_STRING used in RPCs which forces msgt_size to use more than 8 bits. Message-Id: <ZFsk/W+slpAZyTG1@jupiter.tail36e24.ts.net> | |||
2023-05-10 | mach-defpager: Port to x86_64 | Sergey Bugaev | |
Message-Id: <20230508213136.608575-32-bugaevc@gmail.com> | |||
2023-05-04 | Use designated initializers when building mach_msg_type_t | Flavio Cruz | |
Message-Id: <ZFLcIs0iwiC9kQDf@jupiter.tail36e24.ts.net> | |||
2023-05-02 | Use uintptr_t for message payloads. | Flavio Cruz | |
A follow up to 92fad38a043b75ed6b435b3efa574ede91dbe9ee in gnumach. Message-Id: <ZFCNasf9bJ9qj+CG@jupiter.tail36e24.ts.net> | |||
2023-04-25 | Use c_string for default_pager_filename_t to define a new ↵ | Flavio Cruz | |
default_pager_paging_storage RPC. This brings us a bit closer to having all types' msgt_size representable with a single byte. We will be able to avoid mach_msg_type_long_t entirely for x86_64 since mach_msg_type_t can represent long types using a separate field. Message-Id: <ZEdO0Grm2AUw4Tfe@jupiter.tail36e24.ts.net> | |||
2023-04-15 | Remove default_pager_paging_file RPC from default pager | Flavio Cruz | |
The default_pager_paging_storage RPC has already it more than 20 years ago. Given that we want to change the type of default_pager_filename_t to use c_string, we can just remove the unused RPC. Tested that swapon/swapoff still work with the new binaries. Message-Id: <ZDoyNOE0XB77d5xj@mars.tail36e24.ts.net> | |||
2023-04-08 | Use long_integer_t for exception_raise RPCs | Flavio Cruz | |
Also update the crash_dump_task RPC since it gets the subcode from the signal details in Glibc. This should fix the existing build error. Message-Id: <ZDDrnHFHtiLIS53W@jupiter.tail36e24.ts.net> | |||
2023-04-08 | Further modernize Hurd code by enforcing strict prototypes and no implicit ↵ | Flavio Cruz | |
function declarations. Most of the changes land in one of these buckets: * Removed unused declarations. * Used (void) to represent no parameters instead of () which means an undeterminate number of parameters. * Included missing header files whenever necessary (stdlib.h, sys/mman.h, etc) * Typedefed function pointers to be able to fully declare the parameter types. * Added declarations of library functions that are used elsewhere (example is libps/ps.h). * Made functions static whenever they are only used in that file. * Forwarded declarations of some methods that were made static. Message-Id: <ZDD1o7/tVYeZew+G@jupiter.tail36e24.ts.net> | |||
2023-04-03 | Modernize code by removing use of old style definitions. | Flavio Cruz | |
Also add -Werror=old-style-definition to enforce new code. Message-Id: <ZBZ+8xf7GHy2RT/h@jupiter.tail36e24.ts.net> | |||
2023-02-16 | mach-defpager: Add defpager_server_namev0.9.git20230216 | Samuel Thibault | |
To allow e.g. libubsan to detect it should be extra cautious. | |||
2023-02-16 | mach-defpager: Fix crash on pthread_cond_broadcast | Samuel Thibault | |
We need to keep ds locked, otherwise it might disappear before we have a chance to broadcast the condition. | |||
2023-02-15 | Fix accessing bit 31 | Samuel Thibault | |
Shifting (signed) 1 to left 31 positions is undefined behavior. So make this an unsigned so it becomes defined behavior. | |||
2023-01-18 | Fix compiler warning | Svante Signell | |
2023-01-01 | mach-defpager: Fix computing free space | Samuel Thibault | |
2022-12-31 | mach-defpager: document lock ordering | Samuel Thibault | |
2022-12-04 | mach-defpager: assert_backtrace() on panic | Samuel Thibault | |
instead of just exiting: better print a backtrace so we get to know what happened. | |||
2022-12-03 | mach-defpager: Mark as essential | Samuel Thibault | |
So we get to know why the system gets stuck if mach-defpager happens to die. | |||
2022-08-29 | Fix types of read write and readables methods | Etienne Brateau | |
Message-Id: <20220829193617.13481-1-etienne.brateau@gmail.com> | |||
2022-01-17 | Fix const warnings | Samuel Thibault | |
Now that the RPCs have const, this forces us cleaning our const-meant functions. | |||
2022-01-16 | Make RPC input array parameters const | Samuel Thibault | |
This follows mig's cf4bcc3f1435 ("Also add const qualifiers on server side") | |||
2022-01-01 | Fix build warnings | Samuel Thibault | |
No actual behavior change. | |||
2021-12-30 | wire_task_self: Use in various translators | Samuel Thibault | |
wire_task_self() was duplicating mach-defpager's wire_all_memory(), we can just make mach-defpager now use the former (and not mlockall either). Also pci-arbiter and rumpdisk can use it. | |||
2021-08-22 | mach-defpager: Fix error reporting | Samuel Thibault | |
* mach-defpager/main.c (main): After mlockall, report error from errno, not the value returned by mlockall. | |||
2021-08-16 | mach-defpager: Drop kalloc/kfree | Samuel Thibault | |
glibc is removing its malloc hooks, but gnumach now has support for mlockall, which we can just use instead of kalloc/kfree. * mach-defpager/main.c (main): Call mlockall. * mach-defpager/kalloc.c: Remove. * mach-defpager/kalloc.h: Remove. * mach-defpager/default_pager.c: Use malloc/free instead of kalloc/kfree. * mach-defpager/setup.c: Likewise. | |||
2020-11-22 | mach-defpager: Fix warning | Samuel Thibault | |
* mach-defpager/default_pager.h (panic): Add noreturn function attribute. | |||
2020-11-11 | Remove remnants of cthreads | Samuel Thibault | |
* doc/hurd.texi: Index pthread.h instead of cthreads.h * libports/Makefile (SRCS): Drop stubs.c. * libports/stubs.c: Remove file. * mach-defpager/default_pager.c (default_pager): Drop disabled cthreads calls. * pfinet/kmem_cache.c: Fix comment. * proc/stubs.c: Fix comments. | |||
2020-03-31 | Fix build with -fno-common | Samuel Thibault | |
which will be the default in gcc-10. * acpi/acpifs.h (fs, acpifs_maptime): Add extern qualifier. * boot/private.h (verbose): Likewise. * eth-multiplexer/netfs_impl.h (multiplexer_maptime): Likewise. * eth-multiplexer/vdev.h (port_bucket, vdev_portclass): Likewise. * exec/priv.h (port_bucket, execboot_portclass): Likewise. * ext2fs/ext2fs.h (sblock, sblock_dirty, block_size, log2_block_size, log2_dev_blocks_per_fs_block, log2_stat_blocks_per_fs_block, zeroblock, frag_size, frags_per_block, inodes_per_block, itb_per_group, db_per_group, desc_per_block, addr_per_block, groups_count, node_to_page_lock, generation_lock, next_generation, group_desc_image, global_pokel, modified_global_blocks, use_xattr_translator_records): Likewise. * hostmux/hostmux.h (hostmux_maptime): Likewise. * isofs/isofs.h (host_name, mounted_on, disk_image, disk_image_len, logical_block_size, sblock): Likewise. * libdiskfs/diskfs.h (diskfs_shortcut_symlink, diskfs_shortcut_chrdev, diskfs_shortcut_blkdev, diskfs_shortcut_fifo, diskfs_shortcut_ifsock, diskfs_create_symlink_hook, diskfs_read_symlink_hook): Likewise. * libnetfs/callbacks.h (_netfs_translator_callback1, _netfs_translator_callback2): Likewise. * libnetfs/priv.h (netfs_mtime): Likewise. * libpager/priv.h (_pager_class): Likewise. * libtrivfs/trivfs.h (trivfs_check_access_hook, trivfs_check_open_hook, trivfs_open_hook, trivfs_protid_create_hook, trivfs_peropen_create_hook, trivfs_protid_destroy_hook, trivfs_peropen_destroy_hook, trivfs_getroot_hook): Likewise. * lwip/lwip-hurd.h (lwip_bucket, socketport_class, addrport_class, shutdown_notify_class, lwip_protid_portclasses, lwip_cntl_portclasses, lwip_bootstrap_portclass, fsys_identity, lwipcntl, lwip_owner, lwip_group): Likewise. * lwip/port/include/netif/hurdtunif.h (tunnel_cntlclass, tunnel_class): Likewise. * nfs/nfs.h (main_udp_socket, hostname, mapped_time): Likewise. * nfsd/nfsd.h (mapped_time, authserver): Likewise. * pci-arbiter/pcifs.h (fs, pcifs_maptime): Likewise. * pci-arbiter/startup.h (pci_shutdown_notify_class, arrange_shutdown_notification): Likewise. * pfinet/pfinet.h (pfinet_bucket, addrport_class, socketport_class, fsys_identity, pfinetctl, pfinet_owner, pfinet_group): Likewise. * pflocal/sserver.h (sock_port_bucket): Likewise. * proc/proc.h (authserver, self_proc, init_proc, startup_proc, proc_bucket, proc_class, generic_port_class, exc_class, generic_port, kernel_proc, global_lock): Likewise. * term/term.h (termstate, termflags, global_lock, carrier_alert, select_alert, pty_select_alert, term_bucket, tty_cntl_class, tty_class, cttyid_class, pty_class, pty_cntl_class, termctl, ptyctl, inputq, rawq, outputq, remote_input_mode, external_processing, term_owner, term_group, term_mode, bottom): Likewise. * usermux/usermux.h (usermux_maptime): Likewise. * utils/msgids.h (msgid_argp): Likewise. * libdiskfs/priv.h (_diskfs_mtime): Remove definition. * lwip/options.h (lwip_argp): Add prototype. * mach-defpager/priv.h (partitions): Name structure. (all_partitions): Add extern qualifier. * acpi/main.c (acpifs_maptime, fs): New variables. * exec/main.c (port_bucket, execboot_portclass): Likewise. * ext2fs/ext2fs.c (sblock, sblock_dirty, block_size, log2_block_size, log2_dev_blocks_per_fs_block, log2_stat_blocks_per_fs_block, frag_size, frags_per_block, inodes_per_block, itb_per_group, db_per_group, desc_per_block, addr_per_block, groups_count, next_generation, group_desc_image, global_pokel, use_xattr_translator_records): Likewise. * isofs/main.c (host_name, mounted_on, logical_block_size, sblock): Likewise. * libpager/pager-create.c (_pager_class): Likewise. * lwip/port/netif/hurdtunif.c (tunnel_cntlclass, tunnel_class): Likewise. * mach-defpager/default_pager.c (all_partitions): Likewise. * nfs/main.c (main_udp_socket, hostname, mapped_time): Likewise. * nfsd/main.c (mapped_time, authserver): Likewise. * pci-arbiter/main.c (fs, pcifs_maptime): Likewise. * pci-arbiter/startup.c (*pci_shutdown_notify_class): Likewise. * pfinet/main.c (pfinetctl, pfinet_owner, pfinet_group, pfinet_bucket, addrport_class, socketport_class, fsys_identity): Likewise. * proc/main.c (authserver, self_proc, init_proc, startup_proc, proc_bucket, proc_class, generic_port_class, exc_class, generic_port, kernel_proc, global_lock): Likewise. * term/main.c (termstate, termflags, global_lock, carrier_alert, select_alert, pty_select_alert, term_bucket, tty_cntl_class, tty_class, cttyid_class, pty_class, pty_cntl_class, termctl, ptyctl, outputq, remote_input_mode, external_processing, term_owner, term_group, term_mode, bottom): Likewise. * usermux/usermux.c (usermux_mapped_time): Rename to usermux_maptime. * lwip/main.c: Include "options.h". (lwip_argp, netif_list): Remove declarations. (lwip_bucket, socketport_class, addrport_class, shutdown_notify_class, lwip_cntl_portclasses, lwip_bootstrap_portclass, lwip_owner, lwip_group, fsys_identity, lwipcntl): New variables. * eth-multiplexer/multiplexer.c (multiplexer_maptime): Add variable. * hostmux/hostmux.c (hostmux_mapped_time): Rename variable to hostmux_maptime * libdiskfs/extra-version.c: Rename file to... * libdiskfs/priv.c: ... new file. (diskfs_shortcut_symlink, diskfs_shortcut_chrdev, diskfs_shortcut_blkdev, diskfs_shortcut_fifo, diskfs_shortcut_ifsock, diskfs_create_symlink_hook, diskfs_read_symlink_hook): Add weak variables. * libdiskfs/Makefile (OTHERSRCS): Replace extra-version.c with priv.c. * libtrivfs/priv.c: New file. * libtrivfs/Makefile (OTHERSRCS): Add priv.c * libcons/extra-version.c: Rename file to... * libcons/priv.c: ... new file. * libcons/Makefile (SRCS): Replace extra-version.c with priv.c. Fix build with # | |||
2017-08-05 | Use our own variant of 'assert' and 'assert_perror'. | Justus Winter | |
Our variants print stack traces on failures. This will make locating errors much easier. | |||
2016-12-26 | mach-defpager: fix pager leak | Richard Braun | |
The server code for no-senders notifications wasn't updated to expect protected payloads. * mach-defpager/default_pager.c (default_pager_no_senders): Accept the pager structure directly instead of its port name and update body accordingly. (default_pager_no_senders): Accept protected payloads in addition to send-once rights and fetch the pager structure according to the message type. | |||
2016-12-24 | mach-defpager: make the default pager use vm_wire_all | Richard Braun | |
The vm_wire_all call was recently added to GNU Mach so that the default pager doesn't depend on glibc malloc hooks any more. * mach-defpager/default_pager.c (start_default_pager_thread): Remove call to wire_memory. * mach-defpager/kalloc.c (kget_space): Likewise. * mach-defpager/wiring.c: Include mach/gnumach.h. (wire_memory): Remove function. (wire_all_memory): Replace call to wire_memory with a direct call to vm_wire, call vm_wire_all after the fixup loop. (vm_allocate, __vm_allocate): Remove functions. * mach-defpager/wiring.h (wire_memory): Remove function. | |||
2016-12-10 | Remove support for the deprecated external memory interface. | Justus Winter | |
* libpager/stubs.c (_pager_S_memory_object_data_write): Drop stub. * mach-defpager/default_pager.c (seqnos_memory_object_data_write): Drop function. | |||
2016-11-06 | mach-defpager: Fix daemonization. | Justus Winter | |
* mach-defpager/main.c (main): Do not hang if the child dies. | |||
2016-08-20 | mach-defpager: Add missing unlock | Brent W. Baccala | |
* mach-defpager/default_pager.c (destroy_paging_partition): Add missing unlock when destroying partition fails. | |||
2016-08-20 | mach-defpager: Fix debugging prints formats | Brent W. Baccala | |
* mach-defpager/default_pager.c (pager_dealloc_page, pager_read_offset, pager_write_offset, default_read, default_write, destroy_paging_partition, seqnos_memory_object_terminate, seqnos_memory_object_data_request, seqnos_memory_object_data_initialize): Fix debugging prints formats. | |||
2016-05-30 | Complete allocation hooks | Samuel Thibault | |
* mach-defpager/kalloc.c (realloc_hook, memalign_hook): New functions. (init_hook): Set __realloc_hook to realloc_hook and __memalign_hook to memalign_hook. | |||
2016-05-30 | Revert "drop the deprecated malloc/free hooks in hurd/mach-defpager" | Samuel Thibault | |
This reverts commit 8c49801c8f7e3f800cabedf8fca8ccec3cf35a22. The malloc hook is needed for calloc. | |||
2016-05-19 | mach-defpager: fix panic invocation | Justus Winter | |
* mach-defpager/default_pager.c (default_pager_thread): Fix panic invocation. | |||
2016-04-19 | mach-defpager: fix error handling | Justus Winter | |
* mach-defpager/default_pager.c (S_default_pager_storage_info): Fix error handling. | |||
2016-03-16 | Add getting swap information from swapon and procfs | Samuel Thibault | |
* hurd/default_pager.defs (default_pager_storage_info): New RPC. * hurd/default_pager_reply.defs: Skip default_pager_storage_info RPC. * hurd/default_pager_types.h: Include <mach/machine/vm_types.h>. (vm_size_array_t): New type. * mach-defpager/priv.h (part): Add `name' field. * mach-defpager/default_pager.c (new_partition): Allocate and fill `part->name' field. Free it on error. (destroy_paging_partition): Free `part->name' field. (S_default_pager_storage_info): New function. * procfs/Makefile (SRCS): Add default_pagerUser.c. * procfs/rootdir.c: Include "default_pager_U.h". (rootdir_gc_swaps): New function. (rootdir_entries): Add "swaps" entry. * sutils/swapon.c: Include <argz.h> (show): New variable. (options): Add --show/-S option. (def_pager, dev_master): New variables (swaponoff): Move getting `def_pager' to... (get_def_pager): ... new function. (main): Support 'S' option. * trans/proxy-defpager.c (S_default_pager_storage_info): New function. | |||
2016-02-07 | mach-defpager: link dynamically | Justus Winter | |
* mach-defpager/Makefile (LDFLAGS): Drop. | |||
2016-01-01 | fix mach-defpager static linking | Flavio Cruz | |
* mach-defpager/Makefile: Allow multiple definitions for mach-defpager. |