NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

port-alpha/60541: port-alpha: ATA stray IRQs, video fencing instability, and network buffer exhaustion under NetBSD 10.1 Multiuser



>Number:         60541
>Category:       port-alpha
>Synopsis:       port-alpha: ATA stray IRQs, video fencing instability, and network buffer exhaustion under NetBSD 10.1 Multiuser
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    port-alpha-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Aug 05 17:10:00 +0000 2026
>Originator:     technoid@AlphaBox.Atari8us
>Release:        NetBSD 10.1
>Organization:
	
>Environment:
	
	
System: NetBSD AlphaBox.Atari8us 10.1 NetBSD 10.1 (GENERIC) #0: Mon Dec 16 13:08:11 UTC 2024 mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/alpha/compile/GENERIC alpha
Architecture: alpha
Machine: alpha
>Description:
Severe bus synchronization and data fencing instability observed on 
AlphaStation XP900 hardware configuration running NetBSD 10.1 GENERIC 
multiuser baseline. 

The system regularly experiences ATA controller stray IRQs and catastrophic 
video controller synchronization failures during active I/O. The primary 
onboard/workstation video subsystem fails to stabilize due to missing or 
misaligned memory-mapped I/O (MMIO) fences. It appears that the machine-
independent (MI) driver layers fail to enforce native `bus_space_barrier()` 
or `alpha_mb()` execution constraints necessary to handle the EV6's highly 
aggressive, weak memory out-of-order execution model.

Completely germane to this core architectural fencing failure is a critical 
network buffer starvation issue. When standard TCP socket buffers are 
increased at runtime or initialized at boot, the kernel immediately deadlocks 
and throws a "No buffer space available" (ENOBUFS) error, despite the 
presence of 2GB of physical system RAM. Because the unified 10.x network 
allocator lacks explicit hardware memory-ordering fences on the Alpha port, 
the EV6 processor performs out-of-order memory allocations during socket 
creation. This corrupts the kernel's internal mbuf alignment metrics, 
instantly starving the network memory pool and knocking the Intel PRO/1000 
(wm0) interface offline.

To achieve system stability and maintain continuous uptime in a multiuser 
environment, the native workstation video subsystem (Gloria, Powerstorm) had to be bypassed entirely 
by installing a simple, generic unaccelerated legacy x86 PCI VGA card to serve 
as the system console head. 

>How-To-Repeat:
BOot an AlphaStation XP900 (EV6) with a native workstation display adapter 
   (such as TGA2/PowerStorm series) into NetBSD 10.1 multiuser mode.
2. Trigger concurrent disk I/O workloads alongside console terminal output.
3. Observe a flood of ATA controller stray IRQ traps in dmesg, quickly followed 
   by console video driver register corruption, memory fence lockups, or a hard 
   kernel panic.
4. Attempt to scale up TCP network windows (e.g. net.inet.tcp.recvspace=262144) 
   and observe instant socket buffer starvation (ENOBUFS).

>Fix:
The problem appears to stem from the modernization of MI frameworks in 10.x, 
where strict Alpha-specific memory ordering barriers were dropped or omitted 
during the unified network/storage memory allocation overhauls. 

Temporary workaround requires disabling native workstation 3D/2D video hardware 
and inserting a legacy PCI VGA adapter to isolate system console initialization.

A permanent fix requires auditing the Alpha machine-dependent (MD) bus_space 
layers to ensure strict memory-ordering barriers (`alpha_mb()`) are explicitly 
enforced before and after MMIO read/write blocks on shared 32-bit PCI buses.

>Unformatted:
 	
 	



Home | Main Index | Thread Index | Old Index