<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.linux.rt.user">
    <title>gmane.linux.rt.user</title>
    <link>http://blog.gmane.org/gmane.linux.rt.user</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3676"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3674"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3673"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3672"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3671"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3670"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3669"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3668"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3667"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3666"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3665"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3664"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3663"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3662"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3661"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3660"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3659"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3658"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3657"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.linux.rt.user/3656"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3676">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3676</link>
    <description>In article &lt;20081110234740.GB18819&lt; at &gt;windriver.com&gt;,
Paul Gortmaker  &lt;paul.gortmaker&lt; at &gt;windriver.com&gt; wrote:
" I've updated from the 2.6.27-rc8 patch series based on 26rt9 to be
" based on 2.6.27.5 kernel.org and 26rt11 preempt_rt.
[..]
" git://opensource1.windriver.com/people/paulg/rt/linux-2.6
" 
" Note the patched tree is on the branch v2.6.27.5-26rt11 and that
" master is just kernel.org master.

$ head -6 Makefile
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 27
EXTRAVERSION = .5-26rt11
NAME = Trembling Tortoise

$ make
[...]
  CC [M]  drivers/acpi/wmi.o
  CC [M]  drivers/acpi/asus_acpi.o
  CC [M]  drivers/acpi/toshiba_acpi.o
  CC      drivers/ata/libata-core.o
  CC      drivers/ata/libata-scsi.o
  CC      drivers/ata/libata-eh.o
  CC      drivers/ata/libata-sff.o
  CC      drivers/ata/libata-pmp.o
  CC      drivers/ata/libata-acpi.o
  LD      drivers/ata/libata.o
  CC      drivers/ata/sata_nv.o
  LD      drivers/ata/built-in.o
  LD      drivers/atm/built-in.o
  LD      drivers/auxdisplay/built-in.o
  CC [M]  drivers/auxdisplay/ks0108.o
  CC [M]  drivers/auxdisplay/cfag12864b.o
  CC [M]  drivers/auxdisplay/cfag12864bfb.o
  CC      drivers/base/core.o
  CC      drivers/base/sys.o
  CC      drivers/base/bus.o
  CC      drivers/base/dd.o
  CC      drivers/base/driver.o
  CC      drivers/base/class.o
distcc[9934] ERROR: compile /var/cache/ccache/class.tmp.C.9930.i on localhost failed
drivers/base/class.c: In function `__class_register':
drivers/base/class.c:151: error: implicit declaration of function `_mutex_init'
distcc[9930] ERROR: compile drivers/base/class.c on localhost failed
make[2]: *** [drivers/base/class.o] Error 1
make[1]: *** [drivers/base] Error 2
make: *** [drivers] Error 2
$

$ uname -p
AMD Athlon(tm) 64 Processor 3400+
$ cat &gt; morembinfo
Compaq Presario SR1820NX:
From &lt;http://h10025.www1.hp.com/ewfrf/wc/document?docname=c00647121&amp;lc=en&amp;dlc=en&amp;cc=us&amp;lang=en&amp;product=1841849&gt;:
Motherboard description:
    * Motherboard manufacturer's name: Asus A8N-LA
    * HP/Compaq name: Nagami-GL8E
