multiprocessor kernel problem
Subsystems (2)
I have 2.4.0 test 10 and test 11 installed on a multiprocessor (Intel) machine. I have tried both test versions of the kernel. I configured the kernel for single
and multi processor. When I boot single processor, iptables will run fine. When I boot the machine with the multiprocessor kernel and run iptables, the kernel dumps several pages of hex and the final two lines of output are:
Killing interrupt handler
scheduling in interrupt
The kernel logs nothing and you must reset the machine to bring it back up. I believe this is a kernel issue rather than an iptables issue.
Does anyone have experience with iptables on a multiprocessor machine?
I am not currently subscribed to this list, so may I please be personally CC'ed with the
answers/comments posted to the list? I have also submitted this to the netfilter list of which I am
a member.
Roger Crandell
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
[Roger Crandell]
Quoted 6 lines
When I boot the machine with the multiprocessor kernel and run iptables, the kernel dumps several pages of hex and the final two lines of output are:
Killing interrupt handler
scheduling in interrupt
Look through the "several pages of hex" for any number in square + angle brackets i.e. [<xxxxxxxx>] (particularly the EIP and the stack), and write these down. Then run these numbers through ksymoops.
Peter
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 4 lines · Roger Crandell
Killing interrupt handler
scheduling in interruptThe kernel logs nothing and you must reset the machine to bring it back
linux/Documentation/oops-tracing.txtlinux/Documentation/serial-console.txt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 11 lines · Roger Crandell
I have 2.4.0 test 10 and test 11 installed on a multiprocessor (Intel) machine. I have tried both test versions of the kernel. I configured the kernel for single
and multi processor. When I boot single processor, iptables will run fine. When I boot the machine with the multiprocessor kernel and run iptables, the kernel dumps several pages of hex and the final two lines of output are:Killing interrupt handler
scheduling in interrupt
Quoted 6 lines
The kernel logs nothing and you must reset the machine to bring it back up. I believe this is a kernel issue rather than an iptables issue.
Does anyone have experience with iptables on a multiprocessor machine?
i tried it about a month back with -test11. my quad ppro simply locked up and died when i issued "iptables -nL". i got no logs just a freeze. perhaps only my keyboard mouse and NIC died and the rest of the machine kept on running. i posted a couple of times to the netfilter mailing list but got zero response.
Signature · 7 lines
J o h a n K u l l s t a m [[email protected]] Don't Fear the Penguin! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] Please read the FAQ at http://www.tux.org/lkml/
In message <[email protected]> you write:
Quoted 11 lines
I have 2.4.0 test 10 and test 11 installed on a multiprocessor (Intel) machine. I have tried both test versions of the kernel. I configured the kernel for single
and multi processor. When I boot single processor, iptables will run fine. When I boot the machine with the multiprocessor kernel and run iptables, the kernel dumps several pages of hex and the final two lines of output are:Killing interrupt handler
scheduling in interrupt
My development box (running test10pre5) is SMP, and it works fine. I haven't updated to the latest kernel version because I like my filesystems in one piece, and the netfilter code hasn't changed.
What is your kernel configuration, and iptables version? Have you patched the kernel?
Thanks for the report,
Rusty.
--
Hacking time.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 10 lines · Rusty Russell
In message <[email protected]> you write:
Quoted 9 lines
I have 2.4.0 test 10 and test 11 installed on a multiprocessor (Intel) machine. I have tried both test versions of the kernel. I configured the kernel for single
and multi processor. When I boot single processor, iptables will run fine. When I boot the machine with the multiprocessor kernel and run iptables, the kernel dumps several pages of hex and the final two lines of output are:
Quoted 4 lines
Quoted 2 lines
Killing interrupt handler
scheduling in interruptMy development box (running test10pre5) is SMP, and it works fine.
yes, but is it a dual machine or is it an N-way SMP with N > 2? the other guy with iptables/SMP problems also has a quad box. could this perhaps be a problem only when you have more than two processors?
Quoted 6 lines
I
haven't updated to the latest kernel version because I like my filesystems in one piece, and the netfilter code hasn't changed.What is your kernel configuration, and iptables version? Have you patched the kernel?
i tried 2.4.0-test10 (no patches) with iptables 1.1.2. this is an alr revolution quad6 (4 ppros).
i posted this to the netfilter mailing list a while back. <URL:http://lists.samba.org/pipermail/netfilter/2000-November/005838.html>
Signature · 7 lines
J o h a n K u l l s t a m [[email protected]] Don't Fear the Penguin! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] Please read the FAQ at http://www.tux.org/lkml/
Rusty,
I have two identical machines and the problem exists on both. The machines have Megaplex II quad Pentium III Xeon PCI ISA system boards. I have 550 Pentium III Xeon, 100/512 processors. I am running test11 which I downloaded a few days ago. I have installed no patches. My iptables is 1.1.2.
I compiled two version of the kernel, one is single processor and one is SMP. I can successfully run iptables on the single processor kernel and I can also get it to work with two processors using the SMP kernel. With 4 processors the system boots fine, but when I try to run iptables with 4 processors the system freezes solid. It does not write anything to the system log.
We currently have iptables working on a single processor machine in our network. It typically tracks an average of 13000 connections with peaks reaching 21000 connections. It works flawlessly. We want to upgrade from 10/100 interfaces to GigE. We hoped to use the 4 processor machines to do this.
I am attaching my kernel config file. If you have any ideas how to get all four processors working please let me know.
Thanks
Roger
Quoted 17 lines · Rusty Russell
In message <[email protected]> you write:
Quoted 11 lines
I have 2.4.0 test 10 and test 11 installed on a multiprocessor (Intel) machine. I have tried both test versions of the kernel. I configured the kernel for single
and multi processor. When I boot single processor, iptables will run fine. When I boot the machine with the multiprocessor kernel and run iptables, the kernel dumps several pages of hex and the final two lines of output are:Killing interrupt handler
scheduling in interruptMy development box (running test10pre5) is SMP, and it works fine. I haven't updated to the latest kernel version because I like my filesystems in one piece, and the netfilter code hasn't changed.
Quoted 7 lines
What is your kernel configuration, and iptables version? Have you patched the kernel?
Thanks for the report,
Rusty.
--
Hacking time.
#
# Automatically generated by make menuconfig: don't edit #CONFIG_X86=yCONFIG_ISA=y
# CONFIG_SBUS is not setCONFIG_UID16=y
#
# Code maturity level options
#
# CONFIG_EXPERIMENTAL is not set
#
# Loadable module support
#CONFIG_MODULES=yCONFIG_MODVERSIONS=yCONFIG_KMOD=y
#
# Processor type and features
#
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not setCONFIG_M686FXSR=y
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not setCONFIG_X86_WP_WORKS_OK=yCONFIG_X86_INVLPG=yCONFIG_X86_CMPXCHG=yCONFIG_X86_BSWAP=yCONFIG_X86_POPAD_OK=yCONFIG_X86_L1_CACHE_SHIFT=5CONFIG_X86_TSC=yCONFIG_X86_GOOD_APIC=yCONFIG_X86_PGE=yCONFIG_X86_USE_PPRO_CHECKSUM=yCONFIG_X86_FXSR=yCONFIG_X86_XMM=y
# CONFIG_TOSHIBA is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not setCONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_MTRR is not setCONFIG_SMP=yCONFIG_HAVE_DEC_LOCK=y
#
# General setup
#CONFIG_NET=y
# CONFIG_VISWS is not setCONFIG_X86_IO_APIC=yCONFIG_X86_LOCAL_APIC=yCONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not setCONFIG_PCI_GOANY=yCONFIG_PCI_BIOS=yCONFIG_PCI_DIRECT=yCONFIG_PCI_NAMES=y
# CONFIG_EISA is not set
# CONFIG_MCA is not setCONFIG_HOTPLUG=y
#
# PCMCIA/CardBus support
#
# CONFIG_PCMCIA is not setCONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not setCONFIG_SYSCTL=yCONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not setCONFIG_BINFMT_AOUT=yCONFIG_BINFMT_ELF=yCONFIG_BINFMT_MISC=y
# CONFIG_PM is not set
# CONFIG_ACPI is not set
# CONFIG_APM is not set
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
# CONFIG_PARPORT is not set
#
# Plug and Play configuration
#CONFIG_PNP=yCONFIG_ISAPNP=y
#
# Block devices
#CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_INITRD is not set
#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_RAID0 is not set
# CONFIG_MD_RAID1 is not set
# CONFIG_MD_RAID5 is not set
# CONFIG_BLK_DEV_LVM is not set
# CONFIG_LVM_PROC_FS is not set
#
# Networking options
#CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not setCONFIG_NETLINK=yCONFIG_RTNETLINK=y
# CONFIG_NETLINK_DEV is not setCONFIG_NETFILTER=yCONFIG_NETFILTER_DEBUG=y
# CONFIG_FILTER is not setCONFIG_UNIX=yCONFIG_INET=y
# CONFIG_IP_MULTICAST is not setCONFIG_IP_ADVANCED_ROUTER=yCONFIG_RTNETLINK=yCONFIG_NETLINK=y
# CONFIG_IP_MULTIPLE_TABLES is not set
# CONFIG_IP_ROUTE_MULTIPATH is not set
# CONFIG_IP_ROUTE_TOS is not set
# CONFIG_IP_ROUTE_VERBOSE is not set
# CONFIG_IP_ROUTE_LARGE_TABLES is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_INET_ECN is not set
# CONFIG_SYN_COOKIES is not set
#
# IP: Netfilter Configuration
#
# CONFIG_IP_NF_CONNTRACK is not setCONFIG_IP_NF_IPTABLES=y
# CONFIG_IP_NF_MATCH_LIMIT is not set
# CONFIG_IP_NF_MATCH_MAC is not set
# CONFIG_IP_NF_MATCH_MARK is not setCONFIG_IP_NF_MATCH_MULTIPORT=y
# CONFIG_IP_NF_MATCH_TOS is not setCONFIG_IP_NF_FILTER=y
# CONFIG_IP_NF_TARGET_REJECT is not set
# CONFIG_IP_NF_MANGLE is not setCONFIG_IP_NF_TARGET_LOG=y
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_DECNET is not set
# CONFIG_BRIDGE is not set
#
# Telephony Support
#
# CONFIG_PHONE is not set
# CONFIG_PHONE_IXJ is not set
#
# ATA/IDE/MFM/RLL support
#CONFIG_IDE=y
#
# IDE, ATA and ATAPI Block devices
#CONFIG_BLK_DEV_IDE=y
# CONFIG_BLK_DEV_HD_IDE is not set
# CONFIG_BLK_DEV_HD is not setCONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
# CONFIG_BLK_DEV_IDEDISK_IBM is not set
# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
# CONFIG_BLK_DEV_IDEDISK_WD is not set
# CONFIG_BLK_DEV_COMMERIAL is not set
# CONFIG_BLK_DEV_TIVO is not set
# CONFIG_BLK_DEV_IDECS is not setCONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_BLK_DEV_IDESCSI is not setCONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
# CONFIG_BLK_DEV_ISAPNP is not setCONFIG_BLK_DEV_RZ1000=yCONFIG_BLK_DEV_IDEPCI=yCONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_IDEDMA_PCI is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_IDEDMA_PCI_AUTO is not set
# CONFIG_BLK_DEV_IDEDMA is not set
# CONFIG_IDEDMA_PCI_WIP is not set
# CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_AEC62XX_TUNING is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_WDC_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD7409 is not set
# CONFIG_AMD7409_OVERRIDE is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_HPT34X_AUTODMA is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_PIIX is not set
# CONFIG_PIIX_TUNING is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_PDC202XX is not set
# CONFIG_PDC202XX_BURST is not set
# CONFIG_BLK_DEV_OSB4 is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_CHIPSETS is not set
# CONFIG_IDEDMA_AUTO is not set
# CONFIG_DMA_NONPCI is not setCONFIG_BLK_DEV_IDE_MODES=y
#
# SCSI support
#CONFIG_SCSI=yCONFIG_BLK_DEV_SD=yCONFIG_SD_EXTRA_DEVS=40
# CONFIG_CHR_DEV_ST is not setCONFIG_BLK_DEV_SR=y
# CONFIG_BLK_DEV_SR_VENDOR is not setCONFIG_SR_EXTRA_DEVS=2
# CONFIG_CHR_DEV_SG is not setCONFIG_SCSI_DEBUG_QUEUES=yCONFIG_SCSI_MULTI_LUN=yCONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
#
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AHA1740 is not setCONFIG_SCSI_AIC7XXX=yCONFIG_AIC7XXX_TCQ_ON_BY_DEFAULT=yCONFIG_AIC7XXX_CMDS_PER_DEVICE=8
# CONFIG_AIC7XXX_PROC_STATS is not setCONFIG_AIC7XXX_RESET_DELAY=5
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_MEGARAID is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_CPQFCTS is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_DMA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_NCR53C7xx is not set
# CONFIG_SCSI_NCR53C8XX is not set
# CONFIG_SCSI_SYM53C8XX is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PCI2000 is not set
# CONFIG_SCSI_PCI2220I is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_SEAGATE is not set
# CONFIG_SCSI_SIM710 is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_I2O_PCI is not set
# CONFIG_I2O_BLOCK is not set
# CONFIG_I2O_LAN is not set
# CONFIG_I2O_SCSI is not set
# CONFIG_I2O_PROC is not set
#
# Network device support
#CONFIG_NETDEVICES=y
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set
#
# Ethernet (10 or 100Mbit)
#CONFIG_NET_ETHERNET=yCONFIG_NET_VENDOR_3COM=yCONFIG_EL1=yCONFIG_EL2=yCONFIG_ELPLUS=y
# CONFIG_EL16 is not setCONFIG_EL3=yCONFIG_3C515=y
# CONFIG_ELMC is not set
# CONFIG_ELMC_II is not setCONFIG_VORTEX=y
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not setCONFIG_NET_ISA=y
# CONFIG_E2100 is not set
# CONFIG_EEXPRESS is not set
# CONFIG_EEXPRESS_PRO is not set
# CONFIG_HPLAN_PLUS is not set
# CONFIG_HPLAN is not set
# CONFIG_ETH16I is not set
# CONFIG_NE2000 is not set
# CONFIG_SK_G16 is not setCONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_CS89x0 is not setCONFIG_TULIP=y
# CONFIG_DE4X5 is not set
# CONFIG_DGRS is not set
# CONFIG_DM9102 is not set
# CONFIG_EEPRO100 is not set
# CONFIG_EEPRO100_PM is not set
# CONFIG_LNE390 is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_NE3210 is not set
# CONFIG_ES3210 is not set
# CONFIG_8139TOO is not set
# CONFIG_RTL8129 is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_HAPPYMEAL is not set
# CONFIG_NET_POCKET is not set
#
# Ethernet (1000 Mbit)
#CONFIG_ACENIC=y
# CONFIG_ACENIC_OMIT_TIGON_I is not set
# CONFIG_HAMACHI is not set
# CONFIG_SK98LIN is not set
# CONFIG_FDDI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set
#
# Token Ring devices
#
# CONFIG_TR is not set
# CONFIG_NET_FC is not set
#
# Wan interfaces
#
# CONFIG_WAN is not set
#
# Amateur Radio support
#
# CONFIG_HAMRADIO is not set
#
# IrDA (infrared) support
#
# CONFIG_IRDA is not set
#
# ISDN subsystem
#
# CONFIG_ISDN is not set
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set
#
# Input core support
#
# CONFIG_INPUT is not set
#
# Character devices
#CONFIG_VT=yCONFIG_VT_CONSOLE=yCONFIG_SERIAL=yCONFIG_SERIAL_CONSOLE=y
# CONFIG_SERIAL_EXTENDED is not set
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_UNIX98_PTYS is not set
#
# I2C support
#
# CONFIG_I2C is not set
#
# Mice
#CONFIG_BUSMOUSE=y
# CONFIG_ATIXL_BUSMOUSE is not set
# CONFIG_LOGIBUSMOUSE is not setCONFIG_MS_BUSMOUSE=yCONFIG_MOUSE=yCONFIG_PSMOUSE=y
# CONFIG_82C710_MOUSE is not set
# CONFIG_PC110_PAD is not set
#
# Joysticks
#
# CONFIG_JOYSTICK is not set
# CONFIG_QIC02_TAPE is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_INTEL_RNG is not set
# CONFIG_NVRAM is not set
# CONFIG_RTC is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
# CONFIG_AGP is not setCONFIG_DRM=yCONFIG_DRM_TDFX=y
# CONFIG_DRM_GAMMA is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_I810 is not set
# CONFIG_DRM_MGA is not set
#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
#
# File systems
#
# CONFIG_QUOTA is not set
# CONFIG_AUTOFS_FS is not setCONFIG_AUTOFS4_FS=y
# CONFIG_ADFS_FS is not set
# CONFIG_ADFS_FS_RW is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_BFS_FS is not setCONFIG_FAT_FS=y
# CONFIG_MSDOS_FS is not set
# CONFIG_UMSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_JFFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_RAMFS is not setCONFIG_ISO9660_FS=y
# CONFIG_JOLIET is not set
# CONFIG_MINIX_FS is not set
# CONFIG_NTFS_FS is not set
# CONFIG_NTFS_RW is not set
# CONFIG_HPFS_FS is not setCONFIG_PROC_FS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVFS_MOUNT is not set
# CONFIG_DEVFS_DEBUG is not set
# CONFIG_DEVPTS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_QNX4FS_RW is not set
# CONFIG_ROMFS_FS is not setCONFIG_EXT2_FS=y
# CONFIG_SYSV_FS is not set
# CONFIG_SYSV_FS_WRITE is not set
# CONFIG_UDF_FS is not set
# CONFIG_UDF_RW is not set
# CONFIG_UFS_FS is not set
# CONFIG_UFS_FS_WRITE is not set
#
# Network File Systems
#
# CONFIG_CODA_FS is not set
# CONFIG_NFS_FS is not set
# CONFIG_NFS_V3 is not set
# CONFIG_ROOT_NFS is not set
# CONFIG_NFSD is not set
# CONFIG_NFSD_V3 is not set
# CONFIG_SUNRPC is not set
# CONFIG_LOCKD is not set
# CONFIG_SMB_FS is not set
# CONFIG_NCP_FS is not set
# CONFIG_NCPFS_PACKET_SIGNING is not set
# CONFIG_NCPFS_IOCTL_LOCKING is not set
# CONFIG_NCPFS_STRONG is not set
# CONFIG_NCPFS_NFS_NS is not set
# CONFIG_NCPFS_OS2_NS is not set
# CONFIG_NCPFS_SMALLDOS is not set
# CONFIG_NCPFS_MOUNT_SUBDIR is not set
# CONFIG_NCPFS_NDS_DOMAINS is not set
# CONFIG_NCPFS_NLS is not set
# CONFIG_NCPFS_EXTRAS is not set
#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not setCONFIG_MSDOS_PARTITION=yCONFIG_NLS=y
#
# Native Language Support
#CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_ISO8859_1 is not set
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_UTF8 is not set
#
# Console drivers
#CONFIG_VGA_CONSOLE=y
# CONFIG_VIDEO_SELECT is not set
#
# Sound
#CONFIG_SOUND=y
# CONFIG_SOUND_CMPCI is not set
# CONFIG_SOUND_EMU10K1 is not set
# CONFIG_SOUND_FUSION is not set
# CONFIG_SOUND_CS4281 is not set
# CONFIG_SOUND_ES1370 is not setCONFIG_SOUND_ES1371=y
# CONFIG_SOUND_ESSSOLO1 is not set
# CONFIG_SOUND_MAESTRO is not set
# CONFIG_SOUND_SONICVIBES is not set
# CONFIG_SOUND_TRIDENT is not set
# CONFIG_SOUND_MSNDCLAS is not set
# CONFIG_SOUND_MSNDPIN is not set
# CONFIG_SOUND_VIA82CXXX is not set
# CONFIG_SOUND_OSS is not set
# CONFIG_SOUND_TVMIXER is not set
#
# USB support
#CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
# CONFIG_USB_DEVICEFS is not set
# CONFIG_USB_BANDWIDTH is not setCONFIG_USB_UHCI_ALT=y
# CONFIG_USB_OHCI is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_SCANNER is not set
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_SERIAL is not set
# CONFIG_USB_IBMCAM is not set
# CONFIG_USB_OV511 is not set
# CONFIG_USB_DC2XX is not setCONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
# CONFIG_USB_USS720 is not set
# CONFIG_USB_DABUSB is not set
#
# Kernel hacking
#
# CONFIG_MAGIC_SYSRQ is not set
In message <[email protected]> you write:
Quoted 3 lines
yes, but is it a dual machine or is it an N-way SMP with N > 2? the other guy with iptables/SMP problems also has a quad box. could this perhaps be a problem only when you have more than two processors?
Yes, hacked my machine to think it had 4 cpus, and boom.
There are two problems:
(1) initialization of multiple tables was wrong, and
(2) iterating through tables should not use cpu_number_map (doesn't matter on X86 though).
Please try attached patch.
Thanks,
Rusty,
--
Hacking time.
net/ipv4/netfilter/ip_tables.c renamed from net/ipv4/netfilter/ip_tables.c.~1~ +6 -7
@@ -89,10 +89,8 @@unsigned int hook_entry[NF_IP_NUMHOOKS ];unsigned int underflow[NF_IP_NUMHOOKS ]; -char padding[SMP_ALIGN ((NF_IP_NUMHOOKS *2 +2 )*sizeof (unsigned int ))]; -/* ipt_entry tables: one per CPU */ -char entries[0 ]; + char entries[0] __attribute__((aligned(SMP_CACHE_BYTES))); };static LIST_HEAD (ipt_target);
@@ -101,7 +99,7 @@#define ADD_COUNTER (c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0)#ifdef CONFIG_SMP -#define TABLE_OFFSET (t,p) (SMP_ALIGN((t)->size)*cpu_number_map(p)) +#define TABLE_OFFSET (t,p) (SMP_ALIGN((t)->size)*(p))#else #define TABLE_OFFSET (t,p) 0#endif
@@ -283,7 +281,8 @@read_lock_bh (&table->lock);IP_NF_ASSERT (table->valid_hooks & (1 << hook)); table_base = (void *)table->private->entries - +TABLE_OFFSET (table->private,smp_processor_id ()); + +TABLE_OFFSET (table->private, +cpu_number_map (smp_processor_id ())); e =get_entry (table_base, table->private->hook_entry[hook]);#ifdef CONFIG_NETFILTER_DEBUG
@@ -860,7 +859,7 @@/* And one copy for every other CPU */ for (i =1 ; i < smp_num_cpus; i++) { -memcpy (newinfo->entries +SMP_ALIGN (newinfo->size*i), +memcpy (newinfo->entries +SMP_ALIGN (newinfo->size)*i, newinfo->entries,SMP_ALIGN (newinfo->size)); }
@@ -1359,7 +1358,7 @@int ret;struct ipt_table_info *newinfo;static struct ipt_table_info bootstrap - = {0 ,0 , {0 }, {0 }, { }, { } }; + = {0 ,0 , {0 }, {0 }, { } };MOD_INC_USE_COUNT ; newinfo = vmalloc(sizeof(struct ipt_table_info)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Rusty,
Excellent! I applied the patch and netfilter is happy with 4 processors. Thank you and thanks to everyone else who sent suggestions.
Roger
Quoted 61 lines · Rusty Russell
In message <[email protected]> you write:
Quoted 3 lines
yes, but is it a dual machine or is it an N-way SMP with N > 2? the other guy with iptables/SMP problems also has a quad box. could this perhaps be a problem only when you have more than two processors?
Yes, hacked my machine to think it had 4 cpus, and boom.
There are two problems:
(1) initialization of multiple tables was wrong, and
(2) iterating through tables should not usecpu_number_map(doesn't matter on X86 though).Please try attached patch.
Thanks,
Rusty,
--
Hacking time.net/ipv4/netfilter/ip_tables.c Mon Dec 4 16:12:44 2000 renamed from net/ipv4/netfilter/ip_tables.c.~1~ Sat Aug 12 00:23:40 2000 +5
-6@@ -89,10 +89,8 @@ unsigned int hook_entry[NF_IP_NUMHOOKS]; unsigned int underflow[NF_IP_NUMHOOKS]; - char padding[SMP_ALIGN((NF_IP_NUMHOOKS*2+2)*sizeof(unsigned int))]; - /* ipt_entry tables: one per CPU */ - char entries[0]; + char entries[0] __attribute__((aligned(SMP_CACHE_BYTES))); }; static LIST_HEAD(ipt_target);@@ -101,7 +99,7 @@ #define ADD_COUNTER(c,b,p) do { (c).bcnt += (b); (c).pcnt += (p); } while(0) #ifdef CONFIG_SMP -#define TABLE_OFFSET(t,p) (SMP_ALIGN((t)->size)*cpu_number_map(p)) +#define TABLE_OFFSET(t,p) (SMP_ALIGN((t)->size)*(p)) #else #define TABLE_OFFSET(t,p) 0 #endif@@ -283,7 +281,8 @@ read_lock_bh(&table->lock); IP_NF_ASSERT(table->valid_hooks & (1 << hook)); table_base = (void *)table->private->entries - + TABLE_OFFSET(table->private, smp_processor_id()); + + TABLE_OFFSET(table->private, + cpu_number_map(smp_processor_id())); e = get_entry(table_base, table->private->hook_entry[hook]); #ifdef CONFIG_NETFILTER_DEBUG@@ -860,7 +859,7 @@ /* And one copy for every other CPU */ for (i = 1; i < smp_num_cpus; i++) { - memcpy(newinfo->entries + SMP_ALIGN(newinfo->size*i), + memcpy(newinfo->entries + SMP_ALIGN(newinfo->size)*i, newinfo->entries, SMP_ALIGN(newinfo->size)); }
net/ipv4/netfilter/ip_tables.c Mon Dec 4 16:12:44 2000 line 1364
Quoted 8 lines
net/ipv4/netfilter/ip_tables.c Mon Dec 4 16:12:44 2000 renamed from net/ipv4/netfilter/ip_tables.c.~1~ Sat Aug 12 00:23:40 2000 +1
-1@@ -1359,7 +1358,7 @@ int ret; struct ipt_table_info *newinfo; static struct ipt_table_info bootstrap - = { 0, 0, { 0 }, { 0 }, { }, { } }; + = { 0, 0, { 0 }, { 0 }, { } }; MOD_INC_USE_COUNT; newinfo = vmalloc(sizeof(struct ipt_table_info)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 5 lines · Rusty Russell
In message <[email protected]> you write:
Quoted 3 lines
yes, but is it a dual machine or is it an N-way SMP with N > 2? the other guy with iptables/SMP problems also has a quad box. could this perhaps be a problem only when you have more than two processors?
Quoted 8 lines
Yes, hacked my machine to think it had 4 cpus, and boom.
There are two problems:
(1) initialization of multiple tables was wrong, and
(2) iterating through tables should not usecpu_number_map(doesn't matter on X86 though).Please try attached patch.
ok i'll give this a whirl .... success!
netfilter/iptables seems to be up and working on my quad ppro box now. i am running your "quick guide to firewalling" from the howto until i get my rules straightened out.
thank you very much.
johan
Signature · 7 lines
J o h a n K u l l s t a m [[email protected]] Don't Fear the Penguin! - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] Please read the FAQ at http://www.tux.org/lkml/