feat: VMware SMP, network perf, btop improvements#259
Merged
Conversation
- DNS: try Google (8.8.8.8) first instead of hypervisor-specific servers. All platforms NAT/bridge to host networking, so Google is universally reachable. Avoids 5s timeout per unreachable hypervisor DNS server. - DNS: reduce per-server timeout from 5s to 500ms with millisecond precision (hypervisor DNS responds in <50ms, public DNS in <200ms). - HTTP: resolve_multi() delegates to resolve_auto() — single DNS server order, no duplicate logic. - Tracing: DNS logs each server attempt with elapsed time; HTTP logs DNS, TCP connect, and response receive phases with cumulative timing. All guarded by #[cfg(feature = "std")]. - ARM64: increase network RX poll from 20Hz to 100Hz (every 10th tick instead of 50th) for 10ms max latency instead of 50ms. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- boot.S: Add SPAN bit to SCTLR_EL1 (don't auto-set PAN on exception entry) and explicitly clear PAN on both primary and secondary CPUs. VMware sets PAN=1 by default, causing permission faults on user-mapped page accesses from kernel code. - boot.S: Compute relocation delta (x21) on secondary CPU entry for VMware where RAM starts at 0x80000000 vs link address 0x40080000. Apply delta to all symbol references from literal pools (SMP_UART_PHYS, SMP_STACK_BASE_PHYS, exception_vectors_boot, SMP_MAIR/TCR/TTBR). - smp.rs: Add ram_base_offset() to SECONDARY_CPU_ENTRY_PHYS for correct physical entry point on VMware. - boot.S: Secondary CPUs now initialize SCTLR_EL1 to match primary (LSMAOE, nTLSMD, SPAN, EOS) for PSCI direct-EL1 path. - handlers.rs: Fix sys_fcntl to use single mutable borrow instead of drop-and-reacquire pattern, return EAGAIN instead of EBADF on lock contention. - procfs: Add global_ticks to /proc/stat for accurate CPU% in btop. - btop: Use global_ticks for CPU% delta (matches per-process tick scale), filter out Terminated processes from display. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Test plan
🤖 Generated with Claude Code