$ echo $(egrep -v '^#' .config | egrep '=[a-z]' | sed -e 's%CONFIG_%%')
64BIT=y X86_64=y X86=y GENERIC_TIME=y GENERIC_CMOS_UPDATE=y
CLOCKSOURCE_WATCHDOG=y GENERIC_CLOCKEVENTS=y
GENERIC_CLOCKEVENTS_BROADCAST=y LOCKDEP_SUPPORT=y STACKTRACE_SUPPORT=y
HAVE_LATENCYTOP_SUPPORT=y FAST_CMPXCHG_LOCAL=y MMU=y ZONE_DMA=y
GENERIC_ISA_DMA=y GENERIC_IOMAP=y GENERIC_BUG=y GENERIC_HWEIGHT=y
ARCH_MAY_HAVE_PC_FDC=y RWSEM_GENERIC_SPINLOCK=y ASM_SEMAPHORES=y
ARCH_HAS_CPU_IDLE_WAIT=y GENERIC_CALIBRATE_DELAY=y
GENERIC_TIME_VSYSCALL=y ARCH_HAS_CPU_RELAX=y
ARCH_HAS_CACHE_LINE_SIZE=y ARCH_HIBERNATION_POSSIBLE=y
ARCH_SUSPEND_POSSIBLE=y ZONE_DMA32=y ARCH_POPULATES_NODE_MAP=y
AUDIT_ARCH=y ARCH_SUPPORTS_AOUT=y ARCH_SUPPORTS_OPTIMIZED_INLINING=y
GENERIC_HARDIRQS=y GENERIC_IRQ_PROBE=y X86_BIOS_REBOOT=y
X86_TRAMPOLINE=y EXPERIMENTAL=y BROKEN_ON_SMP=y SWAP=y SYSVIPC=y
SYSVIPC_SYSCTL=y POSIX_MQUEUE=y BSD_PROCESS_ACCT=y
BSD_PROCESS_ACCT_V3=y TASKSTATS=y AUDIT=y AUDITSYSCALL=y AUDIT_TREE=y
IKCONFIG=y IKCONFIG_PROC=y CGROUPS=y CGROUP_NS=y
HAVE_UNSTABLE_SCHED_CLOCK=y GROUP_SCHED=y FAIR_GROUP_SCHED=y
USER_SCHED=y CGROUP_CPUACCT=y SYSFS_DEPRECATED=y SYSFS_DEPRECATED_V2=y
BLK_DEV_INITRD=y CC_OPTIMIZE_FOR_SIZE=y SYSCTL=y
RADIX_TREE_CONCURRENT=y RADIX_TREE_OPTIMISTIC=y EMBEDDED=y UID16=y
SYSCTL_SYSCALL=y HOTPLUG=y PRINTK=y BUG=y ELF_CORE=y PCSPKR_PLATFORM=y
BASE_FULL=y FUTEX=y ANON_INODES=y EPOLL=y SIGNALFD=y TIMERFD=y
EVENTFD=y SHMEM=y VM_EVENT_COUNTERS=y SLAB=y TRACEPOINTS=y
HAVE_OPROFILE=y HAVE_EFFICIENT_UNALIGNED_ACCESS=y HAVE_IOREMAP_PROT=y
HAVE_KPROBES=y HAVE_KRETPROBES=y PROC_PAGE_MONITOR=y SLABINFO=y
RT_MUTEXES=y MODULES=y MODULE_UNLOAD=y MODULE_FORCE_UNLOAD=y
MODVERSIONS=y KMOD=y BLOCK=y BLK_DEV_BSG=y BLOCK_COMPAT=y
IOSCHED_NOOP=y IOSCHED_AS=y IOSCHED_DEADLINE=y IOSCHED_CFQ=y
DEFAULT_DEADLINE=y PREEMPT_NOTIFIERS=y CLASSIC_RCU=y TICK_ONESHOT=y
NO_HZ=y HIGH_RES_TIMERS=y GENERIC_CLOCKEVENTS_BUILD=y
X86_FIND_SMP_CONFIG=y X86_MPPARSE=y X86_PC=y PARAVIRT_GUEST=y
XEN_SAVE_RESTORE=y MEMTEST=y MK8=y X86_CPU=y X86_CMPXCHG=y
X86_WP_WORKS_OK=y X86_INTEL_USERCOPY=y X86_USE_PPRO_CHECKSUM=y
X86_TSC=y X86_CMPXCHG64=y X86_CMOV=y X86_DEBUGCTLMSR=y HPET_TIMER=y
HPET_EMULATE_RTC=y DMI=y GART_IOMMU=y CALGARY_IOMMU=y
CALGARY_IOMMU_ENABLED_BY_DEFAULT=y AMD_IOMMU=y SWIOTLB=y
IOMMU_HELPER=y PREEMPT_NONE=y X86_LOCAL_APIC=y X86_IO_APIC=y X86_MCE=y
X86_MCE_INTEL=y X86_MCE_AMD=y MICROCODE=m MICROCODE_OLD_INTERFACE=y
X86_MSR=m ARCH_SPARSEMEM_DEFAULT=y ARCH_SPARSEMEM_ENABLE=y
ARCH_SELECT_MEMORY_MODEL=y SELECT_MEMORY_MODEL=y SPARSEMEM_MANUAL=y
SPARSEMEM=y HAVE_MEMORY_PRESENT=y SPARSEMEM_EXTREME=y
SPARSEMEM_VMEMMAP_ENABLE=y SPARSEMEM_VMEMMAP=y PAGEFLAGS_EXTENDED=y
RESOURCES_64BIT=y BOUNCE=y VIRT_TO_BUS=y MMU_NOTIFIER=y MTRR=y
SECCOMP=y HZ_300=y SCHED_HRTICK=y KEXEC=y CRASH_DUMP=y RELOCATABLE=y
COMPAT_VDSO=y ARCH_ENABLE_MEMORY_HOTPLUG=y HARDIRQS_SW_RESEND=y
ARCH_HIBERNATION_HEADER=y PM=y PM_SLEEP=y SUSPEND=y SUSPEND_FREEZER=y
HIBERNATION=y ACPI=y ACPI_SLEEP=y ACPI_PROCFS=y ACPI_PROCFS_POWER=y
ACPI_SYSFS_POWER=y ACPI_PROC_EVENT=y ACPI_AC=m ACPI_BATTERY=m
ACPI_BUTTON=m ACPI_VIDEO=m ACPI_FAN=m ACPI_DOCK=y ACPI_BAY=m
ACPI_PROCESSOR=m ACPI_THERMAL=m ACPI_WMI=m ACPI_ASUS=m ACPI_TOSHIBA=m
ACPI_EC=y ACPI_POWER=y ACPI_SYSTEM=y X86_PM_TIMER=y ACPI_CONTAINER=m
CPU_FREQ=y CPU_FREQ_TABLE=m CPU_FREQ_STAT=m
CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y CPU_FREQ_GOV_PERFORMANCE=y
CPU_FREQ_GOV_POWERSAVE=m CPU_FREQ_GOV_USERSPACE=m
CPU_FREQ_GOV_ONDEMAND=m CPU_FREQ_GOV_CONSERVATIVE=m X86_ACPI_CPUFREQ=m
X86_POWERNOW_K8=m X86_POWERNOW_K8_ACPI=y X86_SPEEDSTEP_CENTRINO=m
X86_P4_CLOCKMOD=m X86_SPEEDSTEP_LIB=m CPU_IDLE=y CPU_IDLE_GOV_LADDER=y
CPU_IDLE_GOV_MENU=y PCI=y PCI_DIRECT=y PCI_MMCONFIG=y PCI_DOMAINS=y
DMAR=y DMAR_GFX_WA=y DMAR_FLOPPY_WA=y PCIEPORTBUS=y PCIEAER=y
ARCH_SUPPORTS_MSI=y PCI_MSI=y PCI_LEGACY=y HT_IRQ=y ISA_DMA_API=y
K8_NB=y PCCARD=m PCMCIA=m PCMCIA_LOAD_CIS=y PCMCIA_IOCTL=y CARDBUS=y
YENTA=m YENTA_O2=y YENTA_RICOH=y YENTA_TI=y YENTA_ENE_TUNE=y
YENTA_TOSHIBA=y PD6729=m I82092=m PCCARD_NONSTATIC=m BINFMT_ELF=y
COMPAT_BINFMT_ELF=y BINFMT_MISC=m IA32_EMULATION=y COMPAT=y
COMPAT_FOR_U64_ALIGNMENT=y SYSVIPC_COMPAT=y NET=y PACKET=y UNIX=y
XFRM=y XFRM_USER=m XFRM_IPCOMP=m NET_KEY=m INET=y IP_MULTICAST=y
IP_ADVANCED_ROUTER=y ASK_IP_FIB_HASH=y IP_FIB_HASH=y
IP_MULTIPLE_TABLES=y IP_ROUTE_MULTIPATH=y IP_PNP=y IP_PNP_DHCP=y
NET_IPIP=m NET_IPGRE=m NET_IPGRE_BROADCAST=y IP_MROUTE=y IP_PIMSM_V1=y
IP_PIMSM_V2=y SYN_COOKIES=y INET_AH=m INET_ESP=m INET_IPCOMP=m
INET_XFRM_TUNNEL=m INET_TUNNEL=m INET_XFRM_MODE_TRANSPORT=m
INET_XFRM_MODE_TUNNEL=m INET_XFRM_MODE_BEET=m INET_LRO=m INET_DIAG=y
INET_TCP_DIAG=y TCP_CONG_CUBIC=y IPV6=m IPV6_PRIVACY=y
IPV6_ROUTER_PREF=y INET6_AH=m INET6_ESP=m INET6_IPCOMP=m
INET6_XFRM_TUNNEL=m INET6_TUNNEL=m INET6_XFRM_MODE_TRANSPORT=m
INET6_XFRM_MODE_TUNNEL=m INET6_XFRM_MODE_BEET=m IPV6_SIT=m
IPV6_NDISC_NODETYPE=y IPV6_TUNNEL=m NETWORK_SECMARK=y NETFILTER=y
NETFILTER_ADVANCED=y BRIDGE_NETFILTER=y NETFILTER_NETLINK=m
NETFILTER_NETLINK_QUEUE=m NETFILTER_NETLINK_LOG=m NF_CONNTRACK=m
NF_CT_ACCT=y NF_CONNTRACK_MARK=y NF_CONNTRACK_SECMARK=y
NF_CONNTRACK_EVENTS=y NF_CT_PROTO_GRE=m NF_CT_PROTO_SCTP=m
NF_CT_PROTO_UDPLITE=m NF_CONNTRACK_AMANDA=m NF_CONNTRACK_FTP=m
NF_CONNTRACK_H323=m NF_CONNTRACK_IRC=m NF_CONNTRACK_NETBIOS_NS=m
NF_CONNTRACK_PPTP=m NF_CONNTRACK_SANE=m NF_CONNTRACK_SIP=m
NF_CONNTRACK_TFTP=m NF_CT_NETLINK=m NETFILTER_XTABLES=m
NETFILTER_XT_TARGET_CLASSIFY=m NETFILTER_XT_TARGET_CONNMARK=m
NETFILTER_XT_TARGET_DSCP=m NETFILTER_XT_TARGET_MARK=m
NETFILTER_XT_TARGET_NFQUEUE=m NETFILTER_XT_TARGET_NFLOG=m
NETFILTER_XT_TARGET_NOTRACK=m NETFILTER_XT_TARGET_TRACE=m
NETFILTER_XT_TARGET_SECMARK=m NETFILTER_XT_TARGET_CONNSECMARK=m
NETFILTER_XT_TARGET_TCPMSS=m NETFILTER_XT_MATCH_COMMENT=m
NETFILTER_XT_MATCH_CONNBYTES=m NETFILTER_XT_MATCH_CONNLIMIT=m
NETFILTER_XT_MATCH_CONNMARK=m NETFILTER_XT_MATCH_CONNTRACK=m
NETFILTER_XT_MATCH_DCCP=m NETFILTER_XT_MATCH_DSCP=m
NETFILTER_XT_MATCH_ESP=m NETFILTER_XT_MATCH_HELPER=m
NETFILTER_XT_MATCH_LENGTH=m NETFILTER_XT_MATCH_LIMIT=m
NETFILTER_XT_MATCH_MAC=m NETFILTER_XT_MATCH_MARK=m
NETFILTER_XT_MATCH_POLICY=m NETFILTER_XT_MATCH_MULTIPORT=m
NETFILTER_XT_MATCH_PKTTYPE=m NETFILTER_XT_MATCH_QUOTA=m
NETFILTER_XT_MATCH_REALM=m NETFILTER_XT_MATCH_SCTP=m
NETFILTER_XT_MATCH_STATE=m NETFILTER_XT_MATCH_STATISTIC=m
NETFILTER_XT_MATCH_STRING=m NETFILTER_XT_MATCH_TCPMSS=m
NETFILTER_XT_MATCH_TIME=m NETFILTER_XT_MATCH_U32=m
NETFILTER_XT_MATCH_HASHLIMIT=m NF_CONNTRACK_IPV4=m
NF_CONNTRACK_PROC_COMPAT=y IP_NF_IPTABLES=m IP_NF_MATCH_RECENT=m
IP_NF_MATCH_ECN=m IP_NF_MATCH_AH=m IP_NF_MATCH_TTL=m
IP_NF_MATCH_ADDRTYPE=m IP_NF_FILTER=m IP_NF_TARGET_REJECT=m
IP_NF_TARGET_LOG=m IP_NF_TARGET_ULOG=m NF_NAT=m NF_NAT_NEEDED=y
IP_NF_TARGET_MASQUERADE=m IP_NF_TARGET_REDIRECT=m
IP_NF_TARGET_NETMAP=m NF_NAT_SNMP_BASIC=m NF_NAT_PROTO_GRE=m
NF_NAT_PROTO_UDPLITE=m NF_NAT_PROTO_SCTP=m NF_NAT_FTP=m NF_NAT_IRC=m
NF_NAT_TFTP=m NF_NAT_AMANDA=m NF_NAT_PPTP=m NF_NAT_H323=m NF_NAT_SIP=m
IP_NF_MANGLE=m IP_NF_TARGET_ECN=m IP_NF_TARGET_TTL=m
IP_NF_TARGET_CLUSTERIP=m IP_NF_RAW=m IP_NF_ARPTABLES=m
IP_NF_ARPFILTER=m IP_NF_ARP_MANGLE=m NF_CONNTRACK_IPV6=m
IP6_NF_IPTABLES=m IP6_NF_MATCH_RT=m IP6_NF_MATCH_OPTS=m
IP6_NF_MATCH_FRAG=m IP6_NF_MATCH_HL=m IP6_NF_MATCH_IPV6HEADER=m
IP6_NF_MATCH_AH=m IP6_NF_MATCH_MH=m IP6_NF_MATCH_EUI64=m
IP6_NF_FILTER=m IP6_NF_TARGET_LOG=m IP6_NF_TARGET_REJECT=m
IP6_NF_MANGLE=m IP6_NF_TARGET_HL=m IP6_NF_RAW=m IP_SCTP=m
SCTP_HMAC_SHA1=y ATM=m ATM_CLIP=m ATM_LANE=m ATM_MPOA=m ATM_BR2684=m
STP=m BRIDGE=m VLAN_8021Q=m LLC=m NET_SCHED=y NET_SCH_CBQ=m
NET_SCH_HTB=m NET_SCH_HFSC=m NET_SCH_ATM=m NET_SCH_PRIO=m
NET_SCH_RED=m NET_SCH_SFQ=m NET_SCH_TEQL=m NET_SCH_TBF=m
NET_SCH_GRED=m NET_SCH_DSMARK=m NET_SCH_INGRESS=m NET_CLS=y
NET_CLS_BASIC=m NET_CLS_TCINDEX=m NET_CLS_ROUTE4=m NET_CLS_ROUTE=y
NET_CLS_FW=m NET_CLS_U32=m CLS_U32_PERF=y CLS_U32_MARK=y
NET_CLS_RSVP=m NET_CLS_RSVP6=m NET_EMATCH=y NET_EMATCH_CMP=m
NET_EMATCH_NBYTE=m NET_EMATCH_U32=m NET_EMATCH_META=m
NET_EMATCH_TEXT=m NET_CLS_ACT=y NET_ACT_POLICE=m NET_ACT_GACT=m
GACT_PROB=y NET_ACT_MIRRED=m NET_ACT_IPT=m NET_ACT_NAT=m
NET_ACT_PEDIT=m NET_SCH_FIFO=y NET_PKTGEN=m IRDA=m IRLAN=m IRNET=m
IRCOMM=m IRDA_ULTRA=y IRDA_CACHE_LAST_LSAP=y IRDA_FAST_RR=y
IRTTY_SIR=m DONGLE=y ESI_DONGLE=m ACTISYS_DONGLE=m TEKRAM_DONGLE=m
TOIM3232_DONGLE=m LITELINK_DONGLE=m MA600_DONGLE=m GIRBIL_DONGLE=m
MCP2120_DONGLE=m OLD_BELKIN_DONGLE=m ACT200L_DONGLE=m KINGSUN_DONGLE=m
KSDAZZLE_DONGLE=m KS959_DONGLE=m USB_IRDA=m SIGMATEL_FIR=m NSC_FIR=m
WINBOND_FIR=m SMC_IRCC_FIR=m ALI_FIR=m VLSI_FIR=m VIA_FIR=m MCS_FIR=m
BT=m BT_L2CAP=m BT_SCO=m BT_RFCOMM=m BT_RFCOMM_TTY=y BT_BNEP=m
BT_BNEP_MC_FILTER=y BT_BNEP_PROTO_FILTER=y BT_HIDP=m BT_HCIUSB=m
BT_HCIUSB_SCO=y BT_HCIBTSDIO=m BT_HCIUART=m BT_HCIUART_H4=y
BT_HCIUART_BCSP=y BT_HCIUART_LL=y BT_HCIBCM203X=m BT_HCIBPA10X=m
BT_HCIBFUSB=m BT_HCIDTL1=m BT_HCIBT3C=m BT_HCIBLUECARD=m
BT_HCIBTUART=m BT_HCIVHCI=m AF_RXRPC=m RXKAD=m FIB_RULES=y CFG80211=m
NL80211=y WIRELESS_EXT=y WIRELESS_EXT_SYSFS=y MAC80211=m
MAC80211_RC_PID=y MAC80211_RC_DEFAULT_PID=y MAC80211_LEDS=y
IEEE80211=m IEEE80211_CRYPT_WEP=m IEEE80211_CRYPT_CCMP=m
IEEE80211_CRYPT_TKIP=m RFKILL=m RFKILL_INPUT=m RFKILL_LEDS=y NET_9P=m
STANDALONE=y PREVENT_FIRMWARE_BUILD=y FW_LOADER=m FIRMWARE_IN_KERNEL=y
PARPORT=m PARPORT_PC=m PARPORT_SERIAL=m PARPORT_PC_FIFO=y
PARPORT_PC_SUPERIO=y PARPORT_PC_PCMCIA=m PARPORT_AX88796=m
PARPORT_1284=y PARPORT_NOT_PC=y PNP=y PNPACPI=y BLK_DEV=y BLK_DEV_FD=m
PARIDE=m PARIDE_PD=m PARIDE_PCD=m PARIDE_PF=m PARIDE_PT=m PARIDE_PG=m
PARIDE_ATEN=m PARIDE_BPCK=m PARIDE_COMM=m PARIDE_DSTR=m PARIDE_FIT2=m
PARIDE_FIT3=m PARIDE_EPAT=m PARIDE_EPATC8=y PARIDE_EPIA=m
PARIDE_FRIQ=m PARIDE_FRPW=m PARIDE_KBIC=m PARIDE_KTTI=m PARIDE_ON20=m
PARIDE_ON26=m BLK_CPQ_DA=m BLK_CPQ_CISS_DA=m BLK_DEV_DAC960=m
BLK_DEV_UMEM=m BLK_DEV_LOOP=y BLK_DEV_CRYPTOLOOP=y BLK_DEV_NBD=y
BLK_DEV_SX8=m BLK_DEV_RAM=y CDROM_PKTCDVD=y ATA_OVER_ETH=m
MISC_DEVICES=y PHANTOM=m EEPROM_93CX6=m TIFM_CORE=m TIFM_7XX1=m
ASUS_LAPTOP=m FUJITSU_LAPTOP=m MSI_LAPTOP=m SONY_LAPTOP=m
SONYPI_COMPAT=y THINKPAD_ACPI=m THINKPAD_ACPI_BAY=y
THINKPAD_ACPI_VIDEO=y THINKPAD_ACPI_HOTKEY_POLL=y HAVE_IDE=y IDE=y
BLK_DEV_IDE=y IDE_TIMINGS=y IDE_ATAPI=y BLK_DEV_IDEDISK=y
IDEDISK_MULTI_MODE=y BLK_DEV_IDECS=m BLK_DEV_DELKIN=m BLK_DEV_IDECD=y
BLK_DEV_IDECD_VERBOSE_ERRORS=y BLK_DEV_IDETAPE=m BLK_DEV_IDEFLOPPY=m
BLK_DEV_IDEACPI=y IDE_PROC_FS=y IDE_GENERIC=y BLK_DEV_PLATFORM=m
BLK_DEV_CMD640=y BLK_DEV_CMD640_ENHANCED=y BLK_DEV_IDEPNP=y
BLK_DEV_IDEDMA_SFF=y BLK_DEV_IDEPCI=y IDEPCI_PCIBUS_ORDER=y
BLK_DEV_GENERIC=y BLK_DEV_OPTI621=y BLK_DEV_RZ1000=y
BLK_DEV_IDEDMA_PCI=y BLK_DEV_AEC62XX=y BLK_DEV_ALI15X3=y
BLK_DEV_AMD74XX=y BLK_DEV_ATIIXP=y BLK_DEV_CMD64X=y BLK_DEV_TRIFLEX=y
BLK_DEV_CS5520=y BLK_DEV_CS5530=y BLK_DEV_HPT366=y BLK_DEV_JMICRON=m
BLK_DEV_SC1200=y BLK_DEV_PIIX=y BLK_DEV_IT8213=m BLK_DEV_IT821X=y
BLK_DEV_NS87415=y BLK_DEV_PDC202XX_OLD=y BLK_DEV_PDC202XX_NEW=y
BLK_DEV_SVWKS=y BLK_DEV_SIIMAGE=m BLK_DEV_SIS5513=y BLK_DEV_SLC90E66=y
BLK_DEV_TRM290=y BLK_DEV_VIA82CXXX=y BLK_DEV_TC86C001=m
BLK_DEV_IDEDMA=y RAID_ATTRS=m SCSI=y SCSI_DMA=y SCSI_TGT=m
SCSI_NETLINK=y SCSI_PROC_FS=y BLK_DEV_SD=y CHR_DEV_ST=m CHR_DEV_OSST=m
BLK_DEV_SR=y BLK_DEV_SR_VENDOR=y CHR_DEV_SG=m CHR_DEV_SCH=m
SCSI_SCAN_ASYNC=y SCSI_WAIT_SCAN=m SCSI_SPI_ATTRS=m SCSI_FC_ATTRS=m
SCSI_FC_TGT_ATTRS=y SCSI_ISCSI_ATTRS=m SCSI_SAS_ATTRS=m
SCSI_SAS_LIBSAS=m SCSI_SAS_ATA=y SCSI_SAS_HOST_SMP=y SCSI_SRP_ATTRS=m
SCSI_SRP_TGT_ATTRS=y SCSI_LOWLEVEL=y BLK_DEV_3W_XXXX_RAID=m
SCSI_3W_9XXX=m SCSI_ACARD=m SCSI_AACRAID=m SCSI_AIC7XXX=m
AIC7XXX_REG_PRETTY_PRINT=y SCSI_AIC79XX=m SCSI_AIC94XX=m
SCSI_ADVANSYS=m SCSI_ARCMSR=m MEGARAID_NEWGEN=y MEGARAID_MM=m
MEGARAID_MAILBOX=m MEGARAID_LEGACY=m MEGARAID_SAS=m SCSI_HPTIOP=m
SCSI_BUSLOGIC=m SCSI_DMX3191D=m SCSI_EATA=m SCSI_EATA_TAGGED_QUEUE=y
SCSI_EATA_LINKED_COMMANDS=y SCSI_FUTURE_DOMAIN=m SCSI_GDTH=m
SCSI_IPS=m SCSI_INITIO=m SCSI_INIA100=m SCSI_PPA=m SCSI_IMM=m
SCSI_STEX=m SCSI_SYM53C8XX_2=m SCSI_SYM53C8XX_MMIO=y
SCSI_QLOGIC_1280=m SCSI_QLA_FC=m SCSI_QLA_ISCSI=m SCSI_LPFC=m
SCSI_DC395x=m SCSI_DC390T=m SCSI_SRP=m SCSI_LOWLEVEL_PCMCIA=y
PCMCIA_FDOMAIN=m PCMCIA_QLOGIC=m PCMCIA_SYM53C500=m ATA=y ATA_ACPI=y
SATA_PMP=y ATA_SFF=y SATA_NV=y MD=y BLK_DEV_MD=y MD_LINEAR=m
MD_RAID0=m MD_RAID1=m MD_RAID10=m MD_RAID456=m MD_RAID5_RESHAPE=y
MD_MULTIPATH=m MD_FAULTY=m BLK_DEV_DM=m DM_CRYPT=m DM_SNAPSHOT=m
DM_MIRROR=m DM_ZERO=m DM_MULTIPATH=m DM_UEVENT=y FUSION=y FUSION_SPI=m
FUSION_FC=m FUSION_SAS=m FUSION_CTL=m FUSION_LAN=m IEEE1394=y
IEEE1394_OHCI1394=m IEEE1394_SBP2=m IEEE1394_ETH1394_ROM_ENTRY=y
IEEE1394_ETH1394=m IEEE1394_RAWIO=m IEEE1394_VIDEO1394=m
IEEE1394_DV1394=m I2O=m I2O_EXT_ADAPTEC=y I2O_EXT_ADAPTEC_DMA64=y
I2O_CONFIG=m I2O_CONFIG_OLD_IOCTL=y I2O_BUS=m I2O_BLOCK=m I2O_SCSI=m
I2O_PROC=m MACINTOSH_DRIVERS=y MAC_EMUMOUSEBTN=y NETDEVICES=y
BONDING=m MACVLAN=m EQUALIZER=m TUN=m VETH=m NET_SB1000=m PHYLIB=m
MARVELL_PHY=m DAVICOM_PHY=m QSEMI_PHY=m LXT_PHY=m CICADA_PHY=m
VITESSE_PHY=m SMSC_PHY=m BROADCOM_PHY=m ICPLUS_PHY=m REALTEK_PHY=m
MDIO_BITBANG=m NET_ETHERNET=y NET_PCI=y FORCEDETH=y NETDEV_1000=y
E1000=y E1000E=y MLX4_CORE=m HIPPI=y ROADRUNNER=m PLIP=m PPP=m
PPP_MULTILINK=y PPP_FILTER=y PPP_ASYNC=m PPP_SYNC_TTY=m PPP_DEFLATE=m
PPP_BSDCOMP=m PPP_MPPE=m PPPOE=m PPPOATM=m PPPOL2TP=m SLIP=m
SLIP_COMPRESSED=y SLHC=m SLIP_SMART=y SLIP_MODE_SLIP6=y NET_FC=y
INPUT=y INPUT_FF_MEMLESS=m INPUT_POLLDEV=m INPUT_MOUSEDEV=y
INPUT_MOUSEDEV_PSAUX=y INPUT_JOYDEV=m INPUT_EVDEV=y INPUT_KEYBOARD=y
KEYBOARD_ATKBD=y KEYBOARD_SUNKBD=m KEYBOARD_LKKBD=m KEYBOARD_XTKBD=m
KEYBOARD_NEWTON=m KEYBOARD_STOWAWAY=m INPUT_MOUSE=y MOUSE_PS2=y
MOUSE_PS2_ALPS=y MOUSE_PS2_LOGIPS2PP=y MOUSE_PS2_SYNAPTICS=y
MOUSE_PS2_LIFEBOOK=y MOUSE_PS2_TRACKPOINT=y MOUSE_PS2_TOUCHKIT=y
MOUSE_SERIAL=m MOUSE_APPLETOUCH=m INPUT_JOYSTICK=y JOYSTICK_ANALOG=m
JOYSTICK_A3D=m JOYSTICK_ADI=m JOYSTICK_COBRA=m JOYSTICK_GF2K=m
JOYSTICK_GRIP=m JOYSTICK_GRIP_MP=m JOYSTICK_GUILLEMOT=m
JOYSTICK_INTERACT=m JOYSTICK_SIDEWINDER=m JOYSTICK_TMDC=m
JOYSTICK_IFORCE=m JOYSTICK_IFORCE_USB=y JOYSTICK_IFORCE_232=y
JOYSTICK_WARRIOR=m JOYSTICK_MAGELLAN=m JOYSTICK_SPACEORB=m
JOYSTICK_SPACEBALL=m JOYSTICK_STINGER=m JOYSTICK_TWIDJOY=m
JOYSTICK_DB9=m JOYSTICK_GAMECON=m JOYSTICK_TURBOGRAFX=m
JOYSTICK_JOYDUMP=m JOYSTICK_XPAD=m JOYSTICK_XPAD_FF=y
JOYSTICK_XPAD_LEDS=y INPUT_TABLET=y TABLET_USB_ACECAD=m
TABLET_USB_AIPTEK=m TABLET_USB_GTCO=m TABLET_USB_KBTAB=m
TABLET_USB_WACOM=m INPUT_TOUCHSCREEN=y TOUCHSCREEN_FUJITSU=m
TOUCHSCREEN_GUNZE=m TOUCHSCREEN_ELO=m TOUCHSCREEN_MTOUCH=m
TOUCHSCREEN_MK712=m TOUCHSCREEN_PENMOUNT=m TOUCHSCREEN_TOUCHRIGHT=m
TOUCHSCREEN_TOUCHWIN=m TOUCHSCREEN_UCB1400=m
TOUCHSCREEN_USB_COMPOSITE=m TOUCHSCREEN_USB_EGALAX=y
TOUCHSCREEN_USB_PANJIT=y TOUCHSCREEN_USB_3M=y TOUCHSCREEN_USB_ITM=y
TOUCHSCREEN_USB_ETURBO=y TOUCHSCREEN_USB_GUNZE=y
TOUCHSCREEN_USB_DMC_TSC10=y TOUCHSCREEN_USB_IRTOUCH=y
TOUCHSCREEN_USB_IDEALTEK=y TOUCHSCREEN_USB_GENERAL_TOUCH=y
TOUCHSCREEN_USB_GOTOP=y INPUT_MISC=y INPUT_PCSPKR=m INPUT_ATLAS_BTNS=m
INPUT_ATI_REMOTE=m INPUT_ATI_REMOTE2=m INPUT_KEYSPAN_REMOTE=m
INPUT_POWERMATE=m INPUT_YEALINK=m SERIO=y SERIO_I8042=y
SERIO_SERPORT=m SERIO_CT82C710=m SERIO_PARKBD=m SERIO_PCIPS2=m
SERIO_LIBPS2=y GAMEPORT=m GAMEPORT_NS558=m GAMEPORT_L4=m
GAMEPORT_EMU10K1=m GAMEPORT_FM801=m VT=y CONSOLE_TRANSLATIONS=y
VT_CONSOLE=y HW_CONSOLE=y VT_HW_CONSOLE_BINDING=y DEVKMEM=y
SERIAL_8250=y SERIAL_8250_CONSOLE=y FIX_EARLYCON_MEM=y
SERIAL_8250_PCI=y SERIAL_8250_PNP=y SERIAL_8250_CS=m
SERIAL_8250_EXTENDED=y SERIAL_8250_MANY_PORTS=y
SERIAL_8250_SHARE_IRQ=y SERIAL_8250_RSA=y SERIAL_CORE=y
SERIAL_CORE_CONSOLE=y UNIX98_PTYS=y PPDEV=m HW_RANDOM=y
HW_RANDOM_INTEL=y HW_RANDOM_AMD=y NVRAM=m MWAVE=m HPET=y HPET_MMAP=y
DEVPORT=y I2C=m I2C_BOARDINFO=y I2C_CHARDEV=m I2C_HELPER_AUTO=y
I2C_ALGOBIT=m I2C_ALI1535=m I2C_ALI1563=m I2C_ALI15X3=m I2C_AMD756=m
I2C_AMD756_S4882=m I2C_AMD8111=m I2C_I801=m I2C_PIIX4=m I2C_NFORCE2=m
I2C_SIS5595=m I2C_SIS630=m I2C_SIS96X=m I2C_VIA=m I2C_VIAPRO=m
I2C_OCORES=m I2C_SIMTEC=m I2C_PARPORT=m I2C_TAOS_EVM=m I2C_TINY_USB=m
I2C_VOODOO3=m DS1682=m SENSORS_EEPROM=m SENSORS_PCF8574=m
SENSORS_PCF8591=m SENSORS_MAX6875=m SENSORS_TSL2550=m
ARCH_WANT_OPTIONAL_GPIOLIB=y POWER_SUPPLY=y HWMON=y HWMON_VID=m
SENSORS_ABITUGURU=m SENSORS_ABITUGURU3=m SENSORS_AD7418=m
SENSORS_ADM1021=m SENSORS_ADM1025=m SENSORS_ADM1026=m
SENSORS_ADM1029=m SENSORS_ADM1031=m SENSORS_ADM9240=m
SENSORS_ADT7470=m SENSORS_ADT7473=m SENSORS_K8TEMP=m SENSORS_ASB100=m
SENSORS_ATXP1=m SENSORS_DS1621=m SENSORS_I5K_AMB=m SENSORS_F71805F=m
SENSORS_F71882FG=m SENSORS_F75375S=m SENSORS_FSCHER=m SENSORS_FSCPOS=m
SENSORS_FSCHMD=m SENSORS_GL518SM=m SENSORS_GL520SM=m
SENSORS_CORETEMP=m SENSORS_IT87=m SENSORS_LM63=m SENSORS_LM75=m
SENSORS_LM77=m SENSORS_LM78=m SENSORS_LM80=m SENSORS_LM83=m
SENSORS_LM85=m SENSORS_LM87=m SENSORS_LM90=m SENSORS_LM92=m
SENSORS_LM93=m SENSORS_MAX1619=m SENSORS_MAX6650=m SENSORS_PC87360=m
SENSORS_PC87427=m SENSORS_SIS5595=m SENSORS_DME1737=m
SENSORS_SMSC47M1=m SENSORS_SMSC47M192=m SENSORS_SMSC47B397=m
SENSORS_ADS7828=m SENSORS_THMC50=m SENSORS_VIA686A=m SENSORS_VT1211=m
SENSORS_VT8231=m SENSORS_W83781D=m SENSORS_W83791D=m SENSORS_W83792D=m
SENSORS_W83793=m SENSORS_W83L785TS=m SENSORS_W83L786NG=m
SENSORS_W83627HF=m SENSORS_W83627EHF=m SENSORS_HDAPS=m
SENSORS_APPLESMC=m THERMAL=y SSB_POSSIBLE=y SSB=m SSB_SPROM=y
SSB_PCIHOST_POSSIBLE=y SSB_PCIHOST=y SSB_PCMCIAHOST_POSSIBLE=y
SSB_PCMCIAHOST=y SSB_DRIVER_PCICORE_POSSIBLE=y SSB_DRIVER_PCICORE=y
MFD_SM501=m VIDEO_DEV=m VIDEO_V4L2_COMMON=m VIDEO_ALLOW_V4L1=y
VIDEO_V4L1_COMPAT=y DVB_CORE=y VIDEO_MEDIA=m MEDIA_TUNER=m
MEDIA_TUNER_SIMPLE=m MEDIA_TUNER_TDA8290=m MEDIA_TUNER_TDA18271=m
MEDIA_TUNER_TDA9887=m MEDIA_TUNER_TEA5761=m MEDIA_TUNER_TEA5767=m
MEDIA_TUNER_MT20XX=m MEDIA_TUNER_MT2131=m MEDIA_TUNER_XC2028=m
MEDIA_TUNER_XC5000=m VIDEO_V4L2=m VIDEO_V4L1=m VIDEOBUF_GEN=m
VIDEOBUF_DMA_SG=m VIDEOBUF_DVB=m VIDEO_BTCX=m VIDEO_IR=m
VIDEO_TVEEPROM=m VIDEO_TUNER=m VIDEO_CAPTURE_DRIVERS=y VIDEO_IR_I2C=m
VIDEO_TVAUDIO=m VIDEO_TDA7432=m VIDEO_TDA9840=m VIDEO_TDA9875=m
VIDEO_TEA6415C=m VIDEO_TEA6420=m VIDEO_MSP3400=m VIDEO_CS5345=m
VIDEO_CS53L32A=m VIDEO_M52790=m VIDEO_TLV320AIC23B=m VIDEO_WM8775=m
VIDEO_WM8739=m VIDEO_VP27SMPX=m VIDEO_BT819=m VIDEO_BT856=m
VIDEO_BT866=m VIDEO_KS0127=m VIDEO_OV7670=m VIDEO_TCM825X=m
VIDEO_SAA7110=m VIDEO_SAA7111=m VIDEO_SAA7114=m VIDEO_SAA711X=m
VIDEO_SAA717X=m VIDEO_SAA7191=m VIDEO_TVP5150=m VIDEO_VPX3220=m
VIDEO_CX25840=m VIDEO_CX2341X=m VIDEO_SAA7127=m VIDEO_SAA7185=m
VIDEO_ADV7170=m VIDEO_ADV7175=m VIDEO_UPD64031A=m VIDEO_UPD64083=m
VIDEO_BT848=m VIDEO_BT848_DVB=y VIDEO_SAA6588=m VIDEO_CX23885=m
VIDEO_IVTV=m VIDEO_FB_IVTV=m VIDEO_CAFE_CCIC=m RADIO_ADAPTERS=y
DVB_CAPTURE_DRIVERS=y DVB_BT8XX=m DVB_CX24110=m DVB_CX24123=m
DVB_MT312=m DVB_S5H1420=m DVB_STV0299=m DVB_TDA8083=m DVB_TDA10086=m
DVB_VES1X93=m DVB_TDA826X=m DVB_TUA6100=m DVB_SP8870=m DVB_SP887X=m
DVB_CX22700=m DVB_CX22702=m DVB_L64781=m DVB_TDA1004X=m DVB_NXT6000=m
DVB_MT352=m DVB_ZL10353=m DVB_DIB3000MB=m DVB_DIB3000MC=m
DVB_DIB7000M=m DVB_DIB7000P=m DVB_TDA10048=m DVB_VES1820=m
DVB_TDA10021=m DVB_TDA10023=m DVB_STV0297=m DVB_NXT200X=m
DVB_OR51211=m DVB_OR51132=m DVB_BCM3510=m DVB_LGDT330X=m DVB_S5H1409=m
DVB_S5H1411=m DVB_PLL=m DVB_TUNER_DIB0070=m DVB_LNBP21=m DVB_ISL6421=m
AGP=y AGP_AMD64=y AGP_INTEL=m AGP_SIS=m AGP_VIA=m DRM=m DRM_TDFX=m
DRM_R128=m DRM_RADEON=m DRM_I810=m DRM_I830=m DRM_I915=m DRM_MGA=m
DRM_SIS=m DRM_VIA=m DRM_SAVAGE=m VIDEO_OUTPUT_CONTROL=m FB=y
FIRMWARE_EDID=y FB_CFB_FILLRECT=y FB_CFB_COPYAREA=y FB_CFB_IMAGEBLIT=y
FB_SYS_FILLRECT=m FB_SYS_COPYAREA=m FB_SYS_IMAGEBLIT=m FB_SYS_FOPS=m
FB_VESA=y FB_EFI=y BACKLIGHT_LCD_SUPPORT=y LCD_CLASS_DEVICE=m
BACKLIGHT_CLASS_DEVICE=m BACKLIGHT_PROGEAR=m DISPLAY_SUPPORT=m
VGA_CONSOLE=y VIDEO_SELECT=y DUMMY_CONSOLE=y FRAMEBUFFER_CONSOLE=y
FONT_8x8=y FONT_8x16=y SOUND=y SND=y SND_TIMER=y SND_PCM=y SND_HWDEP=y
SND_RAWMIDI=m SND_SEQUENCER=y SND_OSSEMUL=y SND_MIXER_OSS=m
SND_PCM_OSS=m SND_PCM_OSS_PLUGINS=y SND_SEQUENCER_OSS=y
SND_SUPPORT_OLD_API=y SND_VMASTER=y SND_MPU401_UART=m SND_OPL3_LIB=m
SND_VX_LIB=m SND_AC97_CODEC=m SND_DRIVERS=y SND_PCSP=y SND_MTS64=m
SND_MPU401=m SND_PORTMAN2X4=m SND_PCI=y SND_BT87X=m SND_HDA_INTEL=y
SND_HDA_HWDEP=y SND_HDA_CODEC_REALTEK=y SND_HDA_CODEC_ANALOG=y
SND_HDA_CODEC_SIGMATEL=y SND_HDA_CODEC_VIA=y SND_HDA_CODEC_ATIHDMI=y
SND_HDA_CODEC_CONEXANT=y SND_HDA_CODEC_CMEDIA=y SND_HDA_CODEC_SI3054=y
SND_HDA_GENERIC=y SND_INTEL8X0=m SND_INTEL8X0M=m SND_YMFPCI=m
SND_USB=y SND_USB_AUDIO=m SND_USB_USX2Y=m SND_USB_CAIAQ=m
SND_USB_CAIAQ_INPUT=y SND_PCMCIA=y SND_VXPOCKET=m SND_PDAUDIOCF=m
SND_SOC=m AC97_BUS=m HID_SUPPORT=y HID=y HIDRAW=y USB_HID=y
USB_HIDINPUT_POWERBOOK=y USB_HIDDEV=y USB_SUPPORT=y USB_ARCH_HAS_HCD=y
USB_ARCH_HAS_OHCI=y USB_ARCH_HAS_EHCI=y USB=y
USB_ANNOUNCE_NEW_DEVICES=y USB_DEVICEFS=y USB_EHCI_HCD=m
USB_ISP116X_HCD=m USB_OHCI_HCD=m USB_OHCI_HCD_SSB=y
USB_OHCI_LITTLE_ENDIAN=y USB_UHCI_HCD=m USB_U132_HCD=m USB_SL811_HCD=m
USB_SL811_CS=m USB_R8A66597_HCD=m USB_ACM=m USB_STORAGE=m
USB_STORAGE_DATAFAB=y USB_STORAGE_FREECOM=y USB_STORAGE_ISD200=y
USB_STORAGE_DPCM=y USB_STORAGE_USBAT=y USB_STORAGE_SDDR09=y
USB_STORAGE_SDDR55=y USB_STORAGE_JUMPSHOT=y USB_STORAGE_ALAUDA=y
USB_STORAGE_KARMA=y USB_USS720=m USB_SERIAL=m USB_EZUSB=y
USB_SERIAL_GENERIC=y USB_SERIAL_AIRCABLE=m USB_SERIAL_ARK3116=m
USB_SERIAL_CH341=m USB_SERIAL_WHITEHEAT=m USB_SERIAL_CP2101=m
USB_SERIAL_FUNSOFT=m USB_SERIAL_IPW=m USB_SERIAL_MOS7720=m
USB_SERIAL_MOS7840=m USB_SERIAL_NAVMAN=m USB_SERIAL_OTI6858=m
USB_SERIAL_OPTION=m USB_SERIAL_OMNINET=m USB_ADUTUX=m
USB_BERRY_CHARGE=m USB_PHIDGET=m USB_PHIDGETKIT=m
USB_PHIDGETMOTORCONTROL=m USB_PHIDGETSERVO=m USB_FTDI_ELAN=m
USB_APPLEDISPLAY=m USB_SISUSBVGA=m USB_SISUSBVGA_CON=y
USB_TRANCEVIBRATOR=m USB_IOWARRIOR=m USB_ATM=m USB_SPEEDTOUCH=m
USB_CXACRU=m USB_UEAGLEATM=m USB_XUSBATM=m MMC=m MMC_BLOCK=m
MMC_BLOCK_BOUNCE=y SDIO_UART=m MMC_SDHCI=m MMC_WBSD=m MMC_TIFM_SD=m
MEMSTICK=m MSPRO_BLOCK=m MEMSTICK_TIFM_MS=m MEMSTICK_JMICRON_38X=m
NEW_LEDS=y LEDS_CLASS=m LEDS_TRIGGERS=y LEDS_TRIGGER_TIMER=m
LEDS_TRIGGER_IDE_DISK=y LEDS_TRIGGER_HEARTBEAT=m INFINIBAND=m
INFINIBAND_ADDR_TRANS=y INFINIBAND_MTHCA=m INFINIBAND_IPATH=m
INFINIBAND_AMSO1100=m MLX4_INFINIBAND=m INFINIBAND_IPOIB=m
INFINIBAND_IPOIB_CM=y INFINIBAND_SRP=m INFINIBAND_ISER=m RTC_LIB=y
RTC_CLASS=y RTC_HCTOSYS=y RTC_INTF_SYSFS=y RTC_INTF_PROC=y
RTC_INTF_DEV=y RTC_INTF_DEV_UIE_EMUL=y RTC_DRV_DS1374=m
RTC_DRV_MAX6900=m RTC_DRV_M41T80=m RTC_DRV_M41T80_WDT=y RTC_DRV_CMOS=m
RTC_DRV_DS1553=m RTC_DRV_DS1742=m RTC_DRV_STK17TA8=m RTC_DRV_M48T86=m
RTC_DRV_M48T59=m RTC_DRV_V3020=m DMADEVICES=y INTEL_IOATDMA=m
DMA_ENGINE=y NET_DMA=y DCA=m AUXDISPLAY=y KS0108=m CFAG12864B=m UIO=m
UIO_CIF=m FIRMWARE_MEMMAP=y DELL_RBU=m DCDBAS=m DMIID=y EXT2_FS=y
EXT2_FS_XATTR=y EXT2_FS_POSIX_ACL=y EXT2_FS_SECURITY=y EXT3_FS=m
EXT3_FS_XATTR=y EXT3_FS_POSIX_ACL=y EXT3_FS_SECURITY=y JBD=m
FS_MBCACHE=y REISERFS_FS=y REISERFS_FS_XATTR=y REISERFS_FS_POSIX_ACL=y
REISERFS_FS_SECURITY=y JFS_FS=m JFS_POSIX_ACL=y JFS_SECURITY=y
FS_POSIX_ACL=y XFS_FS=m XFS_QUOTA=y XFS_POSIX_ACL=y XFS_RT=y GFS2_FS=m
GFS2_FS_LOCKING_DLM=m OCFS2_FS=m OCFS2_FS_O2CB=m
OCFS2_FS_USERSPACE_CLUSTER=m OCFS2_FS_STATS=y OCFS2_DEBUG_MASKLOG=y
DNOTIFY=y INOTIFY=y INOTIFY_USER=y QUOTACTL=y FUSE_FS=m GENERIC_ACL=y
ISO9660_FS=y JOLIET=y ZISOFS=y UDF_FS=y UDF_NLS=y FAT_FS=y MSDOS_FS=m
VFAT_FS=y NTFS_FS=y NTFS_RW=y PROC_FS=y PROC_KCORE=y PROC_VMCORE=y
PROC_SYSCTL=y SYSFS=y TMPFS=y TMPFS_POSIX_ACL=y CONFIGFS_FS=y
AFFS_FS=m ECRYPT_FS=m HFS_FS=m HFSPLUS_FS=m MINIX_FS=m HPFS_FS=m
ROMFS_FS=m SYSV_FS=m UFS_FS=m NETWORK_FILESYSTEMS=y NFS_FS=m NFS_V3=y
NFSD=m NFSD_V3=y LOCKD=m LOCKD_V4=y EXPORTFS=m NFS_COMMON=y SUNRPC=m
SUNRPC_XPRT_RDMA=m CIFS=m CIFS_XATTR=y CIFS_POSIX=y
PARTITION_ADVANCED=y OSF_PARTITION=y AMIGA_PARTITION=y
ATARI_PARTITION=y MAC_PARTITION=y MSDOS_PARTITION=y BSD_DISKLABEL=y
MINIX_SUBPARTITION=y SOLARIS_X86_PARTITION=y UNIXWARE_DISKLABEL=y
LDM_PARTITION=y SGI_PARTITION=y SUN_PARTITION=y KARMA_PARTITION=y
EFI_PARTITION=y SYSV68_PARTITION=y NLS=y NLS_CODEPAGE_437=y
NLS_CODEPAGE_737=m NLS_CODEPAGE_775=m NLS_CODEPAGE_850=m
NLS_CODEPAGE_852=m NLS_CODEPAGE_855=m NLS_CODEPAGE_857=m
NLS_CODEPAGE_860=m NLS_CODEPAGE_861=m NLS_CODEPAGE_862=m
NLS_CODEPAGE_863=m NLS_CODEPAGE_864=m NLS_CODEPAGE_865=m
NLS_CODEPAGE_866=m NLS_CODEPAGE_869=m NLS_CODEPAGE_936=m
NLS_CODEPAGE_950=m NLS_CODEPAGE_932=m NLS_CODEPAGE_949=m
NLS_CODEPAGE_874=m NLS_ISO8859_8=m NLS_CODEPAGE_1250=m
NLS_CODEPAGE_1251=m NLS_ASCII=y NLS_ISO8859_1=y NLS_ISO8859_2=m
NLS_ISO8859_3=m NLS_ISO8859_4=m NLS_ISO8859_5=m NLS_ISO8859_6=m
NLS_ISO8859_7=m NLS_ISO8859_9=m NLS_ISO8859_13=m NLS_ISO8859_14=m
NLS_ISO8859_15=m NLS_KOI8_R=m NLS_KOI8_U=m NLS_UTF8=y DLM=m
TRACE_IRQFLAGS_SUPPORT=y PRINTK_TIME=y ENABLE_WARN_DEPRECATED=y
ENABLE_MUST_CHECK=y MAGIC_SYSRQ=y UNUSED_SYMBOLS=y DEBUG_KERNEL=y
DETECT_SOFTLOCKUP=y DEBUG_BUGVERBOSE=y DEBUG_INFO=y FRAME_POINTER=y
HAVE_FTRACE=y HAVE_DYNAMIC_FTRACE=y HAVE_ARCH_KGDB=y
X86_VERBOSE_BOOTUP=y IO_DELAY_0X80=y KEYS=y KEYS_DEBUG_PROC_KEYS=y
SECURITY_FILE_CAPABILITIES=y XOR_BLOCKS=m ASYNC_CORE=m ASYNC_MEMCPY=m
ASYNC_XOR=m CRYPTO=y CRYPTO_ALGAPI=y CRYPTO_AEAD=m CRYPTO_BLKCIPHER=y
CRYPTO_HASH=y CRYPTO_MANAGER=y CRYPTO_GF128MUL=m CRYPTO_CRYPTD=m
CRYPTO_AUTHENC=m CRYPTO_CCM=m CRYPTO_GCM=m CRYPTO_SEQIV=m CRYPTO_CBC=y
CRYPTO_CTR=m CRYPTO_ECB=m CRYPTO_LRW=m CRYPTO_PCBC=y CRYPTO_XTS=m
CRYPTO_HMAC=y CRYPTO_XCBC=y CRYPTO_CRC32C=m CRYPTO_MD5=y
CRYPTO_MICHAEL_MIC=m CRYPTO_SHA1=y CRYPTO_SHA256=y CRYPTO_SHA512=y
CRYPTO_TGR192=m CRYPTO_WP512=m CRYPTO_AES=y CRYPTO_AES_X86_64=y
CRYPTO_ANUBIS=m CRYPTO_ARC4=m CRYPTO_BLOWFISH=y CRYPTO_CAMELLIA=m
CRYPTO_CAST5=m CRYPTO_CAST6=y CRYPTO_DES=y CRYPTO_FCRYPT=m
CRYPTO_KHAZAD=m CRYPTO_SALSA20=m CRYPTO_SALSA20_X86_64=m CRYPTO_SEED=m
CRYPTO_SERPENT=y CRYPTO_TEA=m CRYPTO_TWOFISH=m CRYPTO_TWOFISH_COMMON=y
CRYPTO_TWOFISH_X86_64=y CRYPTO_DEFLATE=m CRYPTO_LZO=m CRYPTO_HW=y
HAVE_KVM=y VIRTUALIZATION=y KVM=m KVM_INTEL=m KVM_AMD=m BITREVERSE=y
GENERIC_FIND_FIRST_BIT=y GENERIC_FIND_NEXT_BIT=y CRC_CCITT=m CRC16=y
CRC_ITU_T=y CRC32=y CRC7=m LIBCRC32C=m ZLIB_INFLATE=y ZLIB_DEFLATE=m
LZO_COMPRESS=m LZO_DECOMPRESS=m TEXTSEARCH=y TEXTSEARCH_KMP=m
TEXTSEARCH_BM=m TEXTSEARCH_FSM=m PLIST=y HAS_IOMEM=y HAS_IOPORT=y
HAS_DMA=y CHECK_SIGNATURE=y
$

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>(null</dc:creator>
    <dc:date>2008-11-30T18:19:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3674">
    <title>RFC: Latency reducing TCP modifications for thin-stream interactive applications</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3674</link>
    <description>A wide range of Internet-based services that use reliable transport 
protocols display what we call thin-stream properties. This means 
that the application sends data with such a low rate that the 
retransmission mechanisms of the transport protocol are not fully 
effective. In time-dependent scenarios (like online games, control 
systems or some sensor networks) where the user experience depends 
on the data delivery latency, packet loss can be devastating for 
the service quality. Extreme latencies are caused by TCP's 
dependency on the arrival of new data from the application to trigger 
retransmissions effectively through fast retransmit instead of 
waiting for long timeouts. After analyzing a large number of 
time-dependent interactive applications, we have seen that they 
often produce thin streams (as described above) and also stay with 
this traffic pattern throughout its entire lifespan. The 
combination of time-dependency and the fact that the streams 
provoke high latencies when using TCP is unfortunate.

In order to reduce application-layer latency when packets are lost, 
we have implemented modifications to the TCP retransmission 
mechanisms in the Linux kernel. We have also implemented a 
bundling mechanisms that introduces redundancy in order to 
preempt the experience of packet loss. In short, if the kernel 
detects a thin stream, we trade a small amount of bandwidth for 
latency reduction and apply:

Removal of exponential backoff: To prevent an exponential increase 
in retransmission delay for a repeatedly lost packet, we remove 
the exponential factor.

FASTER Fast Retransmit: Instead of waiting for 3 duplicate 
acknowledgments before sending a fast retransmission, we retransmit 
after receiving only one.

Redundant Data Bundling: We copy (bundle) data from the 
unacknowledged packets in the send buffer into the next packet if
 space is available.

These enhancements are applied only if the stream is detected as
thin. 
This is accomplished by defining thresholds for packet size and 
packets in flight. Also, we consider the redundancy introduced 
by our mechanisms acceptable because the streams are so thin 
that normal congestion mechanisms do not come into effect.

We have implemented these changes in the Linux kernel (2.6.23.8), 
and have tested the modifications on a wide range of different 
thin-stream applications (Skype, BZFlag, SSH, ...) under varying 
network conditions. Our results show that applications which use 
TCP for interactive time-dependent traffic will experience a 
reduction in both maximum and average latency, giving the users 
quicker feedback to their interactions.

Availability of this kind of mechanisms will help provide 
customizability for interactive network services. The quickly 
growing market for Linux gaming may benefit from lowered latency. 
As an example, most of the large MMORPG's today use TCP (like World 
of Warcraft and Age of Conan) and several multimedia applications 
(like Skype) use TCP fallback if UDP is blocked.

