commit - 2257f59c3fcad7f544c256ad2c936495981a99cd
commit + 7c5aef6eb2cc265bf634fbc9bcfb007874634449
blob - de0f26dbb2bb2212631b353aaacf781ef3e337a2
blob + ae6b92d5baf6e9b1d82833ce41806fbcfc8b5a55
--- kernel/user/netd_server.c
+++ kernel/user/netd_server.c
{
struct elf_program prog;
struct elf_image img;
+ bool from_initrd = false;
if (netd_ready)
return 0;
#endif
return -1;
}
+ from_initrd = true;
+ (void)from_initrd; /* silence unused in non-debug builds */
if (elf_load_program(&img, &prog) != 0) {
#ifdef LENIX_DEBUG
printk("* user-netd: ELF load failed\n");
blob - 42db49d70dbb0c0689de3419e9d3a647f8413dfa
blob + 11e82fd434dc1869dbd79fba712a494e7f637107
--- kernel/user/pci_server.c
+++ kernel/user/pci_server.c
{
struct elf_program prog;
struct elf_image img;
+ bool from_initrd = false;
if (pci_ready)
return 0;
#endif
return -1;
}
+ from_initrd = true;
+ (void)from_initrd; /* silence unused in non-debug builds */
if (elf_load_program(&img, &prog) != 0) {
#ifdef LENIX_DEBUG
printk("* pci-daemon: ELF load failed\n");
blob - 4eb2231861efe2f0ce202e732d959d1463bc3771
blob + e78341ae506b0b9835aa5c14dec777cca5b4786a
--- kernel/user/pty_supervisor.c
+++ kernel/user/pty_supervisor.c
{
struct elf_program prog;
struct elf_image img;
+ bool from_initrd = false;
if (pty_ready)
return 0;
#endif
return -1;
}
+ from_initrd = true;
+ (void)from_initrd; /* suppress unused in non-debug builds */
if (elf_load_program(&img, &prog) != 0) {
#ifdef LENIX_DEBUG
printk("* ptyctl: ELF load failed\n");
blob - ae0079299e09c8ef2bf76cc3f7eb5c71fe508419
blob + 6317879ae6b719d91dda616a695627e31ee70225
--- kernel/user/sock_tcp_server.c
+++ kernel/user/sock_tcp_server.c
{
struct elf_program prog;
struct elf_image img;
+ bool from_initrd = false;
if (sock_tcp_ready)
return 0;
#endif
return -1;
}
+ from_initrd = true;
+ (void)from_initrd; /* silence unused in non-debug builds */
if (elf_load_program(&img, &prog) != 0) {
#ifdef LENIX_DEBUG
printk("* user-sock.tcp: ELF load failed\n");
blob - 68d954181b0f0d87e1ad6669edb160465c5993df
blob + af341b07ed902896242ddf3b2f9581a03a3ee57a
--- kernel/user/sock_udp_server.c
+++ kernel/user/sock_udp_server.c
{
struct elf_program prog;
struct elf_image img;
+ bool from_initrd = false;
if (sock_udp_ready)
return 0;
#endif
return -1;
}
+ from_initrd = true;
+ (void)from_initrd; /* silence unused in non-debug builds */
if (elf_load_program(&img, &prog) != 0) {
#ifdef LENIX_DEBUG
printk("* user-sock.udp: ELF load failed\n");
blob - d6bbf7f2a026bd7663b9c37cfb2458759c21c19f
blob + 768c4f6a04501c3621e0023a3e78238a919658dd
--- servers/block/virtio-blk/main.c
+++ servers/block/virtio-blk/main.c
spins = 0;
continue;
}
- if (spins > SPIN_LIMIT) {
+ if (spins > SPIN_LIMIT * 10) {
log_line(LOG_PREFIX "transfer timeout waiting for used ring");
+ log_hex16(LOG_PREFIX "last_used_idx ", drv->last_used_idx);
+ log_hex16(LOG_PREFIX "used->idx ", drv->used->idx);
+ log_hex8(LOG_PREFIX "status_ptr ", *drv->status_ptr);
+ /* Do NOT touch last_used_idx - that would allow next transfer to
+ * overwrite descriptors while device is still using them.
+ * Just return error and let caller handle it. */
goto out;
}
}
blob - ec91acac94649ed82ad80d533dc0f1783ab5ad12
blob + bf708e59d4666464ef48da1ba5655b227d6c3686
--- servers/fs/ext2/main.c
+++ servers/fs/ext2/main.c
/* Data blocks start after the inode table */
first_data_block_in_group = inode_table_end;
+ #ifdef LENIX_DEBUG
printf("[ext2] allocate_block: bg_inode_table=%u, inode_table_blocks=%u, first_data_block=%u\n",
inode_table_block, inode_table_blocks, first_data_block_in_group);
+ #endif
/* Scan bitmap for first free block (bit = 0) */
for (uint32_t i = first_data_block_in_group; i < ext2_ctx.blocks_per_group; i++) {
blob - c88e6e01ae3903be30f9f7c06931c9a778629705
blob + 5c38d771a413454cf400a92417da45e642ddfd73
--- servers/fs/vfs/main.c
+++ servers/fs/vfs/main.c
/*
* Best-effort close: cap wait to avoid stalling VFS if the backend
* never responds (e.g., first boot races). Ignore the result.
+ * Increased timeout from 1000ms to 30000ms to handle mailbox backlog
+ * during heavy I/O (e.g., debug logging floods console mailbox).
*/
(void)ipc_service_request_issue_timeout(&client, &fs_request_buffer,
sizeof(fs_request_buffer), &fs_response_buffer,
- sizeof(fs_response_buffer), 1000); /* very short budget; fail fast */
+ sizeof(fs_response_buffer), 30000); /* generous timeout for backlog */
}
static void
vfs_respond_mkfifo(req);
break;
default:
- puts("[vfs] unknown opcode");
+ puts("[vfs] unknown opcode=");
+ vfs_write_u64(req->opcode);
+ puts(" token=");
+ vfs_write_u64(req->token);
+ puts("\n");
break;
}
}