limits: 256 PCI functions, 128 sockets and devices, 64 USB interfaces
The fixed tables that a bigger machine than the one they were written
on reaches first, each raised to where it costs little:
NPCI 64 -> 256 a desktop with cards and Thunderbolt passes 64,
and the devices past it -- often the disk or
NIC last in bus order -- were ignored; 44 KB
NSOCK 32 -> 128 Unix sockets, which a desktop session uses by
the dozen; 4.9 KB each, 470 KB in all
NDEVICE 32 -> 128 120 bytes each
NIFDEV 16 -> 64 one dock is a hub, Ethernet, audio and a card
reader at two or three interfaces apiece
NETIF_MAX 4 -> 8
Device names took one digit and clamped there, so the tenth device of
a kind and every one after it was named "...9". Two digits now.
Checked under QEMU with two bridges of test devices: 68 functions,
all in lspci, /proc/pci and /sys/bus/pci.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
parent
c1af31f75a
commit
4805dbd892
6 changed files with 19 additions and 12 deletions
|
|
@ -53,7 +53,10 @@
|
|||
|
||||
#define PCI_ANY 0xFFFF // wildcard in a match table
|
||||
|
||||
#define NPCI 64 // devices we will remember
|
||||
// Devices we will remember. A laptop has 30 to 60 functions, a desktop with
|
||||
// a couple of cards and Thunderbolt more than 64, and every one past the limit
|
||||
// was ignored -- including whatever disk or NIC came last in bus order.
|
||||
#define NPCI 256
|
||||
|
||||
struct pci_bar {
|
||||
uint64 base; // already masked; 0 means "no BAR here"
|
||||
|
|
|
|||
Loading…
Reference in a new issue