The modifications are all TCP standard compliant and transparent
to the receiver. As such, a game server could implement the 
modifications and get a one-way latency benefit without touching 
any of the clients.

In the following papers, we discuss the benefits and tradeoffs of 
the decribed mechanisms:
"The Fun of using TCP for an MMORPG": 
http://simula.no/research/networks/publications/Griwodz.2006.1
"TCP Enhancements For Interactive Thin-Stream Applications": 
http://simula.no/research/networks/publications/Simula.ND.83
"Improving application layer latency for reliable thin-stream game
traffic": http://simula.no/research/networks/publications/Simula.ND.185
"TCP mechanisms for improving the user experience for time-dependent 
thin-stream applications": 
http://simula.no/research/networks/publications/Simula.ND.159
Our presentation from the 2008 Linux-Kongress can be found here: 
http://data.guug.de/slides/lk2008/lk-2008-Andreas-Petlund.pdf

We have included a patch for the 2.6.23.8 kernel which implements the 
modifications. The patch is not properly segmented and formatted, but 
attached as a reference. We are currently working on an updated patch 
set which we hopefully will be able to post in a couple of weeks. This 
will also give us time to integrate any ideas that may arise from the 
discussions here.

We are happy for all feedback regarding this:
Is something like this viable to introduce into the kernel? Is the 
scheme for thin-stream detection mechanism acceptable. Any viewpoints 
on the architecture and design? 


diff -Nur linux-2.6.23.8.vanilla/include/linux/sysctl.h linux-2.6.23.8-tcp-thin/include/linux/sysctl.h
--- linux-2.6.23.8.vanilla/include/linux/sysctl.h2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/include/linux/sysctl.h2008-07-03 11:47:21.000000000 +0200
&lt; at &gt;&lt; at &gt; -355,6 +355,11 &lt; at &gt;&lt; at &gt;
 NET_IPV4_ROUTE=18,
 NET_IPV4_FIB_HASH=19,
 NET_IPV4_NETFILTER=20,
+
+NET_IPV4_TCP_FORCE_THIN_RDB=29,         /* Added &lt; at &gt; Simula */
+NET_IPV4_TCP_FORCE_THIN_RM_EXPB=30,     /* Added &lt; at &gt; Simula */
+NET_IPV4_TCP_FORCE_THIN_DUPACK=31,      /* Added &lt; at &gt; Simula */
+NET_IPV4_TCP_RDB_MAX_BUNDLE_BYTES=32,   /* Added &lt; at &gt; Simula */
 
 NET_IPV4_TCP_TIMESTAMPS=33,
 NET_IPV4_TCP_WINDOW_SCALING=34,
diff -Nur linux-2.6.23.8.vanilla/include/linux/tcp.h linux-2.6.23.8-tcp-thin/include/linux/tcp.h
--- linux-2.6.23.8.vanilla/include/linux/tcp.h2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/include/linux/tcp.h2008-07-02 15:17:38.000000000 +0200
&lt; at &gt;&lt; at &gt; -97,6 +97,10 &lt; at &gt;&lt; at &gt;
 #define TCP_CONGESTION13/* Congestion control algorithm */
 #define TCP_MD5SIG14/* TCP MD5 Signature (RFC2385) */
 
+#define TCP_THIN_RDB            15      /* Added &lt; at &gt; Simula - Enable redundant data bundling  */
+#define TCP_THIN_RM_EXPB        16      /* Added &lt; at &gt; Simula - Remove exponential backoff  */
+#define TCP_THIN_DUPACK         17      /* Added &lt; at &gt; Simula - Reduce number of dupAcks needed */
+
 #define TCPI_OPT_TIMESTAMPS1
 #define TCPI_OPT_SACK2
 #define TCPI_OPT_WSCALE4
&lt; at &gt;&lt; at &gt; -296,6 +300,10 &lt; at &gt;&lt; at &gt;
 u8nonagle;/* Disable Nagle algorithm?             */
 u8keepalive_probes; /* num of allowed keep alive probes*/
 
+u8      thin_rdb;       /* Enable RDB                           */
+u8      thin_rm_expb;   /* Remove exp. backoff                  */
+u8      thin_dupack;    /* Remove dupack                        */
+
 /* RTT measurement */
 u32srtt;/* smoothed round trip time &lt;&lt; 3*/
 u32mdev;/* medium deviation*/
diff -Nur linux-2.6.23.8.vanilla/include/net/sock.h linux-2.6.23.8-tcp-thin/include/net/sock.h
--- linux-2.6.23.8.vanilla/include/net/sock.h2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/include/net/sock.h2008-07-02 17:07:10.000000000 +0200
&lt; at &gt;&lt; at &gt; -462,7 +462,10 &lt; at &gt;&lt; at &gt;
 
 static inline void sk_stream_free_skb(struct sock *sk, struct sk_buff *skb)
 {
-skb_truesize_check(skb);
+/* Modified &lt; at &gt; Simula 
+   skb_truesize_check creates unnecessary 
+   noise when combined with RDB */
+//skb_truesize_check(skb);
 sock_set_flag(sk, SOCK_QUEUE_SHRUNK);
 sk-&gt;sk_wmem_queued   -= skb-&gt;truesize;
 sk-&gt;sk_forward_alloc += skb-&gt;truesize;
diff -Nur linux-2.6.23.8.vanilla/include/net/tcp.h linux-2.6.23.8-tcp-thin/include/net/tcp.h
--- linux-2.6.23.8.vanilla/include/net/tcp.h2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/include/net/tcp.h2008-07-03 11:48:54.000000000 +0200
&lt; at &gt;&lt; at &gt; -188,9 +188,19 &lt; at &gt;&lt; at &gt;
 #define TCP_NAGLE_CORK2/* Socket is corked    */
 #define TCP_NAGLE_PUSH4/* Cork is overridden for already queued data */
 
+/* Added &lt; at &gt; Simula - Thin stream support */
+#define TCP_FORCE_THIN_RDB            0 /* Thin streams: exp. backoff   default off */
+#define TCP_FORCE_THIN_RM_EXPB        0 /* Thin streams: dynamic dupack default off */
+#define TCP_FORCE_THIN_DUPACK         0 /* Thin streams: smaller minRTO default off */
+#define TCP_RDB_MAX_BUNDLE_BYTES      0 /* Thin streams: Limit maximum bundled bytes */
+
 extern struct inet_timewait_death_row tcp_death_row;
 
 /* sysctl variables for tcp */
+extern int sysctl_tcp_force_thin_rdb;         /* Added &lt; at &gt; Simula */
+extern int sysctl_tcp_force_thin_rm_expb;     /* Added &lt; at &gt; Simula */
+extern int sysctl_tcp_force_thin_dupack;      /* Added &lt; at &gt; Simula */
+extern int sysctl_tcp_rdb_max_bundle_bytes;   /* Added &lt; at &gt; Simula */
 extern int sysctl_tcp_timestamps;
 extern int sysctl_tcp_window_scaling;
 extern int sysctl_tcp_sack;
&lt; at &gt;&lt; at &gt; -723,6 +733,16 &lt; at &gt;&lt; at &gt;
 return (tp-&gt;packets_out - tp-&gt;left_out + tp-&gt;retrans_out);
 }
 
+/* Added &lt; at &gt; Simula
+ *
+ * To determine whether a stream is thin or not
+ * return 1 if thin, 0 othervice 
+ */
+static inline unsigned int tcp_stream_is_thin(const struct tcp_sock *tp)
+{
+return (tp-&gt;packets_out &lt; 4 ? 1 : 0);
+}
+
 /* If cwnd &gt; ssthresh, we may raise ssthresh to be half-way to cwnd.
  * The exception is rate halving phase, when cwnd is decreasing towards
  * ssthresh.
diff -Nur linux-2.6.23.8.vanilla/net/ipv4/sysctl_net_ipv4.c linux-2.6.23.8-tcp-thin/net/ipv4/sysctl_net_ipv4.c
--- linux-2.6.23.8.vanilla/net/ipv4/sysctl_net_ipv4.c2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/net/ipv4/sysctl_net_ipv4.c2008-07-03 11:49:59.000000000 +0200
&lt; at &gt;&lt; at &gt; -187,6 +187,38 &lt; at &gt;&lt; at &gt;
 }
 
 ctl_table ipv4_table[] = {
+{       /* Added &lt; at &gt; Simula for thin streams */
+                .ctl_name       = NET_IPV4_TCP_FORCE_THIN_RDB,
+                .procname       = "tcp_force_thin_rdb",
+                .data           = &amp;sysctl_tcp_force_thin_rdb,
+                .maxlen         = sizeof(int),
+                .mode           = 0644,
+                .proc_handler   = &amp;proc_dointvec
+        },
+{       /* Added &lt; at &gt; Simula for thin streams */
+                .ctl_name       = NET_IPV4_TCP_FORCE_THIN_RM_EXPB,
+                .procname       = "tcp_force_thin_rm_expb",
+                .data           = &amp;sysctl_tcp_force_thin_rm_expb,
+                .maxlen         = sizeof(int),
+                .mode           = 0644,
+                .proc_handler   = &amp;proc_dointvec
+        },
+{       /* Added &lt; at &gt; Simula for thin streams */
+                .ctl_name       = NET_IPV4_TCP_FORCE_THIN_DUPACK,
+                .procname       = "tcp_force_thin_dupack",
+                .data           = &amp;sysctl_tcp_force_thin_dupack,
+                .maxlen         = sizeof(int),
+                .mode           = 0644,
+                .proc_handler   = &amp;proc_dointvec
+        },
+{       /* Added &lt; at &gt; Simula for thin streams */
+                .ctl_name       = NET_IPV4_TCP_RDB_MAX_BUNDLE_BYTES,
+                .procname       = "tcp_rdb_max_bundle_bytes",
+                .data           = &amp;sysctl_tcp_rdb_max_bundle_bytes,
+                .maxlen         = sizeof(int),
+                .mode           = 0644,
+                .proc_handler   = &amp;proc_dointvec
+        },
 {
 .ctl_name= NET_IPV4_TCP_TIMESTAMPS,
 .procname= "tcp_timestamps",
diff -Nur linux-2.6.23.8.vanilla/net/ipv4/tcp.c linux-2.6.23.8-tcp-thin/net/ipv4/tcp.c
--- linux-2.6.23.8.vanilla/net/ipv4/tcp.c2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/net/ipv4/tcp.c2008-07-03 11:51:55.000000000 +0200
&lt; at &gt;&lt; at &gt; -270,6 +270,10 &lt; at &gt;&lt; at &gt;
 
 int sysctl_tcp_fin_timeout __read_mostly = TCP_FIN_TIMEOUT;
 
+/* Added &lt; at &gt; Simula */
+int sysctl_tcp_force_thin_rdb __read_mostly = TCP_FORCE_THIN_RDB;
+int sysctl_tcp_rdb_max_bundle_bytes __read_mostly = TCP_RDB_MAX_BUNDLE_BYTES;
+
 DEFINE_SNMP_STAT(struct tcp_mib, tcp_statistics) __read_mostly;
 
 atomic_t tcp_orphan_count = ATOMIC_INIT(0);
&lt; at &gt;&lt; at &gt; -658,6 +662,167 &lt; at &gt;&lt; at &gt;
 return tmp;
 }
 
+/* Added at Simula to support RDB */
+static int tcp_trans_merge_prev(struct sock *sk, struct sk_buff *skb, int mss_now)
+{
+struct tcp_sock *tp = tcp_sk(sk);
+
+/* Make sure that this isn't referenced by somebody else */
+
+if(!skb_cloned(skb)){
+struct sk_buff *prev_skb = skb-&gt;prev;
+int skb_size = skb-&gt;len;
+int old_headlen = 0;
+int ua_data = 0;
+int uad_head = 0;
+int uad_frags = 0;
+int ua_nr_frags = 0;
+int ua_frags_diff = 0;
+
+/* Since this technique currently does not support SACK, I
+ * return -1 if the previous has been SACK'd. */
+if(TCP_SKB_CB(prev_skb)-&gt;sacked &amp; TCPCB_SACKED_ACKED){
+return -1;
+}
+
+/* Current skb is out of window. */
+if (after(TCP_SKB_CB(skb)-&gt;end_seq, tp-&gt;snd_una+tp-&gt;snd_wnd)){
+return -1;
+}
+
+/*TODO: Optimize this part with regards to how the 
+  variables are initialized */
+
+/*Calculates the ammount of unacked data that is available*/
+ua_data = (TCP_SKB_CB(prev_skb)-&gt;end_seq - tp-&gt;snd_una &gt; 
+   prev_skb-&gt;len ? prev_skb-&gt;len : 
+   TCP_SKB_CB(prev_skb)-&gt;end_seq - tp-&gt;snd_una);
+ua_frags_diff = ua_data - prev_skb-&gt;data_len;
+uad_frags = (ua_frags_diff &gt; 0 ? prev_skb-&gt;data_len : ua_data);
+uad_head = (ua_frags_diff &gt; 0 ? ua_data - uad_frags : 0);
+
+if(ua_data &lt;= 0)
+return -1;
+
+if(uad_frags &gt; 0){
+int i = 0;
+int bytes_frags = 0;
+
+if(uad_frags == prev_skb-&gt;data_len){
+ua_nr_frags = skb_shinfo(prev_skb)-&gt;nr_frags;
+} else{
+for(i=skb_shinfo(prev_skb)-&gt;nr_frags - 1; i&gt;=0; i--){
+if(skb_shinfo(prev_skb)-&gt;frags[i].size 
+   + bytes_frags == uad_frags){
+ua_nr_frags += 1;
+break;
+}   
+ua_nr_frags += 1;
+bytes_frags += skb_shinfo(prev_skb)-&gt;frags[i].size;
+}
+}
+}
+
+/*
+ * Do the diffrenet checks on size and content, and return if
+ * something will not work.
+ *
+ * TODO: Support copying some bytes
+ *
+ * 1. Larger than MSS.
+ * 2. Enough room for the stuff stored in the linear area
+ * 3. Enoug room for the pages
+ * 4. If both skbs have some data stored in the linear area, and prev_skb
+ * also has some stored in the paged area, they cannot be merged easily.
+ * 5. If prev_skb is linear, then this one has to be it as well.
+ */
+if ((sysctl_tcp_rdb_max_bundle_bytes == 0 &amp;&amp; ((skb_size + ua_data) &gt; mss_now))
+    || (sysctl_tcp_rdb_max_bundle_bytes &gt; 0 &amp;&amp; ((skb_size + ua_data) &gt;
+sysctl_tcp_rdb_max_bundle_bytes))){
+return -1;
+}
+
+/* We need to know tailroom, even if it is nonlinear */
+if(uad_head &gt; (skb-&gt;end - skb-&gt;tail)){
+return -1;
+}
+
+if(skb_is_nonlinear(skb) &amp;&amp; (uad_frags &gt; 0)){
+if((ua_nr_frags +
+    skb_shinfo(skb)-&gt;nr_frags) &gt; MAX_SKB_FRAGS){
+return -1;
+}
+
+if(skb_headlen(skb) &gt; 0){
+return -1;
+}
+}
+
+if((uad_frags &gt; 0) &amp;&amp; skb_headlen(skb) &gt; 0){
+return -1;
+}
+
+/* To avoid duplicate copies (and copies
+   where parts have been acked) */
+if(TCP_SKB_CB(skb)-&gt;seq &lt;= (TCP_SKB_CB(prev_skb)-&gt;end_seq - ua_data)){
+return -1;
+}
+
+/*SYN's are holy*/
+if(TCP_SKB_CB(skb)-&gt;flags &amp; TCPCB_FLAG_SYN || TCP_SKB_CB(skb)-&gt;flags &amp; TCPCB_FLAG_FIN){
+return -1;
+}
+
+/* Copy linear data */
+if(uad_head &gt; 0){
+
+/* Add required space to the header. Can't use put due to linearity */
+old_headlen = skb_headlen(skb);
+skb-&gt;tail += uad_head;
+skb-&gt;len += uad_head;
+
+if(skb_headlen(skb) &gt; 0){
+memmove(skb-&gt;data + uad_head, skb-&gt;data, old_headlen);
+}
+
+skb_copy_to_linear_data(skb, prev_skb-&gt;data + (skb_headlen(prev_skb) - uad_head), uad_head);
+}
+
+/*Copy paged data*/
+if(uad_frags &gt; 0){
+int i = 0;
+/*Must move data backwards in the array.*/
+if(skb_is_nonlinear(skb)){
+memmove(skb_shinfo(skb)-&gt;frags + ua_nr_frags,
+skb_shinfo(skb)-&gt;frags,
+skb_shinfo(skb)-&gt;nr_frags*sizeof(skb_frag_t));
+}
+
+/*Copy info and update pages*/
+memcpy(skb_shinfo(skb)-&gt;frags,
+       skb_shinfo(prev_skb)-&gt;frags + (skb_shinfo(prev_skb)-&gt;nr_frags - ua_nr_frags),
+       ua_nr_frags*sizeof(skb_frag_t));
+
+for(i=0; i&lt;ua_nr_frags;i++){
+get_page(skb_shinfo(skb)-&gt;frags[i].page);
+}
+
+skb_shinfo(skb)-&gt;nr_frags += ua_nr_frags;
+skb-&gt;data_len += uad_frags;
+skb-&gt;len += uad_frags;
+}
+
+TCP_SKB_CB(skb)-&gt;seq = TCP_SKB_CB(prev_skb)-&gt;end_seq - ua_data;
+
+if(skb-&gt;ip_summed == CHECKSUM_PARTIAL)
+skb-&gt;csum = CHECKSUM_PARTIAL;
+else
+skb-&gt;csum = skb_checksum(skb, 0, skb-&gt;len, 0);
+}
+
+return 1;
+}
+
 int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
 size_t size)
 {
&lt; at &gt;&lt; at &gt; -825,6 +990,16 &lt; at &gt;&lt; at &gt;
 
 from += copy;
 copied += copy;
+
+/* Added at Simula to support RDB */
+if(((tp-&gt;thin_rdb || sysctl_tcp_force_thin_rdb)) &amp;&amp; skb-&gt;len &lt; mss_now){
+if(skb-&gt;prev != (struct sk_buff*) &amp;(sk)-&gt;sk_write_queue
+   &amp;&amp; !(TCP_SKB_CB(skb)-&gt;flags &amp; TCPCB_FLAG_SYN)
+   &amp;&amp; !(TCP_SKB_CB(skb)-&gt;flags &amp; TCPCB_FLAG_FIN)){
+tcp_trans_merge_prev(sk, skb, mss_now);
+}
+} /* End - Simula */
+
 if ((seglen -= copy) == 0 &amp;&amp; iovlen == 0)
 goto out;
 
&lt; at &gt;&lt; at &gt; -1870,7 +2045,25 &lt; at &gt;&lt; at &gt;
 tcp_push_pending_frames(sk);
 }
 break;
-
+
+        /* Added &lt; at &gt; Simula. Support for thin streams */
+case TCP_THIN_RDB:
+if(val)
+tp-&gt;thin_rdb = 1;
+break;
+
+        /* Added &lt; at &gt; Simula. Support for thin streams */
+case TCP_THIN_RM_EXPB:
+if(val)
+tp-&gt;thin_rm_expb = 1;
+break;
+
+        /* Added &lt; at &gt; Simula. Support for thin streams */
+case TCP_THIN_DUPACK:
+if(val)
+tp-&gt;thin_dupack = 1;
+break;
+
 case TCP_KEEPIDLE:
 if (val &lt; 1 || val &gt; MAX_TCP_KEEPIDLE)
 err = -EINVAL;
diff -Nur linux-2.6.23.8.vanilla/net/ipv4/tcp_input.c linux-2.6.23.8-tcp-thin/net/ipv4/tcp_input.c
--- linux-2.6.23.8.vanilla/net/ipv4/tcp_input.c2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/net/ipv4/tcp_input.c2008-07-03 11:57:08.000000000 +0200
&lt; at &gt;&lt; at &gt; -89,6 +89,9 &lt; at &gt;&lt; at &gt;
 int sysctl_tcp_frto_response __read_mostly;
 int sysctl_tcp_nometrics_save __read_mostly;
 
+/* Added &lt; at &gt; Simula */
+int sysctl_tcp_force_thin_dupack __read_mostly = TCP_FORCE_THIN_DUPACK;
+
 int sysctl_tcp_moderate_rcvbuf __read_mostly = 1;
 int sysctl_tcp_abc __read_mostly;
 
&lt; at &gt;&lt; at &gt; -1709,6 +1712,12 &lt; at &gt;&lt; at &gt;
  */
 return 1;
 }
+
+/*Added at Simula to modify fast retransmit */
+if ((tp-&gt;thin_dupack || sysctl_tcp_force_thin_dupack) &amp;&amp;
+    tcp_fackets_out(tp) &gt; 1 &amp;&amp; tcp_stream_is_thin(tp)){
+  return 1;
+}
 
 return 0;
 }
&lt; at &gt;&lt; at &gt; -2442,30 +2451,127 &lt; at &gt;&lt; at &gt;
 {
 struct tcp_sock *tp = tcp_sk(sk);
 const struct inet_connection_sock *icsk = inet_csk(sk);
-struct sk_buff *skb;
+struct sk_buff *skb = tcp_write_queue_head(sk);
+struct sk_buff *next_skb;
+
 __u32 now = tcp_time_stamp;
 int acked = 0;
 int prior_packets = tp-&gt;packets_out;
+
+/*Added at Simula for RDB support*/
+__u8 done = 0;
+int remove = 0;
+int remove_head = 0;
+int remove_frags = 0;
+int no_frags;
+int data_frags;
+int i;
+
 __s32 seq_rtt = -1;
 ktime_t last_ackt = net_invalid_timestamp();
-
-while ((skb = tcp_write_queue_head(sk)) &amp;&amp;
-       skb != tcp_send_head(sk)) {
+
+while (skb != NULL 
+       &amp;&amp; ((!(tp-&gt;thin_rdb || sysctl_tcp_force_thin_rdb) 
+    &amp;&amp; skb != tcp_send_head(sk) 
+    &amp;&amp; skb != (struct sk_buff *)&amp;sk-&gt;sk_write_queue) 
+   || ((tp-&gt;thin_rdb || sysctl_tcp_force_thin_rdb) 
+       &amp;&amp; skb != (struct sk_buff *)&amp;sk-&gt;sk_write_queue))){
 struct tcp_skb_cb *scb = TCP_SKB_CB(skb);
 __u8 sacked = scb-&gt;sacked;
-
+
+if(skb == NULL){
+break;
+}
+
+if(skb == tcp_send_head(sk)){
+break;
+}
+
+if(skb == (struct sk_buff *)&amp;sk-&gt;sk_write_queue){
+break;
+}
+
 /* If our packet is before the ack sequence we can
  * discard it as it's confirmed to have arrived at
  * the other end.
  */
 if (after(scb-&gt;end_seq, tp-&gt;snd_una)) {
-if (tcp_skb_pcount(skb) &gt; 1 &amp;&amp;
-    after(tp-&gt;snd_una, scb-&gt;seq))
-acked |= tcp_tso_acked(sk, skb,
-       now, &amp;seq_rtt);
-break;
+if (tcp_skb_pcount(skb) &gt; 1 &amp;&amp; after(tp-&gt;snd_una, scb-&gt;seq))
+acked |= tcp_tso_acked(sk, skb, now, &amp;seq_rtt);
+
+done = 1;
+
+/* Added at Simula for RDB support*/
+if ((tp-&gt;thin_rdb || sysctl_tcp_force_thin_rdb) &amp;&amp; after(tp-&gt;snd_una, scb-&gt;seq)) {
+if (!skb_cloned(skb) &amp;&amp; !(scb-&gt;flags &amp; TCPCB_FLAG_SYN)){
+remove = tp-&gt;snd_una - scb-&gt;seq;
+remove_head = (remove &gt; skb_headlen(skb) ? 
+       skb_headlen(skb) : remove);
+remove_frags = (remove &gt; skb_headlen(skb) ? 
+remove - remove_head : 0);
+
+/* Has linear data */
+if(skb_headlen(skb) &gt; 0 &amp;&amp; remove_head &gt; 0){
+memmove(skb-&gt;data,
+skb-&gt;data + remove_head,
+skb_headlen(skb) - remove_head);
+
+skb-&gt;tail -= remove_head;
+}
+
+if(skb_is_nonlinear(skb) &amp;&amp; remove_frags &gt; 0){
+no_frags = 0;
+data_frags = 0;
+
+/*Remove unecessary pages*/
+for(i=0; i&lt;skb_shinfo(skb)-&gt;nr_frags; i++){
+if(data_frags + skb_shinfo(skb)-&gt;frags[i].size 
+   == remove_frags){
+put_page(skb_shinfo(skb)-&gt;frags[i].page);
+no_frags += 1;
+break;
+}
+put_page(skb_shinfo(skb)-&gt;frags[i].page);
+no_frags += 1;
+data_frags += skb_shinfo(skb)-&gt;frags[i].size;
+}
+
+if(skb_shinfo(skb)-&gt;nr_frags &gt; no_frags)
+memmove(skb_shinfo(skb)-&gt;frags,
+skb_shinfo(skb)-&gt;frags + no_frags,
+(skb_shinfo(skb)-&gt;nr_frags 
+ - no_frags)*sizeof(skb_frag_t));
+
+skb-&gt;data_len -= remove_frags;
+skb_shinfo(skb)-&gt;nr_frags -= no_frags;
+
+}
+
+scb-&gt;seq += remove;
+skb-&gt;len -= remove;
+
+if(skb-&gt;ip_summed == CHECKSUM_PARTIAL)
+skb-&gt;csum = CHECKSUM_PARTIAL;
+else
+skb-&gt;csum = skb_checksum(skb, 0, skb-&gt;len, 0);
+
+}
+
+/*Only move forward if data could be removed from this packet*/
+done = 2;
+
+}
+
+if(done == 1 || tcp_skb_is_last(sk,skb)){
+break;
+} else if(done == 2){
+skb = skb-&gt;next;
+done = 1;
+continue;
+}
+
 }
-
+
 /* Initial outgoing SYN's get put onto the write_queue
  * just like anything else we transmit.  It is not
  * true data, and if we misinform our callers that
&lt; at &gt;&lt; at &gt; -2479,14 +2585,14 &lt; at &gt;&lt; at &gt;
 acked |= FLAG_SYN_ACKED;
 tp-&gt;retrans_stamp = 0;
 }
-
+
 /* MTU probing checks */
 if (icsk-&gt;icsk_mtup.probe_size) {
 if (!after(tp-&gt;mtu_probe.probe_seq_end, TCP_SKB_CB(skb)-&gt;end_seq)) {
 tcp_mtup_probe_success(sk, skb);
 }
 }
-
+
 if (sacked) {
 if (sacked &amp; TCPCB_RETRANS) {
 if (sacked &amp; TCPCB_SACKED_RETRANS)
&lt; at &gt;&lt; at &gt; -2510,24 +2616,32 &lt; at &gt;&lt; at &gt;
 seq_rtt = now - scb-&gt;when;
 last_ackt = skb-&gt;tstamp;
 }
+
+if ((tp-&gt;thin_rdb || sysctl_tcp_force_thin_rdb) &amp;&amp; skb == tcp_send_head(sk)) {
+tcp_advance_send_head(sk, skb);
+}
+
 tcp_dec_pcount_approx(&amp;tp-&gt;fackets_out, skb);
 tcp_packets_out_dec(tp, skb);
+next_skb = skb-&gt;next;
 tcp_unlink_write_queue(skb, sk);
 sk_stream_free_skb(sk, skb);
 clear_all_retrans_hints(tp);
+/* Added at Simula to support RDB */
+skb = next_skb;
 }
-
+
 if (acked&amp;FLAG_ACKED) {
 u32 pkts_acked = prior_packets - tp-&gt;packets_out;
 const struct tcp_congestion_ops *ca_ops
 = inet_csk(sk)-&gt;icsk_ca_ops;
-
+
 tcp_ack_update_rtt(sk, acked, seq_rtt);
 tcp_ack_packets_out(sk);
-
+
 if (ca_ops-&gt;pkts_acked) {
 s32 rtt_us = -1;
-
+
 /* Is the ACK triggering packet unambiguous? */
 if (!(acked &amp; FLAG_RETRANS_DATA_ACKED)) {
 /* High resolution needed and available? */
diff -Nur linux-2.6.23.8.vanilla/net/ipv4/tcp_output.c linux-2.6.23.8-tcp-thin/net/ipv4/tcp_output.c
--- linux-2.6.23.8.vanilla/net/ipv4/tcp_output.c2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/net/ipv4/tcp_output.c2008-07-03 11:55:45.000000000 +0200
&lt; at &gt;&lt; at &gt; -1653,7 +1653,7 &lt; at &gt;&lt; at &gt;
 
 BUG_ON(tcp_skb_pcount(skb) != 1 ||
        tcp_skb_pcount(next_skb) != 1);
-
+
 /* changing transmit queue under us so clear hints */
 clear_all_retrans_hints(tp);
 
&lt; at &gt;&lt; at &gt; -1702,6 +1702,166 &lt; at &gt;&lt; at &gt;
 }
 }
 
+/* Added at Simula. Variation of the regular collapse,
+   adapted to support RDB  */
+static void tcp_retrans_merge_redundant(struct sock *sk,
+struct sk_buff *skb,
+int mss_now)
+{
+struct tcp_sock *tp = tcp_sk(sk);
+struct sk_buff *next_skb = skb-&gt;next;
+int skb_size = skb-&gt;len;
+int new_data = 0;
+int new_data_head = 0;
+int new_data_frags = 0;
+int new_frags = 0;
+int old_headlen = 0;
+
+int i;
+int data_frags = 0;
+
+/* Loop through as many packets as possible
+ * (will create a lot of redundant data, but WHATEVER).
+ * The only packet this MIGHT be critical for is
+ * if this packet is the last in the retrans-queue.
+ *
+ * Make sure that the first skb isnt already in
+ * use by somebody else. */
+
+if (!skb_cloned(skb)) {
+/* Iterate through the retransmit queue */
+for (; (next_skb != (sk)-&gt;sk_send_head) &amp;&amp; 
+     (next_skb != (struct sk_buff *) &amp;(sk)-&gt;sk_write_queue); 
+     next_skb = next_skb-&gt;next) {
+
+/* Reset variables */
+new_frags = 0;
+data_frags = 0;
+new_data = TCP_SKB_CB(next_skb)-&gt;end_seq - TCP_SKB_CB(skb)-&gt;end_seq;
+
+/* New data will be stored at skb-&gt;start_add + some_offset, 
+   in other words the last N bytes */
+new_data_frags = (new_data &gt; next_skb-&gt;data_len ? 
+  next_skb-&gt;data_len : new_data);
+new_data_head = (new_data &gt; next_skb-&gt;data_len ? 
+ new_data - skb-&gt;data_len : 0);
+
+/*
+ * 1. Contains the same data
+ * 2. Size
+ * 3. Sack
+ * 4. Window
+ * 5. Cannot merge with a later packet that has linear data
+ * 6. The new number of frags will exceed the limit
+ * 7. Enough tailroom
+ */
+
+if(new_data &lt;= 0){
+return;
+}
+
+if ((sysctl_tcp_rdb_max_bundle_bytes == 0 &amp;&amp; ((skb_size + new_data) &gt; mss_now))
+    || (sysctl_tcp_rdb_max_bundle_bytes &gt; 0 &amp;&amp; ((skb_size + new_data) &gt;
+sysctl_tcp_rdb_max_bundle_bytes))){
+return;
+}
+
+if(TCP_SKB_CB(next_skb)-&gt;flags &amp; TCPCB_FLAG_FIN){
+return;
+}
+
+if((TCP_SKB_CB(skb)-&gt;sacked &amp; TCPCB_SACKED_ACKED) ||
+   (TCP_SKB_CB(next_skb)-&gt;sacked &amp; TCPCB_SACKED_ACKED)){
+return;
+}
+
+if(after(TCP_SKB_CB(skb)-&gt;end_seq + new_data, tp-&gt;snd_una + tp-&gt;snd_wnd)){
+return;
+}
+
+if(skb_shinfo(skb)-&gt;frag_list || skb_shinfo(skb)-&gt;frag_list){
+return;
+}
+
+/* Calculate number of new fragments. Any new data will be 
+   stored in the back. */
+if(skb_is_nonlinear(next_skb)){
+i = (skb_shinfo(next_skb)-&gt;nr_frags == 0 ? 
+     0 : skb_shinfo(next_skb)-&gt;nr_frags - 1);
+for( ; i&gt;=0;i--){
+if(data_frags + skb_shinfo(next_skb)-&gt;frags[i].size == 
+   new_data_frags){
+new_frags += 1;
+break;
+}
+
+data_frags += skb_shinfo(next_skb)-&gt;frags[i].size;
+new_frags += 1;
+}
+}
+
+/* If dealing with a fragmented skb, only merge 
+   with an skb that ONLY contain frags */
+if(skb_is_nonlinear(skb)){
+
+/*Due to the way packets are processed, no later data*/
+if(skb_headlen(next_skb) &amp;&amp; new_data_head &gt; 0){
+return;
+}
+
+if(skb_is_nonlinear(next_skb) &amp;&amp; (new_data_frags &gt; 0) &amp;&amp; 
+   ((skb_shinfo(skb)-&gt;nr_frags + new_frags) &gt; MAX_SKB_FRAGS)){
+return;
+}
+
+} else {
+if(skb_headlen(next_skb) &amp;&amp; (new_data_head &gt; (skb-&gt;end - skb-&gt;tail))){
+return;
+}
+}
+
+/*Copy linear data. This will only occur if both are linear, 
+  or only A is linear*/
+if(skb_headlen(next_skb) &amp;&amp; (new_data_head &gt; 0)){
+old_headlen = skb_headlen(skb);
+skb-&gt;tail += new_data_head;
+skb-&gt;len += new_data_head;
+
+/* The new data starts in the linear area, 
+   and the correct offset will then be given by 
+   removing new_data ammount of bytes from length. */
+skb_copy_to_linear_data_offset(skb, old_headlen, next_skb-&gt;tail - 
+       new_data_head, new_data_head);
+}
+
+if(skb_is_nonlinear(next_skb) &amp;&amp; (new_data_frags &gt; 0)){
+memcpy(skb_shinfo(skb)-&gt;frags + skb_shinfo(skb)-&gt;nr_frags, 
+       skb_shinfo(next_skb)-&gt;frags + 
+       (skb_shinfo(next_skb)-&gt;nr_frags - new_frags), 
+       new_frags*sizeof(skb_frag_t));
+
+for(i=skb_shinfo(skb)-&gt;nr_frags; 
+    i &lt; skb_shinfo(skb)-&gt;nr_frags + new_frags; i++)
+get_page(skb_shinfo(skb)-&gt;frags[i].page);
+
+skb_shinfo(skb)-&gt;nr_frags += new_frags;
+skb-&gt;data_len += new_data_frags;
+skb-&gt;len += new_data_frags;
+}
+
+TCP_SKB_CB(skb)-&gt;end_seq += new_data;
+
+if(skb-&gt;ip_summed == CHECKSUM_PARTIAL)
+skb-&gt;csum = CHECKSUM_PARTIAL;
+else
+skb-&gt;csum = skb_checksum(skb, 0, skb-&gt;len, 0);
+
+skb_size = skb-&gt;len;
+}
+
+}
+}
+
 /* Do a simple retransmit without using the backoff mechanisms in
  * tcp_timer. This is used for path mtu discovery.
  * The socket is already locked here.
&lt; at &gt;&lt; at &gt; -1756,6 +1916,8 &lt; at &gt;&lt; at &gt;
 /* This retransmits one SKB.  Policy decisions and retransmit queue
  * state updates are done by the caller.  Returns non-zero if an
  * error occurred which prevented the send.
+ * Modified at Simula to support thin stream optimizations
+ * TODO: Update to use new helpers (like tcp_write_queue_next())
  */
 int tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb)
 {
&lt; at &gt;&lt; at &gt; -1802,10 +1964,21 &lt; at &gt;&lt; at &gt;
     (skb-&gt;len &lt; (cur_mss &gt;&gt; 1)) &amp;&amp;
     (tcp_write_queue_next(sk, skb) != tcp_send_head(sk)) &amp;&amp;
     (!tcp_skb_is_last(sk, skb)) &amp;&amp;
-    (skb_shinfo(skb)-&gt;nr_frags == 0 &amp;&amp; skb_shinfo(tcp_write_queue_next(sk, skb))-&gt;nr_frags == 0) &amp;&amp;
-    (tcp_skb_pcount(skb) == 1 &amp;&amp; tcp_skb_pcount(tcp_write_queue_next(sk, skb)) == 1) &amp;&amp;
-    (sysctl_tcp_retrans_collapse != 0))
+    (skb_shinfo(skb)-&gt;nr_frags == 0
+     &amp;&amp; skb_shinfo(tcp_write_queue_next(sk, skb))-&gt;nr_frags == 0)
+    &amp;&amp; (tcp_skb_pcount(skb) == 1
+&amp;&amp; tcp_skb_pcount(tcp_write_queue_next(sk, skb)) == 1)
+    &amp;&amp; (sysctl_tcp_retrans_collapse != 0)
+    &amp;&amp; !((tp-&gt;thin_rdb || sysctl_tcp_force_thin_rdb))) {
 tcp_retrans_try_collapse(sk, skb, cur_mss);
+       } else if ((tp-&gt;thin_rdb || sysctl_tcp_force_thin_rdb)) {
+if (!(TCP_SKB_CB(skb)-&gt;flags &amp; TCPCB_FLAG_SYN) &amp;&amp;
+    !(TCP_SKB_CB(skb)-&gt;flags &amp; TCPCB_FLAG_FIN) &amp;&amp;
+    (skb-&gt;next != tcp_send_head(sk)) &amp;&amp;
+    (skb-&gt;next != (struct sk_buff *) &amp;sk-&gt;sk_write_queue)) {
+tcp_retrans_merge_redundant(sk, skb, cur_mss);
+}
+}
 
 if (inet_csk(sk)-&gt;icsk_af_ops-&gt;rebuild_header(sk))
 return -EHOSTUNREACH; /* Routing failure or similar. */
diff -Nur linux-2.6.23.8.vanilla/net/ipv4/tcp_timer.c linux-2.6.23.8-tcp-thin/net/ipv4/tcp_timer.c
--- linux-2.6.23.8.vanilla/net/ipv4/tcp_timer.c2007-11-16 19:14:27.000000000 +0100
+++ linux-2.6.23.8-tcp-thin/net/ipv4/tcp_timer.c2008-07-02 15:17:38.000000000 +0200
&lt; at &gt;&lt; at &gt; -32,6 +32,9 &lt; at &gt;&lt; at &gt;
 int sysctl_tcp_retries2 __read_mostly = TCP_RETR2;
 int sysctl_tcp_orphan_retries __read_mostly;
 
+/* Added &lt; at &gt; Simula */
+int sysctl_tcp_force_thin_rm_expb __read_mostly = TCP_FORCE_THIN_RM_EXPB;
+
 static void tcp_write_timer(unsigned long);
 static void tcp_delack_timer(unsigned long);
 static void tcp_keepalive_timer (unsigned long data);
&lt; at &gt;&lt; at &gt; -368,13 +371,26 &lt; at &gt;&lt; at &gt;
  */
 icsk-&gt;icsk_backoff++;
 icsk-&gt;icsk_retransmits++;
-
+
 out_reset_timer:
-icsk-&gt;icsk_rto = min(icsk-&gt;icsk_rto &lt;&lt; 1, TCP_RTO_MAX);
+/* Added &lt; at &gt; Simula removal of exponential backoff for thin streams */
+if ((tp-&gt;thin_rm_expb || sysctl_tcp_force_thin_rm_expb) &amp;&amp; tcp_stream_is_thin(tp)) {
+/* Since 'icsk_backoff' is used to reset timer, set to 0
+ * Recalculate 'icsk_rto' as this might be increased if stream oscillates
+ * between thin and thick, thus the old value might already be too high
+ * compared to the value set by 'tcp_set_rto' in tcp_input.c which resets
+ * the rto without backoff. */
+icsk-&gt;icsk_backoff = 0;
+icsk-&gt;icsk_rto = min(((tp-&gt;srtt &gt;&gt; 3) + tp-&gt;rttvar), TCP_RTO_MAX);
+} else {
+/* Use normal backoff */
+icsk-&gt;icsk_rto = min(icsk-&gt;icsk_rto &lt;&lt; 1, TCP_RTO_MAX);
+}
+/* End Simula*/
 inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, icsk-&gt;icsk_rto, TCP_RTO_MAX);
 if (icsk-&gt;icsk_retransmits &gt; sysctl_tcp_retries1)
 __sk_dst_reset(sk);
</description>
    <dc:creator>Andreas Petlund</dc:creator>
    <dc:date>2008-11-27T13:39:41</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3673">
    <title>Re: strange getrusage timer problem with rt-kernel</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3673</link>
    <description>--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Cheng Renquan</dc:creator>
    <dc:date>2008-11-26T03:55:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3672">
    <title>strange getrusage timer problem with rt-kernel</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3672</link>
    <description>I'm testing 2.6.26.6-rt11 (is that the latest?) kernel, using tiotest from tiobench
(http://sourceforge.net/projects/tiobench/), a classic multi-thread IO stress tool,

it reported a strange problem, with:

root:~/tiobench# time ./tiotest -R -d /dev/mapper/dg5-lv2 -t 1 -f 1000 -r 102400
tiotest: tiotest.c:609: add_timer: Assertion end_time-&gt;tv_sec &gt;= start_time-&gt;tv_sec' failed.?

this problem never happened in mainstream kernels.

Regards,

--
Cheng Renquan, Shenzhen, China

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>crquan&lt; at &gt;gmail.com</dc:creator>
    <dc:date>2008-11-26T03:52:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3671">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3671</link>
    <description>Em Fri, Nov 21, 2008 at 06:25:59PM +0100, Alessio Igor Bogani escreveu:

Nope, it was just once, after fixing that NR_CPUS problem I had that
trucated output bug, then rebooting got to this one. But then I was
sidetracked with other stuff, will try to get back to this soon.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Arnaldo Carvalho de Melo</dc:creator>
    <dc:date>2008-11-21T17:56:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3670">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3670</link>
    <description>Dear Sir Carvalho de Melo,

2008/11/20 Arnaldo Carvalho de Melo &lt;acme&lt; at &gt;redhat.com&gt;:
[...]

Do you incur in this bug systematically every time boot your machine?

Thanks!

Ciao,
Alessio
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Alessio Igor Bogani</dc:creator>
    <dc:date>2008-11-21T17:25:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3669">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3669</link>
    <description>Another one, this time with more context:

(gdb) l *0xffffffff8105d5d9
0xffffffff8105d5d9 is in wakeup_next_waiter
(/home/acme/git/paulg-rt-linux-2.6/kernel/rtmutex_common.h:77).
72{
73struct rt_mutex_waiter *w;
74
75w = plist_first_entry(&amp;lock-&gt;wait_list, struct rt_mutex_waiter,
76       list_entry);
77BUG_ON(w-&gt;lock != lock); &lt;--------------------------
78
79return w;
80}
81
(gdb)

Linux version 2.6.27.5-26rt11 (acme&lt; at &gt;mica.ghostprotocols.net) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)) #8
Command line: ro root=LABEL=/ rhgb console=ttyS1,57600 console=tty0 idle=poll
KERNEL supported cpus:al.  Use ~? for help]
  Intel GenuineIntel
  AMD AuthenticAMD
  Centaur CentaurHauls
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 0000000000100000 - 00000000cffa8000 (usable)
 BIOS-e820: 00000000cffa8000 - 00000000cffb7c00 (ACPI data)
 BIOS-e820: 00000000cffb7c00 - 00000000d0000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fe000000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000130000000 (usable)
using polling idle threads.
last_pfn = 0x130000 max_arch_pfn = 0x3ffffffff
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
last_pfn = 0xcffa8 max_arch_pfn = 0x3ffffffff
init_memory_mapping
last_map_addr: cffa8000 end: cffa8000
init_memory_mapping
last_map_addr: 130000000 end: 130000000
RAMDISK: 37d9a000 - 37fef0f3
DMI 2.4 present.
ACPI: RSDP 000F2900, 0024 (r2 DELL  )
ACPI: XSDT 000F2980, 004C (r1 DELL   PE_SC3          1 DELL        1)
ACPI: FACP 000F2A88, 00F4 (r3 DELL   PE_SC3          1 DELL        1)
ACPI: DSDT CFFA8000, 2A90 (r1 DELL   PE_SC3          1 MSFT  100000E)
ACPI: FACS CFFB7C00, 0040
ACPI: APIC 000F2B7C, 00D4 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: SPCR 000F2C5D, 0050 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: HPET 000F2CAD, 0038 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: MCFG 000F2CE5, 003C (r1 DELL   PE_SC3          1 DELL        1)
ACPI: DMI detected: Dell PE 1900
No NUMA configuration found
Faking a node at 0000000000000000-0000000130000000
Bootmem setup node 0 0000000000000000-0000000130000000
  NODE_DATA [0000000000001000 - 0000000000005fff]
  bootmap [000000000000d000 -  0000000000032fff] pages 26
(7 early reservations) ==&gt; bootmem [0000000000 - 0130000000]
  #0 [0000000000 - 0000001000]   BIOS data page ==&gt; [0000000000 - 0000001000]
  #1 [0000006000 - 0000008000]       TRAMPOLINE ==&gt; [0000006000 - 0000008000]
  #2 [0000200000 - 0000854520]    TEXT DATA BSS ==&gt; [0000200000 - 0000854520]
  #3 [0037d9a000 - 0037fef0f3]          RAMDISK ==&gt; [0037d9a000 - 0037fef0f3]
  #4 [000009f000 - 0000100000]    BIOS reserved ==&gt; [000009f000 - 0000100000]
  #5 [0000008000 - 000000c000]          PGTABLE ==&gt; [0000008000 - 000000c000]
  #6 [000000c000 - 000000d000]          PGTABLE ==&gt; [000000c000 - 000000d000]
found SMP MP-table at [ffff8800000fe710] 000fe710
Zone PFN ranges:
  DMA      0x00000000 -&gt; 0x00001000
  DMA32    0x00001000 -&gt; 0x00100000
  Normal   0x00100000 -&gt; 0x00130000
Movable zone start PFN for each node
early_node_map[3] active PFN ranges
    0: 0x00000000 -&gt; 0x000000a0
    0: 0x00000100 -&gt; 0x000cffa8
    0: 0x00100000 -&gt; 0x00130000
ACPI: PM-Timer IO Port: 0x808
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x06] enabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] enabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x07] enabled)
ACPI: LAPIC (acpi_id[0x05] lapic_id[0x14] disabled)
ACPI: LAPIC (acpi_id[0x06] lapic_id[0x15] disabled)
ACPI: LAPIC (acpi_id[0x07] lapic_id[0x16] disabled)
ACPI: LAPIC (acpi_id[0x08] lapic_id[0x17] disabled)
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 8, version 0, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x09] address[0xfec80000] gsi_base[32])
IOAPIC[1]: apic_id 9, version 0, address 0xfec80000, GSI 32-55
ACPI: IOAPIC (id[0x0a] address[0xfec83000] gsi_base[128])
IOAPIC[2]: apic_id 10, version 0, address 0xfec83000, GSI 128-151
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
Setting APIC routing to flat
ACPI: HJ�ACPI: Core revision 20080609
..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
CPU0: Intel(R) Xeon(R) CPU            5130  &lt; at &gt; 2.00GHz stepping 06
Using local APIC timer interrupts.
Detected 20.781 MHz APIC timer.
Booting processor 1/6 ip 6000
Initializing CPU#1
Calibrating delay using timer specific routine.. 3990.04 BogoMIPS (lpj=1995024)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU 1/6 -&gt; Node 0
CPU: Physical Processor ID: 3
CPU: Processor Core ID: 0
CPU1: Thermal monitoring enabled (TM2)
x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106
CPU1: Intel(R) Xeon(R) CPU            5130  &lt; at &gt; 2.00GHz stepping 06
checking TSC synchronization [CPU#0 -&gt; CPU#1]: passed.
Booting processor 2/1 ip 6000
Initializing CPU#2
Calibrating delay using timer specific routine.. 3990.05 BogoMIPS (lpj=1995027)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU 2/1 -&gt; Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
CPU2: Thermal monitoring enabled (TM2)
x86 PAT enabled: cpu 2, old 0x7040600070406, new 0x7010600070106
CPU2: Intel(R) Xeon(R) CPU            5130  &lt; at &gt; 2.00GHz stepping 06
checking TSC synchronization [CPU#0 -&gt; CPU#2]: passed.
Booting processor 3/7 ip 6000
Initializing CPU#3
Calibrating delay using timer specific routine.. 3990.05 BogoMIPS (lpj=1995027)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU 3/7 -&gt; Node 0
CPU: Physical Processor ID: 3
CPU: Processor Core ID: 1
CPU3: Thermal monitoring enabled (TM2)
x86 PAT enabled: cpu 3, old 0x7040600070406, new 0x7010600070106
CPU3: Intel(R) Xeon(R) CPU            5130  &lt; at &gt; 2.00GHz stepping 06
checking TSC synchronization [CPU#0 -&gt; CPU#3]: passed.
Brought up 4 CPUs
Total of 4 processors activated (15960.10 BogoMIPS).
net_namespace: 1712 bytes
Booting paravirtualized kernel on bare hardware
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: MCFG configuration 0: base e0000000 segment 0 buses 0 - 255
PCI: MCFG area at e0000000 reserved in E820
PCI: Using MMCONFIG at e0000000 - efffffff
PCI: Using configuration type 1 for base access
ACPI: Interpreter enabled
ACPI: (supports S0 S4 S5)
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
pci 0000:00:00.0: PME# supported from D0 D3hot D3cold
pci 0000:00:00.0: PME# disabled
pci 0000:00:02.0: PME# supported from D0 D3hot D3cold
pci 0000:00:02.0: PME# disabled
pci 0000:00:03.0: PME# supported from D0 D3hot D3cold
pci 0000:00:03.0: PME# disabled
pci 0000:00:04.0: PME# supported from D0 D3hot D3cold
pci 0000:00:04.0: PME# disabled
pci 0000:00:05.0: PME# supported from D0 D3hot D3cold
pci 0000:00:05.0: PME# disabled
pci 0000:00:06.0: PME# supported from D0 D3hot D3cold
pci 0000:00:06.0: PME# disabled
pci 0000:00:07.0: PME# supported from D0 D3hot D3cold
pci 0000:00:07.0: PME# disabled
pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
pci 0000:00:1c.0: PME# disabled
pci 0000:00:1d.7: PME it is
Freeing initrd memory: 2388k freed
audit: initializing netlink socket (disabled)
type=2000 audit(1227191249.754:1): initialized
krcupreemptd setsched 0
  prio = 98
HugeTLB registered 2 MB page size, pre-allocated 0 pages
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
msgmni has been set to 7835
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pcieport-driver 0000:00:02.0: found MSI capability
pcieport-driver 0000:00:03.0: found MSI capability
pcieport-driver 0000:00:04.0: found MSI capability
pcieport-driver 0000:00:05.0: found MSI capability
pcieport-driver 0000:00:06.0: found MSI capability
pcieport-driver 0000:00:07.0: found MSI capability
pcieport-driver 0000:00:1c.0: found MSI capability
pcieport-driver 0000:07:00.0: found MSI capability
pcieport-driver 0000:07:01.0: found MSI capability
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
processor ACPI0007:00: registered as cooling_device0
processor ACPI0007:01: registered as cooling_device1
processor ACPI0007:02: registered as cooling_device2
processor ACPI0007:03: registered as cooling_device3
Non-volatile memory driver v1.2
Linux agpgart interface v0.103
Serial: 8250/16550 driver4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
�serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
brd: module loaded
input: Macintosh mouse button emulation as /class/input/input0
usbcore: registered new interface driver libusual
PNP: No PS/2 controller found. Probing ports directly.
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device common for all mice
rtc_cmos 00:04: rtc core: registered rtc_cmos as rtc0
rtc0: alarms up to one day, y3k, hpet irqs
cpuidle: using governor ladder
cpuidle: using governor menu
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 17
registered taskstats version 1
Freeing unused kernel memory: 496k freed
Write protecting the kernel read-only data: 4084k
ehci_hcd 0000:00:1d.7: PCI INT A -&gt; GSI 21 (level, low) -&gt; IRQ 21
ehci_hcd 0000:00:1d.7: EHCI Host Controller
ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:1d.7: debug port 1
ehci_hcd 0000:00:1d.7: irq 21, io mem 0xfc800000
ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 8 ports detected
USB Universal Host Controller Interface driver v3.0
uhci_hcd 0000:00:1d.0: PCI INT A -&gt; GSI 21 (kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
SELinux:  Disabled at runtime.
type=1404 audit(1227191255.307:2): selinux=0 auid=4294967295 ses=4294967295
BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
IP: [&lt;ffffffff8105d5d9&gt;] wakeup_next_waiter+0x35/0x173
PGD 0 
Oops: 0000 [1] PREEMPT SMP 
CPU 3 
Modules linked in: megaraid_sas sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd
Pid: 733, comm: udevd Not tainted 2.6.27.5-26rt11 #2
RIP: 0010:[&lt;ffffffff8105d5d9&gt;]  [&lt;ffffffff8105d5d9&gt;] wakeup_next_waiter+0x35/0x173
RSP: 0018:ffff88012d65db18  EFLAGS: 00010097
RAX: 0000000000006464 RBX: ffff880028070920 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000001 RDI: ffff88012d65ac48
RBP: ffff88012d65db48 R08: ffff88012fb6926c R09: ffff88012d65dac8
R10: ffff88012c519be8 R11: 0000000000000002 R12: ffff880028070920
R13: ffffffffffffffe8 R14: 0000000000000001 R15: ffff88012d60ec38
FS:  00007f0ad6817710(0000) GS:ffff88012fb691c0(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 0000000000000040 CR3: 000000012dced000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process udevd (pid: 733, threadinfo ffff88012d65c000, task ffff88012d65a5c0)
Stack:  0000000000000000 ffff880028070920 0000000000000203 0000000000000001
 ffff88012e1c2980 ffff88012d60ec38 ffff88012d65db68 ffffffff812af932
 ffff880028070960 0000000000000008 ffff88012d65db78 ffffffff812b0ba4
Call Trace:
 [&lt;ffffffff812af932&gt;] rt_spin_lock_slowunlock+0x3e/0x5c
 [&lt;ffffffff812b0ba4&gt;] __lock_text_start+0x44/0x46
 [&lt;ffffffff8109b86a&gt;] exit_mmap+0x12e/0x15d
 [&lt;ffffffff81039823&gt;] mmput+0x2d/0xa8
 [&lt;ffffffff810bc7dc&gt;] flush_old_exec+0x465/0x793
 [&lt;ffffffff810ebd9f&gt;] load_elf_binary+0x382/0x1759
 [&lt;ffffffff8105dfc1&gt;] ? rt_mutex_adjust_prio+0x35/0x3e
 [&lt;ffffffff812afe00&gt;] ? rt_read_slowunlock+0x3f9/0x431
 [&lt;ffffffff810eba1d&gt;] ? load_elf_binary+0x0/0x1759
 [&lt;ffffffff8105ec9d&gt;] ? rt_rwlock_read_unlock+0x28d/0x296
 [&lt;ffffffff810eba1d&gt;] ? load_elf_binary+0x0/0x1759
 [&lt;ffffffff810bb7dd&gt;] search_binary_handler+0x105/0x2c4
 [&lt;ffffffff810eb0ac&gt;] ? load_script+0x0/0x1c4
 [&lt;ffffffff810eb25a&gt;] load_script+0x1ae/0x1c4
 [&lt;ffffffff812afe00&gt;] ? rt_read_slowunlock+0x3f9/0x431
 [&lt;ffffffff810eb0ac&gt;] ? load_script+0x0/0x1c4
 [&lt;ffffffff8105ec9d&gt;] ? rt_rwlock_read_unlock+0x28d/0x296
 [&lt;ffffffff810bb7dd&gt;] search_binary_handler+0x105/0x2c4
 [&lt;ffffffff810bcc88&gt;] do_execve+0x17e/0x227
 [&lt;ffffffff8100a556&gt;] sys_execve+0x3e/0x59
 [&lt;ffffffff8100c73a&gt;] stub_execve+0x6a/0xc0


Code: f6 41 55 41 54 49 89 fc 53 48 83 ec 08 65 48 8b 3c 25 00 00 00 00 48 81 c7 88 06 00 00 e8 b0 38 25 00 4d 
RIP  [&lt;ffffffff8105d5d9&gt;] wakeup_next_waiter+0x35/0x173
 RSP &lt;ffff88012d65db18&gt;
CR2: 0000000000000040
---[ end trace ccd0141168105e57 ]---
------------[ cut here ]------------
kernel BUG at /home/acme/git/paulg-rt-linux-2.6/kernel/rtmutex.c:831!
invalid opcode: 0000 [2] PREEMPT SMP 
CPU 0 
Modules linked in: megaraid_sas sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd
Pid: 919, comm: udev_run_devd Tainted: G      D   2.6.27.5-26rt11 #2
RIP: 0010:[&lt;ffffffff812b062e&gt;]  [&lt;ffffffff812b062e&gt;] rt_spin_lock_slowlock+0x69/0x235
RSP: 0018:ffff88012ad7fc08  EFLAGS: 00010046
RAX: ffff88012ad7c540 RBX: ffff880028061920 RCX: 0000000000000000
RDX: ffff88012ad7c540 RSI: 0000000000000292 RDI: ffff880028061920
RBP: ffff88012ad7fcb8 R08: ffff88012fc02cec R09: 000000000002b28a
R10: 0000000000000000 R11: 0000000000000002 R12: ffff880028061920
R13: ffffffff81578960 R14: ffff88012acf0c38 R15: 00007fffffffe000
FS:  00007f0ad6817710(0000) GS:ffffffff814eb100(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00007f0ad61b0190 CR3: 000000012accc000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000��������������������Call Trace:
 [&lt;ffffffff8109e747&gt;] ? move_page_tables+0x39f/0x53a
 [&lt;ffffffff812b0c04&gt;] __rt_spin_lock+0x5e/0x62
 [&lt;ffffffff812b0c11&gt;] rt_spin_lock+0x9/0xb
 [&lt;ffffffff810bc0c7&gt;] setup_arg_pages+0x1d5/0x301
 [&lt;ffffffff810ebf0a&gt;] load_elf_binary+0x4ed/0x1759
 [&lt;ffffffff8105ebea&gt;] ? rt_rwlock_read_unlock+0x1da/0x296
 [&lt;ffffffff810eba1d&gt;] ? load_elf_binary+0x0/0x1759
 [&lt;ffffffff810bb7dd&gt;] search_binary_handler+0x105/0x2c4
 [&lt;ffffffff810bcc88&gt;] do_execve+0x17e/0x227
 [&lt;ffffffff8100a556&gt;] sys_execve+0x3e/0x59
 [&lt;ffffffff8100c73a&gt;] stub_execve+0x6a/0xc0


Code: 08 49 89 44 24 08 49 8d 44 24 18 49 89 44 24 18 48 89 40 08 49 8b 44 24 28 65 48 8b 14 25 00 00 00 00 48 
RIP  [&lt;ffffffff812b062e&gt;] rt_spin_lock_slowlock+0x69/0x235
 RSP &lt;ffff88012ad7fc08&gt;
---[ end trace ccd0141168105e57 ]---
note: udev_run_devd[919] exited with preempt_count 1
BUG: scheduling with irqs disabled: udev_run_devd/0x00000001/919
caller is rt_read_slowlock+0x2e9/0x32c
Pid: 919, comm: udev_run_devd Tainted: G      D   2.6.27.5-26rt11 #2

Call Trace:
 [&lt;ffffffff812aec76&gt;] schedule+0x73/0xf0
 [&lt;ffffffff8105f521&gt;] rt_read_slowlock+0x2e9/0x32c
 [&lt;ffffffff8105f22f&gt;] rt_mutex_down_read+0x178/0x181
 [&lt;ffffffff8105f8f8&gt;] __rt_down_read+0x9/0xb
 [&lt;ffffffff8105f910&gt;] rt_down_read+0xb/0xd
 [&lt;ffffffff810698a8&gt;] acct_collect+0x4c/0x19d
 [&lt;ffffffff8103f3e6&gt;] do_exit+0x1d1/0x88e
 [&lt;ffffffff811b2ec0&gt;] ? do_unblank_screen+0xf/0x10b
 [&lt;ffffffff812b1a8d&gt;] oops_begin+0x0/0x7c
 [&lt;ffffffff8100e2f3&gt;] die+0x5d/0x66
 [&lt;ffffffff812b1f75&gt;] do_trap+0x110/0x11f
 [&lt;ffffffff8100e88f&gt;] do_invalid_op+0xa0/0xa9
 [&lt;ffffffff812b062e&gt;] ? rt_spin_lock_slowlock+0x69/0x235
 [&lt;ffffffff8108caf0&gt;] ? __alloc_pages_internal+0xcb/0x3ab
 [&lt;ffffffff812b156a&gt;] error_exit+0x0/0x70
 [&lt;ffffffff812b062e&gt;] ? rt_spin_lock_slowlock+0x69/0x235
 [&lt;ffffffff812b05f0&gt;] ? rt_spin_lock_slowlock+0x2b/0x235
 [&lt;ffffffff8109e747&gt;] ? move_page_tables+0x39f/0x53a
 [&lt;ffffffff812b0c04&gt;] __rt_spin_lock+0x5e/0x62
 [&lt;ffffffff812b0c11&gt;] rt_spin_lock+0x9/0xb
 [&lt;ffffffff810bc0c7&gt;] setup_arg_pages+0x1d5/0x301
 [&lt;ffffffff810ebf0a&gt;] load_elf_binary+0x4ed/0x1759
 [&lt;ffffffff8105ebea&gt;] ? rt_rwlock_read_unlock+0x1da/0x296
 [&lt;ffffffff810eba1d&gt;] ? load_elf_binary+0x0/0x1759
 [&lt;ffffffff810bb7dd&gt;] search_binary_handler+0x105/0x2c4
 [&lt;ffffffff810bcc88&gt;] do_execve+0x17e/0x227
 [&lt;ffffffff8100a556&gt;] sys_execve+0x3e/0x59
 [&lt;ffffffff8100c73a&gt;] stub_execve+0x6a/0xc0

BUG: scheduling while atomic: udev_run_devd/0x00000002/919, CPU#0
Modules linked in: megaraid_sas sd_mod scsi_mod ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd
Pid: 919, comm: udev_run_devd Tainted: G      D   2.6.27.5-26rt11 #2

Call Trace:
 [&lt;ffffffff810342f1&gt;] __schedule_bug+0x71/0x76
 [&lt;ffffffff812ae3e4&gt;] __schedule+0xdf/0x76e
 [&lt;ffffffff8100df96&gt;] ? show_trace_log_lvl+0x61/0x6d
 [&lt;ffffffff8100e391&gt;] ? show_trace+0x10/0x12
 [&lt;ffffffff8100e66b&gt;] ? 


--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Arnaldo Carvalho de Melo</dc:creator>
    <dc:date>2008-11-20T14:44:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3668">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3668</link>
    <description>Em Thu, Nov 20, 2008 at 02:43:09PM +0100, Alessio Igor Bogani escreveu:

Wouldn't it be better to use for_each_possible_cpu()? But yes, it fixes
this problem, we go further then die with:

                                                    F2 = Setup
Phoenix ROM BIOS PLUS Version 1.10 1.2.0            F10 = Utility Mode
Copyright 1985-1988 Phoenix Technologies Ltd.       F11 = Boot Menu
Copyright 1990-2006 Dell Inc.                       F12 = PXE Boot
All Rights Reserved

Dell System PowerEdge 1900
www.dell.com


Two 2.00 GHz Dual-core Processors, Bus Speed: 1333 MHz, L2 Cache: 4 MB

System Memory Size: 4.0 GB, System Memory Speed: 533 MHz


PowerEdge Expandable RAID Controller BIOS
Copyright(c) 2006 LSI Logic Corporation
Press &lt;Ctrl&gt;&lt;R&gt; to Run Configuration Utility

HA -0 (Bus 2 Dev 14) PERC 5/i Integrated
FW package: 5.1.1-0040
  Booting 'Red Hat Enterprise Linux (realtime) (2.6.27.5-26rt11)'
1 Logical Drive(s) found on the host adapter.
rootg(hd0,0)ive(s) handled by BIOS
 Filesystem type is ext2fs, part  ion type 0x83
kernel /vmlinuz-2.6.27.5-26rt11 ro root=LABEL=/ rhgb console=ttyS1,57600
consol
e=tty0 idle=pollnfiguration Utility 1.03
   [Linux-bzImage, setup=0x3000, size=0x2vdb30]
initrd /initrd-2.6.27.5-26rt11.img
Bas[Linux-initrdm&lt; at &gt;n0x37d9a000,r0x2550f3nbytes]
                           
                       
Initializing cgroup subsys cpuset
Linux version 2.6.27.5-26rt11 (acme&lt; at &gt;mica.ghostprotocols.net) (gcc
version 4.1.2 2007118
Command line: ro root=LABEL=/ rhgb console=ttyS1,57600 console=tty0
idle=poll
KERNEL supported cpus:ote Access Setup within 5 sec......
  Intel GenuineIntel
  AMD AuthenticAMD
  Centaur CentaurHauls
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 0000000000100000 - 00000000cffa8000 (usable)
 BIOS-e820: 00000000cffa8000 - 00000000cffb7c00 (ACPI data)
 BIOS-e820: 00000000cffb7c00 - 00000000d0000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fe000000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000130000000 (usable)
using polling idle threads.
last_pfn = 0x130000 max_arch_pfn = 0x3ffffffff
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
last_pfn = 0xcffa8 max_arch_pfn = 0x3ffffffff
init_memory_mapping
last_map_addr: cffa8000 end: cffa8000
init_memory_mapping
last_map_addr: 130000000 end: 130000000
RAMDISK: 37d9a000 - 37fef0f3
DMI 2.4 present.
ACPI: RSDP 000F2900, 0024 (r2 DELL  )
ACPI: XSDT 000F2980, 004C (r1 DELL   PE_SC3          1 DELL        1)
ACPI: FACP 000F2A88, 00F4 (r3 DELL   PE_SC3          1 DELL        1)
ACPI: DSDT CFFA8000, 2A90 (r1 DELL   PE_SC3          1 MSFT  100000E)
ACPI: FACS CFFB7C00, 0040
ACPI: APIC 000F2B7C, 00D4 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: SPCR 000F2C5D, 0050 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: HPET 000F2CAD, 0038 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: MCFG 000F2CE5, 003C (r1 DELL   PE_SC3          1 DELL        1)
ACPI: DMI detected: Dell PE 1900
No NUMA configuration found
Faking a node at 0000000000000000-0000000130000000
Bootmem setup node 0 0000000000000000-0000000130000000
  NODE_DATA [0000000000001000 - 0000000000005fff]
  bootmap [000000000000d000 -  0000000000032fff] pages 26
(7 early reservations) ==&gt; bootmem [0000000000 - 0130000000]
  #0 [0000000000 - 0000001000]   BIOS data page ==&gt; [0000000000 - 0000001000]
  #1 [0000006000 - 0000008000]       TRAMPOLINE ==&gt; [0000006000 - 0000008000]
  #2 [0000200000 - 0000854520]    TEXT DATA BSS ==&gt; [0000200000 - 0000854520]
  #3 [0037d9a000 - 0037fef0f3]          RAMDISK ==&gt; [0037d9a000 - 0037fef0f3]
  #4 [000009f000 - 0000100000]    BIOS reserved ==&gt; [000009f000 - 0000100000]
  #5 [0000008000 - 000000c000]          PGTABLE ==&gt; [0000008000 - 000000c000]
  #6 [000000c000 - 000000d000]          PGTABLE ==&gt; [000000c000 - 000000d000]
found SMP MP-table at [ffff8800000fe710] 000fe710
Zone PFN ranges:
  DMA      0x00000000 -&gt; 0x00001000
  DMA32    0x00001000 -&gt; 0x00100000
  Normal   0x00100000 -&gt; 0x00130000
Movable zone start PFN for each node
early_node_map[3] active PFN ranges
    0: 0x00000000 -&gt; 0x000000a0
    0: 0x00000100 -&gt; 0x000cffa8
    0: 0x00100000 -&gt; 0x00130000
ACPI: PM-Timer IO Port: 0x808
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x06] enabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] enabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x07] enabled)
ACPI: LAPIC (acpi_id[0x05] lapic_id[0x14] disabled)
ACPI: LAPIC (acpi_id[0x06] lapic_id[0x15] disabled)
ACPI: LAPIC (acpi_id[0x07] lapic_id[0x16] disabled)
ACPI: LAPIC (acpi_id[0x08] lapic_id[0x17] disabled)
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
ACPI: IOAPIC (id[0x08] address[0xfec00000]
gsi_bas�5%�e%B͉��}��ŝ�����}��ő������ACPI:)
Setting APIC routing to flat
ACPI: HPET id: 0x8086a201 base: 0xfed00000
Using ACPI (MADT) for SMP configuration information
SMP: Allowing 8 CPUs, 4 hotplug CPUs
PM: Registered nosave memory: 00000000000a0000 - 0000000000100000
PM: Registered nosave memory: 00000000cffa8000 - 00000000cffb7000
PM: Registered nosave memory: 00000000cffb7000 - 00000000cffb8000
PM: Registered nosave memory: 00000000cffb8000 - 00000000d0000000
PM: Registered nosave memory: 00000000d0000000 - 00000000e0000000
PM: Registered nosave memory: 00000000e0000000 - 00000000f0000000
PM: Registered nosave memory: 00000000f0000000 - 00000000fe000000
PM: Registered nosave memory: 00000000fe000000 - 0000000100000000
Allocating PCI resources starting at d1000000 (gap: d0000000:10000000)
PERCPU: Allocating 57988 bytes of per cpu data
Real-Time Preemption Support (C) 2004-2007 Ingo Molnar
Built 1 zonelists in Node order, mobility grouping on.  Total pages:
1015049
Policy zone: Normal
Kernel command line: ro root=LABEL=/ rhgb console=ttyS1,57600
console=tty0 idle=poll
Initializing CPU#0
Preemptible RCU implementation.
PID hash table entries: 4096 (order: 12, 32768 bytes)
Extended CMOS year: 2000
TSC: PIT calibration confirmed by PMTIMER.
TSC: using PIT calibration value
Detected 1994.983 MHz processor.
Console: colour VGA+ 80x25
console [tty0] enabled
console [ttyS1] enabled
Checking aperture...
No AGP bridge found
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Placing software IO TLB between 0x20000000 - 0x24000000
Memory: 4009156k/4980736k available (2784k kernel code, 184412k
reserved, 1650k data, )
Calibrating delay loop (skipped), value calculated using timer
frequency.. 3989.96 Bog)
Security Framework initialized
SELinux:  Initializing.
Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
Mount-cache hash table entries: 256
Initializing cgroup subsys ns
Initializing cgroup subsys cpuacct
Initializing cgroup subsys memory
Initializing cgroup subsys devices
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU 0/0 -&gt; Node 0
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 0
CPU0: Thermal monitoring enabled (TM1)
ACPI: Core revision 20080609
..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
CPU0: Intel(R) Xeon(R) CPU            5130  &lt; at &gt; 2.00GHz stepping 06
Using local APIC timer interrupts.
Detected 20.781 MHz APIC timer.
Booting processor 1/6 ip 6000
Initializing CPU#1
Calibrating delay using timer specific routine.. 3990.04 BogoMIPS
(lpj=1995024)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 4096K
CPU 1/6 -&gt; Node 0
CPU: Physical Processor ID: 3
CPU: Processor Core ID: 0
CPU1: Thermal monitoring enabled (TM2)
x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106
CPU1: Intel(R) X�bus: 0d index 1 mmio: [0, 0]
bus: 0d index 2 mmio: [0, 0]
bus: 0d index 3 mmio: [0, 0]
bus: 0e index 0 mmio: [0, 0]
bus: 0e index 1 mmio: [0, 0]
bus: 0e index 2 mmio: [0, 0]
bus: 0e index 3 mmio: [0, 0]
bus: 04 index 0 mmio: [0, 0]
bus: 04 index 1 mmio: [f8000000, fbffffff]
bus: 04 index 2 mmio: [0, 0]
bus: 04 index 3 mmio: [0, 0]
bus: 05 index 0 mmio: [0, 0]
bus: 05 index 1 mmio: [f8000000, fbffffff]
bus: 05 index 2 mmio: [0, 0]
bus: 05 index 3 mmio: [0, 0]
bus: 0f index 0 io port: [e000, efff]
bus: 0f index 1 mmio: [fc100000, fc2fffff]
bus: 0f index 2 mmio: [d0000000, d7ffffff]
bus: 0f index 3 io port: [0, ffff]
bus: 0f index 4 mmio: [0, ffffffffffffffff]
NET: Registered protocol family 2
IP route cache hash table entries: 131072 (order: 8, 1048576 bytes)
TCP established hash table entries: 524288 (order: 11, 8388608 bytes)
TCP bind hash table entries: 65536 (order: 10, 4194304 bytes)
TCP: Hash tables configured (established 524288 bind 65536)
TCP reno registered
NET: Registered protocol family 1
checking if image is initramfs... it is
Freeing initrd memory: 2388k freed
audit: initializing netlink socket (disabled)
type=2000 audit(1227190309.758:1): initialized
krcupreemptd setsched 0
  prio = 98
HugeTLB registered 2 MB page size, pre-allocated 0 pages
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
msgmni has been set to 7835
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
pcieport-driver 0000:00:02.0: found MSI capability
pcieport-driver 0000:00:03.0: found MSI capability
pcieport-driver 0000:00:04.0: found MSI capability
pcieport-driver 0000:00:05.0: found MSI capability
pcieport-driver 0000:00:06.0: found MSI capability
pcieport-driver 0000:00:07.0: found MSI capability
pcieport-driver 0000:00:1c.0: found MSI capability
pcieport-driver 0000:07:00.0: found MSI capability
pcieport-driver 0000:07:01.0: found MSI capability
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
processor ACPI0007:00: registered as cooling_device0
processor ACPI0007:01: registered as cooling_device1
processor ACPI0007:02: registered as cooling_device2
processor ACPI0007:03: registered as cooling_device3
Non-volatile memory driver v1.2
Linux agpgart interface v0.103
Serial: 8250/16550 driver4 ports, IRQ sharing enabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
�serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
brd: module loaded
input: Macintosh mouse button emulation as /class/input/input0
usbcore: registered new interface driver libusual
PNP: No PS/2 controller found. Probing ports directly.
serio: i8042 KBD port at 0x60,0x64 irq 1
serio: i8042 AUX port at 0x60,0x64 irq 12
mice: PS/2 mouse device cSCSI subsystem initialized
Driver 'sd' needs updating - please use bus_type methods
megasas: 00.00.04.01 Thu July 24 11:41:51 PST 2008
megasas: 0x1028:0x0015:0x1028:0x1f03: bus 2:slot 14:func 0
megaraid_sas 0000:02:0e.0: PCI INT A -&gt; GSI 142 (level, low) -&gt; IRQ 142
megasas: FW now in Ready state
scsi0 : LSI SAS based MegaRAID driver
scsi 0:0:0:0: Direct-Access     MAXTOR   ATLAS10K5_073SAS BP00 PQ: 0 ANSI: 5
scsi 0:0:3:0: Direct-Access     MAXTOR   ATLAS10K5_073SAS BP00 PQ: 0 ANSI: 5
scsi 0:2:0:0: Direct-Access     DELL     PERC 5/i         1.03 PQ: 0 ANSI: 5
sd 0:2:0:0: [sda] 284164096 512-byte hardware sectors (145492 MB)
sd 0:2:0:0: [sda] Write Protect is off
sd 0:2:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
sd 0:2:0:0: [sda] 284164096 512-byte hardware sectors (145492 MB)
sd 0:2:0:0: [sda] Write Protect is off
sd 0:2:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
 sda: sda1 sda2 sda3 sda4 &lt; sda5 &gt;
sd 0:2:0:0: [sda] Attached SCSI disk
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
SELinux:  Disabled at runtime.
type=1404 audit(1227190315.328:2): selinux=0 auid=4294967295
ses=4294967295
Bad page state in process 'modprobe'
page:ffffe20007966a88 flags:0x0200000000000008 mapping:0000000000000000
mapcount:0 cou1
Bad page sta


---------------------
Truncated output over serial+ipmi, investigating...

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Arnaldo Carvalho de Melo</dc:creator>
    <dc:date>2008-11-20T14:19:26</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3667">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3667</link>
    <description>Em Thu, Nov 20, 2008 at 02:43:09PM +0100, Alessio Igor Bogani escreveu:

Thanks, looks like this should fix this, I'll test and report back.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Arnaldo Carvalho de Melo</dc:creator>
    <dc:date>2008-11-20T13:46:12</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3666">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3666</link>
    <description>Em Thu, Nov 20, 2008 at 11:29:10AM -0200, Arnaldo Carvalho de Melo escreveu:


(gdb) l *0xffffffff8151d8b8
0xffffffff8151d8b8 is in fork_init
(/home/acme/git/paulg-rt-linux-2.6/kernel/fork.c:233).
228init_task.signal-&gt;rlim[RLIMIT_NPROC].rlim_max = max_threads/2;
229init_task.signal-&gt;rlim[RLIMIT_SIGPENDING] =
230init_task.signal-&gt;rlim[RLIMIT_NPROC];
231
232for (i = 0; i &lt; NR_CPUS; i++)
233INIT_LIST_HEAD(&amp;per_cpu(delayed_drop_list, i));
234}
235
236int __attribute__((weak)) arch_dup_task_struct(struct task_struct *dst,
237       struct task_struct *src)
(gdb)

Here:

232for (i = 0; i &lt; NR_CPUS; i++)
233                     INIT_LIST_HEAD(&amp;per_cpu(delayed_drop_list, i));

static DEFINE_PER_CPU(struct list_head, delayed_drop_list);

This comes from patch preempt-realtime-mmdrop-delayed.patch, that is
dbcb144fbb8adca0a98c4812e08da4e27e2bfadb in your tree.

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Arnaldo Carvalho de Melo</dc:creator>
    <dc:date>2008-11-20T13:43:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3665">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3665</link>
    <description>Dear Sir Carvalho de Melo,

2008/11/20 Arnaldo Carvalho de Melo &lt;acme&lt; at &gt;redhat.com&gt;:
[...]
[...]
[...]

Could you try this patch, please?

Thanks!

Ciao,
Alessio

Index: linux-source-2.6.27/kernel/fork.c
===================================================================
--- linux-source-2.6.27.orig/kernel/fork.c  2008-11-11 10:50:21.000000000 +0100
+++ linux-source-2.6.27/kernel/fork.c   2008-11-11 10:50:40.000000000 +0100
&lt; at &gt;&lt; at &gt; -229,7 +229,7 &lt; at &gt;&lt; at &gt;
    init_task.signal-&gt;rlim[RLIMIT_SIGPENDING] =
        init_task.signal-&gt;rlim[RLIMIT_NPROC];

-   for (i = 0; i &lt; NR_CPUS; i++)
+   for (i = 0; i &lt; nr_cpu_ids; i++)
        INIT_LIST_HEAD(&amp;per_cpu(delayed_drop_list, i));
 }
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Alessio Igor Bogani</dc:creator>
    <dc:date>2008-11-20T13:43:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3664">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3664</link>
    <description>Em Thu, Nov 20, 2008 at 11:25:44AM -0200, Arnaldo Carvalho de Melo escreveu:

kernel config

http://oops.ghostprotocols.net:81/acme/v2.6.27.5-26rt11.config

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Arnaldo Carvalho de Melo</dc:creator>
    <dc:date>2008-11-20T13:29:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3663">
    <title>Re: 2.6.27.5 RT patch status (26rt11)</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3663</link>
    <description>Em Mon, Nov 10, 2008 at 06:47:40PM -0500, Paul Gortmaker escreveu:

I hit one, DELL PE1900, dual dual core xeon, megasas disk controler,
bnx2 NIC:

ipmitool&gt; sol activate
[SOL Session operational.  Use ~? for help]
Initializing cgroup subsys cpuset
Linux version 2.6.27.5-26rt11 (acme&lt; at &gt;mica.ghostprotocols.net) (gcc
version 4.1.2 20071124 (Red Hat 4.1.2-42)) #1 SMP PREEMPT RT Thu Nov 20
10:51:37 BRST 2008
Command line: ro root=LABEL=/ rhgb console=ttyS1,57600 console=tty0
idle=poll
KERNEL supported cpus:
  Intel GenuineIntel
  AMD AuthenticAMD
  Centaur CentaurHauls
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 0000000000100000 - 00000000cffa8000 (usable)
 BIOS-e820: 00000000cffa8000 - 00000000cffb7c00 (ACPI data)
 BIOS-e820: 00000000cffb7c00 - 00000000d0000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fe000000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000130000000 (usable)
using polling idle threads.
last_pfn = 0x130000 max_arch_pfn = 0x3ffffffff
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
last_pfn = 0xcffa8 max_arch_pfn = 0x3ffffffff
init_memory_mapping
last_map_addr: cffa8000 end: cffa8000
init_memory_mapping
last_map_addr: 130000000 end: 130000000
RAMDISK: 37d9a000 - 37fef0ed
DMI 2.4 present.
ACPI: RSDP 000F2900, 0024 (r2 DELL  )
ACPI: XSDT 000F2980, 004C (r1 DELL   PE_SC3          1 DELL        1)
ACPI: FACP 000F2A88, 00F4 (r3 DELL   PE_SC3          1 DELL        1)
ACPI: DSDT CFFA8000, 2A90 (r1 DELL   PE_SC3          1 MSFT  100000E)
ACPI: FACS CFFB7C00, 0040
ACPI: APIC 000F2B7C, 00D4 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: SPCR 000F2C5D, 0050 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: HPET 000F2CAD, 0038 (r1 DELL   PE_SC3          1 DELL        1)
ACPI: MCFG 000F2CE5, 003C (r1 DELL   PE_SC3          1 DELL        1)
ACPI: DMI detected: Dell PE 1900
No NUMA configuration found
Faking a node at 0000000000000000-0000000130000000
Bootmem setup node 0 0000000000000000-0000000130000000
  NODE_DATA [0000000000001000 - 0000000000005fff]
  bootmap [000000000000d000 -  0000000000032fff] pages 26
(7 early reservations) ==&gt; bootmem [0000000000 - 0130000000]
  #0 [0000000000 - 0000001000]   BIOS data page ==&gt; [0000000000 - 0000001000]
  #1 [0000006000 - 0000008000]       TRAMPOLINE ==&gt; [0000006000 - 0000008000]
  #2 [0000200000 - 0000854520]    TEXT DATA BSS ==&gt; [0000200000 - 0000854520]
  #3 [0037d9a000 - 0037fef0ed]          RAMDISK ==&gt; [0037d9a000 - 0037fef0ed]
  #4 [000009f000 - 0000100000]    BIOS reserved ==&gt; [000009f000 - 0000100000]
  #5 [0000008000 - 000000c000]          PGTABLE ==&gt; [0000008000 - 000000c000]
  #6 [000000c000 - 000000d000]          PGTABLE ==&gt; [000000c000 - 000000d000]
found SMP MP-table at [ffff8800000fe710] 000fe710
Zone PFN ranges:
  DMA      0x00000000 -&gt; 0x00001000
  DMA32    0x00001000 -&gt; 0x00100000
  Normal   0x00100000 -&gt; 0x00130000
Movable zone start PFN for each node
early_node_map[3] active PFN ranges
    0: 0x00000000 -&gt; 0x000000a0
    0: 0x00000100 -&gt; 0x000cffa8
    0: 0x00100000 -&gt; 0x00130000
ACPI: PM-Timer IO Port: 0x808
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x06] enabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] enabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x07] enabled)
ACPI: LAPIC (acpi_id[0x05] lapic_id[0x14] disabled)
ACPI: LAPIC (acpi_id[0x06] lapic_id[0x15] disabled)
ACPI: LAPIC (acpi_id[0x07] lapic_id[0x16] disabled)
ACPI: LAPIC (acpi_id[0x08] lapic_id[0x17] disabled)
ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x04] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x05] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x06] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x07] high edge lint[0x1])
ACPI: LAPIC_NMI (acpi_id[0x08] high edge lint[0x1])
ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 8, version 0, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x09] address[0xfec80000] gsi_base[32])
IOAPIC[1]: apic_id 9,H����ѕ��Extended CMOS year: 2000
TSC: PIT calibration confirmed by PMTIMER.
TSC: using PIT calibration value
Detected 1994.981 MHz processor.
Console: colour VGA+ 80x25
console [tty0] enabled
console [ttyS1] enabled
Checking aperture...
No AGP bridge found
PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
Placing software IO TLB between 0x20000000 - 0x24000000
Memory: 4009156k/4980736k available (2784k kernel code, 184412k
reserved, 1650k data, 496k init)
Calibrating delay loop (skipped), value calculated using timer
frequency.. 3989.96 BogoMIPS (lpj=1994981)
BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
IP: [&lt;ffffffff8151d8b8&gt;] fork_init+0xba/0xd2 PGD 0 
Oops: 0000 [1] PREEMPT SMP 
CPU 0 
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.27.5-26rt11 #1
RIP: 0010:[&lt;ffffffff8151d8b8&gt;]  [&lt;ffffffff8151d8b8&gt;] fork_init+0xba/0xd2
RSP: 0018:ffffffff814fff08  EFLAGS: 00010206
RAX: ffffffff8157caf0 RBX: 0000000000130000 RCX: 0000000000000048
RDX: 0000000000000000 RSI: 0000000000000040 RDI: ffffffff815cfc48
RBP: ffffffff814fff18 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000010 R11: 0000000000000002 R12: 4ec4ec4ec4ec4ec5
R13: ffffffff81535d80 R14: ffffffff815381c0 R15: 0000000000000000
FS:  0000000000000000(0000) GS:ffffffff814eb100(0000)
knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000000000000008 CR3: 0000000000201000 CR4: 00000000000006a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process swapper (pid: 0, threadinfo ffffffff814fe000, task ffffffff814064a0)
Stack:  ffffffff814fff18 0000000000000000 ffffffff814fff58
ffffffff81506cf6
 ffffffff814fff58 ffffffff815381c0 0000000000854520 ffffffff81506140
 0000000000093390 0000000000000000 ffffffff814fff78 ffffffff815062a3
Call Trace:
 [&lt;ffffffff81506cf6&gt;] start_kernel+0x34c/0x3d1
 [&lt;ffffffff81506140&gt;] ? early_idt_handler+0x0/0x72
 [&lt;ffffffff815062a3&gt;] x86_64_start_reservations+0xa9/0xad
 [&lt;ffffffff815063c5&gt;] x86_64_start_kernel+0xfb/0x106


Code: 48 89 90 e0 02 00 00 48 8b 90 98 02 00 00 48 89 90 e8 02 00 00 48
8b 15 9f da fc ff 48 c7 c0 f0 ca 57 81 48 8b 14 0a 48 83 c1 08 &lt;48&gt; 03
42 08 48 81 f9 00 02 00 00 48 89 00 48 89 40 08 75 d6 5b 
RIP  [&lt;ffffffff8151d8b8&gt;] fork_init+0xba/0xd2
 RSP &lt;ffffffff814fff08&gt;
CR2: 0000000000000008
---[ end trace 4eaa2a86a8e2da22 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
Pid: 0, comm: swapper Tainted: G      D   2.6.27.5-26rt11 #1

Call Trace:
 [&lt;ffffffff8103c1fb&gt;] panic+0xaf/0x167
 [&lt;ffffffff811a25c4&gt;] ? account+0xd8/0xe7
 [&lt;ffffffff8100c95a&gt;] ? retint_restore_args+0x13/0x20
 [&lt;ffffffff81054606&gt;] ? blocking_notifier_call_chain+0xf/0x11
 [&lt;ffffffff8103f28d&gt;] do_exit+0x78/0x88e
 [&lt;ffffffff811a2775&gt;] ? get_random_bytes+0x1b/0x1d
 [&lt;ffffffff812b1a8d&gt;] oops_begin+0x0/0x7c
 [&lt;ffffffff812b3f98&gt;] do_page_fault+0x9e5/0xaa8
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Arnaldo Carvalho de Melo</dc:creator>
    <dc:date>2008-11-20T13:25:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3662">
    <title>Did anyone tested core i7?</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3662</link>
    <description>Hi,
Did anyone tested linux-2.6.24.7-rt21 on the new Intel core i7 ?
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Amir Aharon</dc:creator>
    <dc:date>2008-11-18T12:48:27</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3661">
    <title>few question about the platform tested and in use with config_preempt_rt...</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3661</link>
    <description>
Hi all,

I have few questions regarding the platform tested with the config_preempt_rt:

1. When was last time the table at &lt;http://rt.wiki.kernel.org/index.php/CONFIG_PREEMPT_RT_Patch&gt; updated?

2. Was the worse case latency measured under stress? If so which stress test was used? 

3. What kind of network tests has been used? Does the worse case latency valid for network application (RT low latency audio streaming)?

3. Were there any additional hardware tweaking done on the tested system (e.g. bios option tweaking such as turning off fan control)?

4. Were there any additional kernel option tweaking done, e.g. - clock source, tick-less kernel?

5. Which kernel modules were loaded on the measured system (USB module, keyboard controller, Ethernet driver etc...)?

6. What bios version was used? Was it the latest version?

7. Could you share the contents of /proc/interrupts file of the tested system?

Thanks,
Amir.

--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Amir Aharon</dc:creator>
    <dc:date>2008-11-16T13:59:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3660">
    <title>RE: config_preempt_RT patch platform support question.</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3660</link>
    <description>Hi Carsten,

Good new - 2.6.24.7-rt21 works perfectly on my Xeon x5482 3.2GHz, could not reproduce any of the kernel panic I had.

Thanks for the tip.
 

-----Original Message-----
From: linux-rt-users-owner&lt; at &gt;vger.kernel.org [mailto:linux-rt-users-owner&lt; at &gt;vger.kernel.org] On Behalf Of Amir Aharon
Sent: Thursday, November 13, 2008 3:00 PM
To: Carsten Emde
Cc: RT-Users
Subject: RE: config_preempt_RT patch platform support question.

Here is the kernel dump:
[] post_schedule_rt
[] finish_task_switch
[] __schedule
[] check_preempt_curr_rt
[] try_to_wake_up
[] wake_up_process
[] e1000_intr_msi
[] handle_IRQ_event
[] preempt_schedule
[] do_irqd
[] do_irqd
[] kthread
[] kthread
[] kernel_thread_helper

EIP: push_rt_task
 Node: IRQ-217[1433] exited with preempt_count 2


I have got this when I run my app on octa core xeon (Xeon x5482 3.2GHz).

I'll run my app with linux-2.6.24.7-rt21 during the weekend and see where it goes...

Thanks,
Amir.


-----Original Message-----
From: Carsten Emde [mailto:Carsten.Emde&lt; at &gt;osadl.org] 
Sent: Thursday, November 13, 2008 9:42 AM
To: Amir Aharon
Cc: RT-Users
Subject: Re: config_preempt_RT patch platform support question.

Amir,

The PREEMPT_RT patches for kernel 2.6.26 are still under development.
Please post the various kernel messages you are observing. BTW: The most
recent 2.6.26 patch is 2.6.26.6-rt11.

For the time being, linux-2.6.24.7-rt21 is believed to be stable and
ready for production. This version has been tested heavily under x86
(slow/fast machines, single/dual/quad core, 32/64 bit) and under various
PPC platforms. It has been tested less heavily on ARMs and MIPSes. There
are no known issues on x86 platforms. Would you mind to run
2.6.24.7-rt21 on your machines?

Carsten.
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Amir Aharon</dc:creator>
    <dc:date>2008-11-16T13:43:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3659">
    <title>RE: config_preempt_RT patch platform support question.</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3659</link>
    <description>Here is the kernel dump:
[] post_schedule_rt
[] finish_task_switch
[] __schedule
[] check_preempt_curr_rt
[] try_to_wake_up
[] wake_up_process
[] e1000_intr_msi
[] handle_IRQ_event
[] preempt_schedule
[] do_irqd
[] do_irqd
[] kthread
[] kthread
[] kernel_thread_helper

EIP: push_rt_task
 Node: IRQ-217[1433] exited with preempt_count 2


I have got this when I run my app on octa core xeon (Xeon x5482 3.2GHz).

I'll run my app with linux-2.6.24.7-rt21 during the weekend and see where it goes...

Thanks,
Amir.


-----Original Message-----
From: Carsten Emde [mailto:Carsten.Emde&lt; at &gt;osadl.org] 
Sent: Thursday, November 13, 2008 9:42 AM
To: Amir Aharon
Cc: RT-Users
Subject: Re: config_preempt_RT patch platform support question.

Amir,

The PREEMPT_RT patches for kernel 2.6.26 are still under development.
Please post the various kernel messages you are observing. BTW: The most
recent 2.6.26 patch is 2.6.26.6-rt11.

For the time being, linux-2.6.24.7-rt21 is believed to be stable and
ready for production. This version has been tested heavily under x86
(slow/fast machines, single/dual/quad core, 32/64 bit) and under various
PPC platforms. It has been tested less heavily on ARMs and MIPSes. There
are no known issues on x86 platforms. Would you mind to run
2.6.24.7-rt21 on your machines?

Carsten.
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Amir Aharon</dc:creator>
    <dc:date>2008-11-13T13:00:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3658">
    <title>Strange device behavior on SMP system with CONFIG_PREEMPT_RT patch</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3658</link>
    <description>Hi everybody,
I noticed a strange behavior of my PCI-&gt;RS422 adapter (MOXA CP-132
using mxer kernel module) on SMP x86 system with kernel 2.6.26.6-rt11.
This PCI board has 2 RS422/RS485 ports. When I try to send cyclicaly
some ammount of data more than 16 bytes (it's internal buffer is 16
bytes) from the second port to the first the data is lost at random
iteration. If I try to send from first port to the second everything
works fine no matter which ammount of data I write to the port. It
seems that interrupts get lost.
Can somebody help me with this problem? What can cause such a behavior?

Thanks in advance,
Denis
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Denis Borisevich</dc:creator>
    <dc:date>2008-11-13T10:20:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3657">
    <title>Re: config_preempt_RT patch platform support question.</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3657</link>
    <description>Amir,

The PREEMPT_RT patches for kernel 2.6.26 are still under development.
Please post the various kernel messages you are observing. BTW: The most
recent 2.6.26 patch is 2.6.26.6-rt11.

For the time being, linux-2.6.24.7-rt21 is believed to be stable and
ready for production. This version has been tested heavily under x86
(slow/fast machines, single/dual/quad core, 32/64 bit) and under various
PPC platforms. It has been tested less heavily on ARMs and MIPSes. There
are no known issues on x86 platforms. Would you mind to run
2.6.24.7-rt21 on your machines?

Carsten.
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Carsten Emde</dc:creator>
    <dc:date>2008-11-13T07:41:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3656">
    <title>Re: Network performance forwarding tests on RT</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3656</link>
    <description>Hello,

On Tue, Nov 11, 2008 at 3:13 PM, Clark Williams &lt;williams&lt; at &gt;redhat.com&gt; wrote:

Hope is not what you should count on :-)

When you start deferred work from an interrupt handler, it runs at
equal priority to the interrupt handler thread.
This is actually a regression in most cases (as this might cause
interrupts to be delayed by deferred work).

Under 2.6.24 I had to come up with a patch that allowed to set work
priority. I posted it to linux-rt-users&lt; at &gt;vger.kernel.org, just search
for my name.

Regards,
</description>
    <dc:creator>Leon Woestenberg</dc:creator>
    <dc:date>2008-11-12T21:20:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.linux.rt.user/3655">
    <title>config_preempt_RT patch platform support question.</title>
    <link>http://permalink.gmane.org/gmane.linux.rt.user/3655</link>
    <description>
Hi,
I work on a project which delivers low latency audio streaming via a Linux machine. I receive/send audio frames of 4 samples each per network frame (raw Ethernet) so I expect to have a network interrupt each 90 microseconds.
I use Linux 2.6.26.3-rt7 on different platforms; unfortunately we encountered problems such as kernel panics, depend on the platform running...

My questions are:
How can I have more details on the tests which where used to evaluate the platform running the config_preempt_RT (specifically on networking issues)? 
Does Intel Q6600 2.4GHz (quad core) has been tested? Are there known issues?
Does Xeon x5482 3.2GHz (x2 meaning octa core) has been tested? Are there known issues?


Thanks,
Amir.
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo&lt; at &gt;vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

</description>
    <dc:creator>Amir Aharon</dc:creator>
    <dc:date>2008-11-12T14:30:45</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.linux.rt.user">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.linux.rt.user</link>
  </textinput>
</rdf:RDF>
