All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: One-shot high-resolution POSIX timer periodically late
       [not found]         ` <fa.Id9oufyELrVbe5Wb8SRakwC0V50@ifi.uio.no>
@ 2007-02-01 10:18           ` John
  2007-02-06 12:37             ` Ingo Molnar
  2007-02-05 16:37           ` John
  1 sibling, 1 reply; 17+ messages in thread
From: John @ 2007-02-01 10:18 UTC (permalink / raw)
  To: linux-kernel; +Cc: tglx, mingo, johnstul, akpm, shill

[ Same player shoot again. Fix address. ]

Ingo Molnar wrote:

> John wrote:
> 
>> John Stultz wrote:
>>
>>> Also do check the -rt tree as Ingo suggested. I mis-read your earlier
>>> email and thought you were running it.
>>
>> I've been pulling my hair over a related issue for the past two days.
>>
>> (I think I may be tickling a -hrt bug...)
>>
>> I'm working with 2.6.18.6 + patch-2.6.18-rt7
> 
> 2.6.18-rt7 is pretty old, do you see the problem in 2.6.20-rc6-rt5 too?

Ingo, Thomas,

I cannot reproduce in 2.6.20-rc6-rt6, but it is not strictly an
apples-to-apples comparison because I get a tsc clocksource in
2.6.20-rc6-rt6, and an acpi_pm clocksource in 2.6.18.6-rt7.

Here are the relevant parts of my boot messages:

Linux version 2.6.18.6-rt7
ACPI: PM-Timer IO Port: 0x4008
Clock event device pit configured with caps set: 07
Time: acpi_pm clocksource has been installed.
Clock event device pit configured with caps set: 08
Switched to high resolution mode on CPU 0

Linux version 2.6.20-rc6-rt6
ACPI: PM-Timer IO Port: 0x4008
Time: tsc clocksource has been installed.

(pit and acpi_pm have disappeared from 2.6.20-rc6-rt6)

The -rt patch set looks great, but I am somewhat hesitant to use it. It
seems it is only updated for the latest kernel version available. Or am
I mistaken? In other words, once 2.6.20 is released, and work starts on
2.6.21, if a bug is discovered in -rt, the fix will not be back-ported
to the 2.6.20.x (and 2.6.19.x, and 2.6.18.x, etc) patch set?

NB: I do need high-resolution timers, but, at the same time, I'm not
very comfortable living on the bleeding edge, where new bugs and
regressions might not get caught in release candidates. (I work on an
industrial project where continuous operation is a requirement.)

Regards.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
       [not found]         ` <fa.Id9oufyELrVbe5Wb8SRakwC0V50@ifi.uio.no>
  2007-02-01 10:18           ` One-shot high-resolution POSIX timer periodically late John
@ 2007-02-05 16:37           ` John
  2007-02-06  7:31             ` Peter Zijlstra
  1 sibling, 1 reply; 17+ messages in thread
From: John @ 2007-02-05 16:37 UTC (permalink / raw)
  To: linux-kernel; +Cc: tglx, mingo, johnstul, akpm, shill

Ingo Molnar wrote:

> John wrote:
> 
>> John Stultz wrote:
>> 
>>> Also do check the -rt tree as Ingo suggested. I mis-read your earlier
>>> email and thought you were running it.
>> 
>> I've been pulling my hair over a related issue for the past two days.
>> 
>> (I think I may be tickling a -hrt bug...)
>> 
>> I'm working with 2.6.18.6 + patch-2.6.18-rt7
> 
> 2.6.18-rt7 is pretty old, do you see the problem in 2.6.20-rc6-rt5 too?

Ingo, Thomas,

As far as I can tell, the -rt patch set is only updated for the latest 
kernel version available. Is that correct?

http://people.redhat.com/mingo/realtime-preempt/older/?M=D

In other words, once 2.6.20 is released, and work starts on 2.6.21, if a 
bug is discovered in -rt, the fix will not be back-ported to the 
2.6.20.x (and 2.6.19.x, and 2.6.18.x, etc) patch set?


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-02-05 16:37           ` John
@ 2007-02-06  7:31             ` Peter Zijlstra
  2007-02-07 10:25               ` John
  0 siblings, 1 reply; 17+ messages in thread
From: Peter Zijlstra @ 2007-02-06  7:31 UTC (permalink / raw)
  To: John; +Cc: linux-kernel, tglx, mingo, johnstul, akpm

On Mon, 2007-02-05 at 17:37 +0100, John wrote:
> Ingo Molnar wrote:
> 
> > John wrote:
> > 
> >> John Stultz wrote:
> >> 
> >>> Also do check the -rt tree as Ingo suggested. I mis-read your earlier
> >>> email and thought you were running it.
> >> 
> >> I've been pulling my hair over a related issue for the past two days.
> >> 
> >> (I think I may be tickling a -hrt bug...)
> >> 
> >> I'm working with 2.6.18.6 + patch-2.6.18-rt7
> > 
> > 2.6.18-rt7 is pretty old, do you see the problem in 2.6.20-rc6-rt5 too?
> 
> Ingo, Thomas,
> 
> As far as I can tell, the -rt patch set is only updated for the latest 
> kernel version available. Is that correct?
> 
> http://people.redhat.com/mingo/realtime-preempt/older/?M=D
> 
> In other words, once 2.6.20 is released, and work starts on 2.6.21, if a 
> bug is discovered in -rt, the fix will not be back-ported to the 
> 2.6.20.x (and 2.6.19.x, and 2.6.18.x, etc) patch set?

Correct, there is only 1 live branch.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-02-01 10:18           ` One-shot high-resolution POSIX timer periodically late John
@ 2007-02-06 12:37             ` Ingo Molnar
  2007-02-07 10:13               ` John
  0 siblings, 1 reply; 17+ messages in thread
From: Ingo Molnar @ 2007-02-06 12:37 UTC (permalink / raw)
  To: John; +Cc: linux-kernel, tglx, johnstul, akpm


* John <shill@free.fr> wrote:

> > 2.6.18-rt7 is pretty old, do you see the problem in 2.6.20-rc6-rt5 
> > too?
> 
> Ingo, Thomas,
> 
> I cannot reproduce in 2.6.20-rc6-rt6, but it is not strictly an 
> apples-to-apples comparison because I get a tsc clocksource in 
> 2.6.20-rc6-rt6, and an acpi_pm clocksource in 2.6.18.6-rt7.

that suggests that the TSC was not deemed reliable by the newer kernel - 
which almost always means it's not realiable. I think the problems you 
were seeing are consistent with TSC being non-monotonic - so the fix is 
to not use the TSC - and the newer kernel does this automatically.

	Ingo

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-02-06 12:37             ` Ingo Molnar
@ 2007-02-07 10:13               ` John
  0 siblings, 0 replies; 17+ messages in thread
From: John @ 2007-02-07 10:13 UTC (permalink / raw)
  To: linux-kernel; +Cc: mingo, tglx, johnstul, akpm, linux.kernel

Ingo Molnar wrote:

> John wrote:
> 
>> Ingo Molnar wrote:
>> 
>>> 2.6.18-rt7 is pretty old, do you see the problem in 2.6.20-rc6-rt5 too?
>> 
>> Ingo, Thomas,
>> 
>> I cannot reproduce in 2.6.20-rc6-rt6, but it is not strictly an 
>> apples-to-apples comparison because I get a tsc clocksource in 
>> 2.6.20-rc6-rt6, and an acpi_pm clocksource in 2.6.18.6-rt7.
> 
> That suggests that the TSC was not deemed reliable by the newer kernel, 
> which almost always means it's not realiable. I think the problems you 
> were seeing are consistent with TSC being non-monotonic - so the fix is 
> to not use the TSC - and the newer kernel does this automatically.

Ingo,

Perhaps you've mis-read my message?

*2.6.18.6-rt7* installed an acpi_pm clocksource. When I used a boot 
parameter to force the clocksource to tsc, the high-resolution timer 
infrastructure broke (timers expired several *ms* too late).

On the other hand, *2.6.20-rc6-rt6* and *2.6.20-rt2* both installed a 
tsc clock source, and it works.

Therefore, it is not the newer kernel that ignored the tsc, but the 
older kernel. Thus I don't know what to make of your comment :-)

Regards,

John


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-02-06  7:31             ` Peter Zijlstra
@ 2007-02-07 10:25               ` John
  2007-02-08 17:32                 ` Thomas Gleixner
  0 siblings, 1 reply; 17+ messages in thread
From: John @ 2007-02-07 10:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: Peter Zijlstra, tglx, mingo, johnstul, akpm, linux.kernel

Peter Zijlstra wrote:

> John wrote:
>
>> Ingo Molnar wrote:
>>
>>> John wrote:
>>>
>>>> John Stultz wrote:
>>>>
>>>>> Also do check the -rt tree as Ingo suggested. I mis-read your earlier
>>>>> email and thought you were running it.
>>>>
>>>> I've been pulling my hair over a related issue for the past two days.
>>>>
>>>> (I think I may be tickling a -hrt bug...)
>>>>
>>>> I'm working with 2.6.18.6 + patch-2.6.18-rt7
>>>
>>> 2.6.18-rt7 is pretty old, do you see the problem in 2.6.20-rc6-rt5 too?
>>
>> Ingo, Thomas,
>>
>> As far as I can tell, the -rt patch set is only updated for the latest 
>> kernel version available. Is that correct?
>>
>> http://people.redhat.com/mingo/realtime-preempt/older/?M=D
>>
>> In other words, once 2.6.20 is released, and work starts on 2.6.21, if a 
>> bug is discovered in -rt, the fix will not be back-ported to the 
>> 2.6.20.x (and 2.6.19.x, and 2.6.18.x, etc) patch set?
> 
> Correct, there is only 1 live branch.

Are there people that use the -rt patch set in real industrial applications?

It seems that, if an important bug is found in the -rt part, I will have 
to either upgrade to the latest kernel, or back port all the -rt changes 
to the kernel I chose for my application?

Regards,

John


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-02-07 10:25               ` John
@ 2007-02-08 17:32                 ` Thomas Gleixner
  2007-02-09 15:25                   ` John
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Gleixner @ 2007-02-08 17:32 UTC (permalink / raw)
  To: John; +Cc: linux-kernel, Peter Zijlstra, mingo, johnstul, akpm

On Wed, 2007-02-07 at 11:25 +0100, John wrote:
> Are there people that use the -rt patch set in real industrial applications?

Yes. But we use a stabilized version of 2.6.16-rt29.
http://www.osadl.org/projects/downloads/preempt-rt/linux-2.6.16/

> It seems that, if an important bug is found in the -rt part, I will have 
> to either upgrade to the latest kernel, or back port all the -rt changes 
> to the kernel I chose for my application?

Yep.

	tglx



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-02-08 17:32                 ` Thomas Gleixner
@ 2007-02-09 15:25                   ` John
  2007-02-09 16:21                     ` Benedikt Spranger
  2007-02-09 16:43                     ` Thomas Gleixner
  0 siblings, 2 replies; 17+ messages in thread
From: John @ 2007-02-09 15:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: Thomas Gleixner, a.p.zijlstra, mingo, johnstul, akpm

Thomas Gleixner wrote:

> On Wed, 2007-02-07 at 11:25 +0100, John wrote:
> 
>> Are there people that use the -rt patch set in real industrial applications?
> 
> Yes. But we use a stabilized version of 2.6.16-rt29.
> http://www.osadl.org/projects/downloads/preempt-rt/linux-2.6.16/

Thanks for the pointer.

I'm confused: patch-2.6.16-rt29-tglx3 is dated 2006-09-07, yet there
have been numerous revisions of the -rt patch set since then. Does that
mean that no serious bugs have been found since September? Do the -rt
patch sets for 2.6.17 - 2.6.20 only bring new features and/or adapt the
-rt infrastructure to the newer kernels?

>> It seems that, if an important bug is found in the -rt part, I will have 
>> to either upgrade to the latest kernel, or back port all the -rt changes 
>> to the kernel I chose for my application?
> 
> Yep.

Ouch :-)

I think I'll try my luck with 2.6.20 (it's been working so far).

By the way, I have a question: when I compile glibc for this system,
should I compile it against the vanilla 2.6.20 includes, or against the
patched 2.6.20-rt includes?

Regards.



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-02-09 15:25                   ` John
@ 2007-02-09 16:21                     ` Benedikt Spranger
  2007-02-09 16:43                     ` Thomas Gleixner
  1 sibling, 0 replies; 17+ messages in thread
From: Benedikt Spranger @ 2007-02-09 16:21 UTC (permalink / raw)
  To: John; +Cc: linux-kernel, Thomas Gleixner, a.p.zijlstra, mingo, johnstul, akpm

On Fri, 09 Feb 2007 16:25:11 +0100
John <linux.kernel@free.fr> wrote:

> By the way, I have a question: when I compile glibc for this system,
> should I compile it against the vanilla 2.6.20 includes, or against
> the patched 2.6.20-rt includes?

That shouldn't make a difference. All of the
kernel/glibc-interface related parts are in vanilla now.

Bene

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-02-09 15:25                   ` John
  2007-02-09 16:21                     ` Benedikt Spranger
@ 2007-02-09 16:43                     ` Thomas Gleixner
  1 sibling, 0 replies; 17+ messages in thread
From: Thomas Gleixner @ 2007-02-09 16:43 UTC (permalink / raw)
  To: John; +Cc: linux-kernel, a.p.zijlstra, mingo, johnstul, akpm

John,

On Fri, 2007-02-09 at 16:25 +0100, John wrote:
> I'm confused: patch-2.6.16-rt29-tglx3 is dated 2006-09-07, yet there
> have been numerous revisions of the -rt patch set since then. Does that
> mean that no serious bugs have been found since September? Do the -rt
> patch sets for 2.6.17 - 2.6.20 only bring new features and/or adapt the
> -rt infrastructure to the newer kernels?

There were many bugs found, but mostly related to the newer versions of
the code or features, which have been added after 2.6.16-rt29. My -tglx
series has the back ports of fixes which were applicable to 2-6-16-rt29.

	tglx



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-01-30 17:38       ` John
@ 2007-01-30 20:25         ` Ingo Molnar
  0 siblings, 0 replies; 17+ messages in thread
From: Ingo Molnar @ 2007-01-30 20:25 UTC (permalink / raw)
  To: John; +Cc: linux-kernel, tglx, johnstul, akpm


* John <shill@free.fr> wrote:

> John Stultz wrote:
> 
> >Also do check the -rt tree as Ingo suggested. I mis-read your earlier
> >email and thought you were running it.
> 
> I've been pulling my hair over a related issue for the past two days.
> 
> (I think I may be tickling a -hrt bug...)
> 
> I'm working with 2.6.18.6 + patch-2.6.18-rt7

2.6.18-rt7 is pretty old, do you see the problem in 2.6.20-rc6-rt5 too?

	Ingo

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
       [not found]     ` <fa.CMU3scpnLxfHVWRFPcmfRl2CjhA@ifi.uio.no>
@ 2007-01-30 17:38       ` John
  2007-01-30 20:25         ` Ingo Molnar
  0 siblings, 1 reply; 17+ messages in thread
From: John @ 2007-01-30 17:38 UTC (permalink / raw)
  To: linux-kernel; +Cc: tglx, mingo, johnstul, akpm, shill

[-- Attachment #1: Type: text/plain, Size: 2765 bytes --]

John Stultz wrote:

> Also do check the -rt tree as Ingo suggested. I mis-read your earlier
> email and thought you were running it.

I've been pulling my hair over a related issue for the past two days.

(I think I may be tickling a -hrt bug...)

I'm working with 2.6.18.6 + patch-2.6.18-rt7

I've built a minimal kernel. The attached dot.config contains only
the list of options that are set. I've also attached dmesg.

# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 11
model name      : Intel(R) Pentium(R) III CPU - S         1266MHz
stepping        : 4
cpu MHz         : 1266.773
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca
cmov pat pse36 mmx fxsr sse
bogomips        : 2535.13

I've set up two systems, A and B.

Every millisecond, system A sends one UDP datagram containing two struct
timespec: the deadline and the actual timestamp.

System B blocks indefinitely waiting for packets from A. When it
receives a packet, it reads several timestamps:

1. the CPU's TSC (time stamp counter)
2. clock_gettime(CLOCK_REALTIME)
3. clock_gettime(CLOCK_MONOTONIC)
4. the struct timeval provided by the kernel

I then compute the differences for consecutive packets.

They should all be (approximately) equal to 1 ms. I say approximately
because unpredictable system latencies might introduce a small error.
Also clock skew between the two systems means 1 ms on A might be seen as
0.99 ms on B.

Anyway... sometimes after a few minutes, and sometimes after several
hours, the one millisecond seen by A is seen as .950 ms on B, all of a
sudden, for several hundred packets in a row. However the TSC indicates
that 1 ms has actually gone by.

For example,

Packet N:
timestamp 3 = 6967.391882010
timestamp 1 = 26808296

Packet N+1:
timestamp 3 = 6967.392832017
timestamp 1 = 28074967

diff3 = 950007 ns
diff1 = 1266671 cycles = 1 ms

As far as all the timers in the system are concerned, only 950 µs have
gone by. But as far as the TSC is concerned, 1000 µs have gone by.
Logically, the TSC is right, and the other timers are wrong.

I've also seen the problem go the other way, i.e. the timers think 1050
µs have gone by instead of just 1000. However, in that case, the TSC
agrees with them! This might mean that the same problem has manifested
on the other system. I'll need to add code to check this condition on
the sender.

Have you ever seen something like this?

Does the kernel ever write to the TSC?

I am grasping at straws. Help :-(

(I can provide my test code if it helps.)


[-- Attachment #2: dot.config --]
[-- Type: text/plain, Size: 3901 bytes --]

CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_LOCALVERSION=""
CONFIG_SYSVIPC=y
CONFIG_INITRAMFS_SOURCE=""
CONFIG_UID16=y
CONFIG_SYSCTL=y
CONFIG_KALLSYMS=y
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
CONFIG_BASE_SMALL=0
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_IOSCHED_NOOP=y
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"
CONFIG_HIGH_RES_TIMERS=y
CONFIG_X86_PC=y
CONFIG_MPENTIUMIII=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_PREEMPT_RT=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_SOFTIRQS=y
CONFIG_PREEMPT_HARDIRQS=y
CONFIG_PREEMPT_BKL=y
CONFIG_PREEMPT_RCU=y
CONFIG_ASM_SEMAPHORES=y
CONFIG_VM86=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
CONFIG_NOHIGHMEM=y
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MTRR=y
CONFIG_REGPARM=y
CONFIG_HZ_100=y
CONFIG_HZ=100
CONFIG_PHYSICAL_START=0x100000
CONFIG_COMPAT_VDSO=y
CONFIG_PM=y
CONFIG_ACPI=y
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_ISA_DMA_API=y
CONFIG_BINFMT_ELF=y
CONFIG_NET=y
CONFIG_NETDEBUG=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
CONFIG_TCP_CONG_BIC=y
CONFIG_VLAN_8021Q=y
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
CONFIG_NET_SCH_NETEM=y
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_PNP=y
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDE_GENERIC=y
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
CONFIG_BLK_DEV_GENERIC=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
CONFIG_IDEDMA_PCI_AUTO=y
CONFIG_BLK_DEV_VIA82CXXX=y
CONFIG_BLK_DEV_IDEDMA=y
CONFIG_IDEDMA_AUTO=y
CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
CONFIG_NET_PCI=y
CONFIG_EEPRO100=y
CONFIG_INPUT=y
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1280
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1024
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
CONFIG_SERIO_LIBPS2=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_VGA_CONSOLE=y
CONFIG_DUMMY_CONSOLE=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_EXT2_FS=y
CONFIG_DNOTIFY=y
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_MSDOS_PARTITION=y
CONFIG_PROFILE_NMI=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_EARLY_PRINTK=y
CONFIG_DOUBLEFAULT=y
CONFIG_CRC32=y
CONFIG_PLIST=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y

[-- Attachment #3: dmesg --]
[-- Type: text/plain, Size: 7682 bytes --]

Linux version 2.6.18.6-rt7 (john@venus) (gcc version 3.4.4) #1 PREEMPT Tue Jan 30 17:03:44 CET 2007
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000000fff0000 (usable)
 BIOS-e820: 000000000fff0000 - 000000000fff3000 (ACPI NVS)
 BIOS-e820: 000000000fff3000 - 0000000010000000 (ACPI data)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
255MB LOWMEM available.
On node 0 totalpages: 65520
  DMA zone: 4096 pages, LIFO batch:0
  Normal zone: 61424 pages, LIFO batch:15
DMI 2.3 present.
ACPI: RSDP (v000 VIA601                                ) @ 0x000f7110
ACPI: RSDT (v001 VIA601 AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x0fff3000
ACPI: FADT (v001 VIA601 AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x0fff3040
ACPI: DSDT (v001 VIA601 AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000
ACPI: PM-Timer IO Port: 0x4008
Allocating PCI resources starting at 20000000 (gap: 10000000:efff0000)
Detected 1266.773 MHz processor.
Real-Time Preemption Support (C) 2004-2006 Ingo Molnar
Built 1 zonelists.  Total pages: 65520
Kernel command line: ro root=/dev/hda1 console=ttyS0,57600n8 console=tty0 panic=3
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
WARNING: experimental RCU implementation.
Clock event device pit configured with caps set: 07
PID hash table entries: 1024 (order: 10, 4096 bytes)
Console: colour VGA+ 80x25
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 257232k/262080k available (1476k kernel code, 4464k reserved, 444k data, 128k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 2535.13 BogoMIPS (lpj=12675656)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: 0383f9ff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 0383f9ff 00000000 00000000 00000000 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 512K
CPU: After all inits, caps: 0383f9ff 00000000 00000000 00000040 00000000 00000000 00000000
Compat vDSO mapped to ffffe000.
CPU: Intel(R) Pentium(R) III CPU - S         1266MHz stepping 04
Checking 'hlt' instruction... OK.
ACPI: Core revision 20060707
ACPI: setting ELCR to 0200 (from 1e20)
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xfb210, last bus=2
PCI: Using configuration type 1
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
ACPI: Assume root bridge [\_SB_.PCI0] bus is 0
PCI quirk: region 6000-607f claimed by vt82c686 HW-mon
PCI quirk: region 5000-500f claimed by vt82c686 SMB
PCI: Firmware left 0000:00:08.0 e100 interrupts enabled, disabling
PCI: Firmware left 0000:00:09.0 e100 interrupts enabled, disabling
PCI: Firmware left 0000:00:0a.0 e100 interrupts enabled, disabling
Boot video device is 0000:00:0b.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 1 3 4 5 6 7 10 *11 12 14 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 1 3 4 5 6 7 10 11 *12 14 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 1 3 4 5 6 7 *10 11 12 14 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 1 3 4 *5 6 7 10 11 12 14 15)
Linux Plug and Play Support v0.97 (c) Adam Belay
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
PCI: Bridge: 0000:00:01.0
  IO window: disabled.
  MEM window: disabled.
  PREFETCH window: disabled.
PCI: Bridge: 0000:00:0d.0
  IO window: disabled.
  MEM window: disabled.
  PREFETCH window: disabled.
PCI: Setting latency timer of device 0000:00:01.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 6, 262144 bytes)
TCP bind hash table entries: 4096 (order: 4, 114688 bytes)
TCP: Hash tables configured (established 8192 bind 4096)
TCP reno registered
io scheduler noop registered (default)
eepro100.c:v1.09j-t 9/29/99 Donald Becker http://www.scyld.com/network/eepro100.html
eepro100.c: $Revision: 1.36 $ 2000/11/17 Modified by Andrey V. Savochkin <saw@saw.sw.com.sg> and others
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
PCI: setting IRQ 11 as level-triggered
ACPI: PCI Interrupt 0000:00:08.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11
eth0: 0000:00:08.0, 00:30:64:02:E8:A1, IRQ 11.
  Board assembly 721383-016, Physical connectors present: RJ45
  Primary interface chip i82555 PHY #1.
  General self-test: passed.
  Serial sub-system self-test: passed.
  Internal registers self-test: passed.
  ROM checksum self-test: passed (0x04f4518b).
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 12
PCI: setting IRQ 12 as level-triggered
ACPI: PCI Interrupt 0000:00:09.0[A] -> Link [LNKB] -> GSI 12 (level, low) -> IRQ 12
eth1: 0000:00:09.0, 00:30:64:02:E8:A2, IRQ 12.
  Board assembly 721383-016, Physical connectors present: RJ45
  Primary interface chip i82555 PHY #1.
  General self-test: passed.
  Serial sub-system self-test: passed.
  Internal registers self-test: passed.
  ROM checksum self-test: passed (0x04f4518b).
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 10
PCI: setting IRQ 10 as level-triggered
ACPI: PCI Interrupt 0000:00:0a.0[A] -> Link [LNKC] -> GSI 10 (level, low) -> IRQ 10
eth2: 0000:00:0a.0, 00:30:64:02:E8:A3, IRQ 10.
  Board assembly 721383-016, Physical connectors present: RJ45
  Primary interface chip i82555 PHY #1.
  General self-test: passed.
  Serial sub-system self-test: passed.
  Internal registers self-test: passed.
  ROM checksum self-test: passed (0x04f4518b).
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller at PCI slot 0000:00:07.1
PCI: VIA IRQ fixup for 0000:00:07.1, from 255 to 0
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1
    ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:pio, hdd:pio
Probing IDE interface ide0...
hda: PQI IDE DiskOnModule, ATA DISK drive
hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
hda: set_drive_speed_status: error=0x04 { DriveStatusError }
hda: set_drive_speed_status: status=0x51 { DriveReady SeekComplete Error }
hda: set_drive_speed_status: error=0x04 { DriveStatusError }
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
Probing IDE interface ide1...
hda: max request size: 128KiB
hda: 128000 sectors (65 MB) w/1KiB Cache, CHS=500/8/32
 hda: hda1 hda2
PNP: No PS/2 controller found. Probing ports directly.
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
netem: version 1.2
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
Using IPI Shortcut mode
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 128k freed
Time: acpi_pm clocksource has been installed.
Clock event device pit configured with caps set: 08
Switched to high resolution mode on CPU 0
process `syslogd' is using obsolete setsockopt SO_BSDCOMPAT

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-01-25  9:59   ` John
@ 2007-01-25 22:19     ` john stultz
  0 siblings, 0 replies; 17+ messages in thread
From: john stultz @ 2007-01-25 22:19 UTC (permalink / raw)
  To: John; +Cc: linux-kernel, tglx, mingo, akpm

On Thu, 2007-01-25 at 10:59 +0100, John wrote:
> John Stultz wrote:
> > On Wed, 2007-01-24 at 10:41 +0100, John wrote:
> >> As you can see, the first diagnostic came at 472.410501014... Then
> >> another diagnostic almost exactly two seconds apart 9 times in a row!
> >>
> >> My process is the only SCHED_FIFO process on the system. There are no
> >> user-space processes with a higher priority. AFAICT, only a kernel
> >> thread could keep the CPU away from my app.
> >>
> >> Is there a periodic kernel thread that runs every 2 seconds, cannot be
> >> preempted, and runs for over 50 µs??
> > 
> > This sounds like a BIOS SMI issue. Can you reproduce this behavior on
> > different hardware?
[snip]
> Do PCs typically enter System Management Mode periodically?

Completely depends on the system hardware and BIOS.

> Is it possible to disable SMM?

Not usually. Sometimes some SMIs can be disabled via BIOS options.

> According to the Wikipedia article, even the kernel is unaware that
> the CPU has entered SMM, is that correct?

Yes. The kernel has no notification that the SMI occurred.

> I've run my tests on a Dell PC. IIRC, the BIOS options are very basic.
> 
> I'll also try another PC as you suggest.

Also do check the -rt tree as Ingo suggested. I mis-read your earlier
email and thought you were running it.


> +++++
> 
> On a related note, John, AFAIU, you wrote the GTOD infrastructure. In my 
> app, I need to call clock_gettime(CLOCK_MONOTONIC, ...) very often, i.e. 
> around 2000 times every second (when I receive a packet, and when I 
> re-send a packet). Is there a way to improve the overhead / latency of 
> these calls? I've heard about vsyscalls, are they relevant?
> 
> Do I need a specific glibc to use vsyscalls?

vsyscalls are only supported on x86_64/powerpc (I think) right now.
glibc support is necessary, and right now its only for gettimeofday()
not clock_gettime().

> If I call clock_gettime(CLOCK_MONOTONIC, &spec) twice in a row, then 
> subtract the two timespecs, I get ~1400 ns on a 2.8 GHz P4. AFAIU, my 
> clock source is acpi_pm. I tried setting it to tsc but it made hell 
> break loose.
> 
> http://groups.google.com/group/fa.linux.kernel/msg/a095241d49adfc44?dmode=source
> 
> Apparently, 1400 ns is similar to what you observe with acpi_pm.
> I suppose I'll need to use the TSC if I want any improvement?

Yea, unfortunately the ACPI PM is much slower then the TSC.
However, the TSC is often unstable, so you might not be able to utilize
it.

You can play around w/ the "idle=poll" boot option to see if that allows
you to use it, but that will up your power usage and has possible
thermal risks.

thanks
-john



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
       [not found]   ` <fa.8TBiwbgs8B881k+3X+IlFjhqpLI@ifi.uio.no>
@ 2007-01-25 12:03     ` John
  0 siblings, 0 replies; 17+ messages in thread
From: John @ 2007-01-25 12:03 UTC (permalink / raw)
  To: linux-kernel; +Cc: tglx, mingo, johnstul, akpm, shill

[ Re-sending in the hope that it will be archived ]

Ingo Molnar wrote:

> John Stultz wrote:
> 
>> On Wed, 2007-01-24 at 10:41 +0100, John wrote:
>> 
>>> I'm using the POSIX timers API. My platform is x86 running Linux
>>> 2.6.18.6 patched with the high-resolution timer subsystem.
>>> 
>>> http://www.tglx.de/hrtimers.html
>>> 
>>> My process is the only SCHED_FIFO process on the system. There are 
>>> no user-space processes with a higher priority. AFAICT, only a 
>>> kernel thread could keep the CPU away from my app.
>>> 
>>> Is there a periodic kernel thread that runs every 2 seconds, cannot 
>>> be preempted, and runs for over 50 µs??
>> 
>> This sounds like a BIOS SMI issue. Can you reproduce this behavior on 
>> different hardware?
> 
> note that only the -hrt patchset is used - not the full -rt patchset
> - so 50 usecs delays (and more) are quite possible and common.

Ingo,

You are correct, I only used -hrt.
I will _definitely_ give -rt a try.

I am fully aware that an occasional 100 µs delay is possible, given a
soft real-time operating system. However, what I cannot explain is:

Why do these /occasional/ delays always happen a multiple of 2 seconds
apart? Can you explain this odd behavior?

> My question would be: does the same problem occur with the full -rt
> patchset and PREEMPT_RT? (see http://rt.wiki.kernel.org for details)

I will test on a different PC, as John suggested.
I will try the full -rt patchset in a few days.

+++++

On a related note, there is no -hrt patch for 2.6.19:
http://www.tglx.de/projects/hrtimers/
Is it because the patch for 2.6.19-rc4-mm1 applies cleanly to 2.6.19?

There is no -hrt patch for 2.6.20.
Has it been completely merged?

Regards.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
       [not found] ` <fa.Ji4GnAbBF2FR5JbSxvxn2haJZIk@ifi.uio.no>
@ 2007-01-25  9:59   ` John
  2007-01-25 22:19     ` john stultz
       [not found]   ` <fa.8TBiwbgs8B881k+3X+IlFjhqpLI@ifi.uio.no>
  1 sibling, 1 reply; 17+ messages in thread
From: John @ 2007-01-25  9:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: tglx, mingo, johnstul, akpm, shill

[-- Attachment #1: Type: text/plain, Size: 4333 bytes --]

John Stultz wrote:

> On Wed, 2007-01-24 at 10:41 +0100, John wrote:
>
>> I'm using the POSIX timers API. My platform is x86 running Linux
>> 2.6.18.6 patched with the high-resolution timer subsystem.
>>
>> http://www.tglx.de/hrtimers.html
>>
>> I've written a small "de-jittering engine" that receives packets in
>> small bursts due to network jitter (typical average rate of 1000 packets
>> per second), and re-sends them at a "smooth" rate.
>>
>> Just before I re-send a packet, I arm a one-shot timer in order to
>> receive a signal when it is time to send the next packet.
>>
>> I've noticed a strange phenomenon that I cannot explain.
>>
>> Sometimes (rarely) the one-shot timer will expire more than 50 µs later
>> than expected. This would seem normal, except that it happens periodically.
>>
>> For example, my app had been running normally for 2 minutes when it
>> started printing diagnostics (see below).
>>
>> The first T_NEXT_POP is the date the timer was supposed to expire,
>>
>> NOW is the date the timer was handled after returning from sigwaitinfo
>> (I am aware that blocking signals, and handling them at a specific point
>> in the code will add some latency)
>>
>> The second T_NEXT_POP is the date the next timer is supposed to expire.
>>
>> DIFF is the difference between real and expected dates.
>>
>> (All dates are CLOCK_MONOTONIC by the way.)
>>
>> As you can see, the first diagnostic came at 472.410501014... Then
>> another diagnostic almost exactly two seconds apart 9 times in a row!
>>
>> My process is the only SCHED_FIFO process on the system. There are no
>> user-space processes with a higher priority. AFAICT, only a kernel
>> thread could keep the CPU away from my app.
>>
>> Is there a periodic kernel thread that runs every 2 seconds, cannot be
>> preempted, and runs for over 50 µs??
> 
> This sounds like a BIOS SMI issue. Can you reproduce this behavior on
> different hardware?

I am not familiar with the low-level details of the PC.
Let me check Wikipedia...
http://en.wikipedia.org/wiki/System_Management_Mode
SMI = System Management Interrupt

<quote>
     * Since the SMM code (SMI handler) is installed by the system 
firmware (BIOS), the OS and the SMM code may have expectations about 
hardware settings that are incompatible, such as different ideas of how 
the APIC should be set up.

     * Operations in SMM take CPU time away from the OS, since the CPU 
state must be stored to memory (SMRAM) and any write back caches must be 
flushed. This can destroy real-time behavior and cause clock ticks to 
get lost.

     * A digital logic analyser may be required to determine if SMM is 
occurring.

     * Recovering the SMI handler code to analyze it for bugs, 
vulnerabilities, and secrets requires a logic analyzer or dissassembly 
of the system firmware.
</quote>

Do PCs typically enter System Management Mode periodically?

Is it possible to disable SMM?

According to the Wikipedia article, even the kernel is unaware that
the CPU has entered SMM, is that correct?

I've run my tests on a Dell PC. IIRC, the BIOS options are very basic.

I'll also try another PC as you suggest.

NB: I've attached dmesg and dot.config
If you see anything in there I should have turned on, or that I
should have turned off... (Should I disable power management?)

+++++

On a related note, John, AFAIU, you wrote the GTOD infrastructure. In my 
app, I need to call clock_gettime(CLOCK_MONOTONIC, ...) very often, i.e. 
around 2000 times every second (when I receive a packet, and when I 
re-send a packet). Is there a way to improve the overhead / latency of 
these calls? I've heard about vsyscalls, are they relevant?

Do I need a specific glibc to use vsyscalls?

If I call clock_gettime(CLOCK_MONOTONIC, &spec) twice in a row, then 
subtract the two timespecs, I get ~1400 ns on a 2.8 GHz P4. AFAIU, my 
clock source is acpi_pm. I tried setting it to tsc but it made hell 
break loose.

http://groups.google.com/group/fa.linux.kernel/msg/a095241d49adfc44?dmode=source

Apparently, 1400 ns is similar to what you observe with acpi_pm.
I suppose I'll need to use the TSC if I want any improvement?

+++++

Over the past few days, I've sent over 10 messages to the LKML, and none 
of them have been archived. It seems majordomo is dropping my messages. 
Do they look like spam?

Regards.

[-- Attachment #2: dmesg --]
[-- Type: text/plain, Size: 9920 bytes --]

Linux version 2.6.18.5-hrt (shill@venus) (gcc version 3.4.4) #1 PREEMPT Thu Dec 7 16:57:14 CET 2006
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001f770000 (usable)
 BIOS-e820: 000000001f770000 - 000000001f772000 (ACPI NVS)
 BIOS-e820: 000000001f772000 - 000000001f793000 (ACPI data)
 BIOS-e820: 000000001f793000 - 000000001f800000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fecf0000 - 00000000fecf1000 (reserved)
 BIOS-e820: 00000000fed20000 - 00000000fed90000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved)
 BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
503MB LOWMEM available.
found SMP MP-table at 000fe710
On node 0 totalpages: 128880
  DMA zone: 4096 pages, LIFO batch:0
  Normal zone: 124784 pages, LIFO batch:31
DMI 2.3 present.
ACPI: RSDP (v000 DELL                                  ) @ 0x000feb90
ACPI: RSDT (v001 DELL    3000    0x00000008 ASL  0x00000061) @ 0x000fd28b
ACPI: FADT (v001 DELL    3000    0x00000008 ASL  0x00000061) @ 0x000fd2bf
ACPI: SSDT (v001   DELL    st_ex 0x00001000 MSFT 0x0100000d) @ 0xfffd1b7f
ACPI: MADT (v001 DELL    3000    0x00000008 ASL  0x00000061) @ 0x000fd333
ACPI: BOOT (v001 DELL    3000    0x00000008 ASL  0x00000061) @ 0x000fd39f
ACPI: DSDT (v001   DELL    dt_ex 0x00001000 MSFT 0x0100000d) @ 0x00000000
ACPI: PM-Timer IO Port: 0x808
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
Processor #0 15:4 APIC version 20
ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] disabled)
ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] disabled)
ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] disabled)
ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23
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)
ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Enabling APIC mode:  Flat.  Using 1 I/O APICs
Using ACPI (MADT) for SMP configuration information
Allocating PCI resources starting at 20000000 (gap: 1f800000:df400000)
Detected 2793.282 MHz processor.
VSYSCALL: consistency checks...passed...mapping...done.
VSYSCALL: fixmap virt addr: 0xffffd000
Built 1 zonelists.  Total pages: 128880
Kernel command line: BOOT_IMAGE=2.6.18.5-hrt ro root=301
mapped APIC to ffffc000 (fee00000)
mapped IOAPIC to ffffb000 (fec00000)
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Initializing CPU#0
Clock event device pit configured with caps set: 07
PID hash table entries: 2048 (order: 11, 8192 bytes)
Console: colour VGA+ 80x25
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 507364k/515520k available (2012k kernel code, 7608k reserved, 736k data, 160k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay using timer specific routine.. 5590.25 BogoMIPS (lpj=11180500)
Mount-cache hash table entries: 512
CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 0000441d 00000000 00000000
CPU: After vendor identify, caps: bfebfbff 00000000 00000000 00000000 0000441d 00000000 00000000
monitor/mwait feature present.
using mwait in idle threads.
CPU: Trace cache: 12K uops, L1 D cache: 16K
CPU: L2 cache: 1024K
CPU: After all inits, caps: bfebfbff 00000000 00000000 00000180 0000441d 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU0: Intel P4/Xeon Extended MCE MSRs (12) available
CPU0: Thermal monitoring enabled
Compat vDSO mapped to ffffe000.
CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz stepping 01
Checking 'hlt' instruction... OK.
ACPI: Core revision 20060707
ENABLING IO-APIC IRQs
..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1
Clock event device pit new caps set: 03
Clock event device lapic configured with caps set: 04
NET: Registered protocol family 16
ACPI: bus type pci registered
PCI: PCI BIOS revision 2.10 entry at 0xfbbf8, last bus=1
PCI: Using configuration type 1
Setting up standard PCI resources
ACPI: Interpreter enabled
ACPI: Using IOAPIC for interrupt routing
ACPI: PCI Root Bridge [PCI0] (0000:00)
PCI: Probing PCI hardware (bus 00)
ACPI: Assume root bridge [\_SB_.PCI0] bus is 0
Boot video device is 0000:00:02.0
PCI quirk: region 0800-087f claimed by ICH4 ACPI/GPIO/TCO
PCI quirk: region 0880-08bf claimed by ICH4 GPIO
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
PCI: Firmware left 0000:01:08.0 e100 interrupts enabled, disabling
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *5 6 7 9 10 11 12 15)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 *7 9 10 11 12 15)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 *10 11 12 15)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 *10 11 12 15)
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 *4 5 6 7 9 10 11 12 15)
ACPI: PCI Interrupt Link [LNKG] (IRQs *3 4 5 6 7 9 10 11 12 15)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *9 10 11 12 15)
Linux Plug and Play Support v0.97 (c) Adam Belay
pnp: PnP ACPI init
pnp: PnP ACPI: found 10 devices
intel_rng: FWH not detected
PCI: Using ACPI for IRQ routing
PCI: If a device doesn't work, try "pci=routeirq".  If it helps, post a report
pnp: 00:09: ioport range 0x800-0x85f could not be reserved
pnp: 00:09: ioport range 0xc00-0xc7f has been reserved
pnp: 00:09: ioport range 0x860-0x8ff could not be reserved
PCI: Ignore bogus resource 6 [0:0] of 0000:00:02.0
PCI: Bridge: 0000:00:1e.0
  IO window: d000-dfff
  MEM window: fe900000-feafffff
  PREFETCH window: 20000000-200fffff
PCI: Setting latency timer of device 0000:00:1e.0 to 64
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 16384 bind 8192)
TCP reno registered
Simple Boot Flag value 0x87 read from CMOS RAM was invalid
Simple Boot Flag at 0x7a set to 0x1
Machine check exception polling timer started.
IA-32 Microcode Update Driver: v1.14a <tigran@veritas.com>
io scheduler noop registered (default)
ACPI: Power Button (FF) [PWRF]
ACPI: Power Button (CM) [VBTN]
ACPI: Getting cpuindex for acpiid 0x2
Real Time Clock Driver v1.12ac
Linux agpgart interface v0.101 (c) Dave Jones
agpgart: Detected an Intel 865 Chipset.
agpgart: Detected 8060K stolen memory.
agpgart: AGP aperture is 128M @ 0xe8000000
Floppy drive(s): fd0 is 1.44M
FDC 0 is a post-1991 82077
loop: loaded (max 8 devices)
e100: Intel(R) PRO/100 Network Driver, 3.5.10-k2-NAPI
e100: Copyright(c) 1999-2005 Intel Corporation
ACPI: PCI Interrupt 0000:01:08.0[A] -> GSI 20 (level, low) -> IRQ 16
e100: eth0: e100_probe: addr 0xfe9ff000, irq 16, MAC addr 00:13:20:0D:1F:47
8139too Fast Ethernet driver 0.9.27
ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 21 (level, low) -> IRQ 17
eth1: RealTek RTL8139 at 0xe0010c00, 00:e0:4c:b9:b6:0f, IRQ 17
eth1:  Identified 8139 chip type 'RTL-8100B/8139D'
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH5: IDE controller at PCI slot 0000:00:1f.1
ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18
ICH5: chipset revision 2
ICH5: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:DMA, hdd:pio
Probing IDE interface ide0...
hda: HDS722540VLAT20, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: HL-DT-ST GCE-8483B, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hda: max request size: 512KiB
hda: 80418240 sectors (41174 MB) w/1794KiB Cache, CHS=16383/255/63, UDMA(100)
hda: cache flushes supported
 hda: hda1 hda2
hdc: ATAPI 48X CD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
mice: PS/2 mouse device common for all mice
Advanced Linux Sound Architecture Driver Version 1.0.12rc1 (Thu Jun 22 13:55:50 2006 UTC).
ACPI: PCI Interrupt 0000:00:1f.5[B] -> GSI 17 (level, low) -> IRQ 19
PCI: Setting latency timer of device 0000:00:1f.5 to 64
input: AT Translated Set 2 keyboard as /class/input/input0
intel8x0_measure_ac97_clock: measured 56003 usecs
intel8x0: clocking to 48580
ALSA device list:
  #0: Intel ICH5 with AD1980 at 0xfeb7fa00, irq 19
oprofile: using NMI interrupt.
netem: version 1.2
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
Using IPI Shortcut mode
Time: acpi_pm clocksource has been installed.
Clock event device pit disabled
Clock event device lapic configured with caps set: 08
Switched to high resolution mode on CPU 0
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 160k freed
input: ImExPS/2 Logitech Wheel Mouse as /class/input/input1
Adding 650624k swap on /dev/hda2.  Priority:-1 extents:1 across:650624k
EXT3 FS on hda1, internal journal
e100: eth0: e100_watchdog: link up, 100Mbps, full-duplex
eth1: link up, 100Mbps, full-duplex, lpa 0x45E1

[-- Attachment #3: config-2.6.18.5-dell --]
[-- Type: text/plain, Size: 24459 bytes --]

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.18.5-hrt
# Thu Dec  7 16:49:43 2006
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_RELAY is not set
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_MODULE_FORCE_UNLOAD is not set
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set

#
# Block layer
#
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
# CONFIG_IOSCHED_AS is not set
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
CONFIG_DEFAULT_NOOP=y
CONFIG_DEFAULT_IOSCHED="noop"

#
# Processor type and features
#
CONFIG_HIGH_RES_TIMERS=y
# CONFIG_NO_HZ is not set
# CONFIG_SMP is not set
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
CONFIG_MPENTIUM4=y
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_L1_CACHE_SHIFT=7
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
# CONFIG_HPET_TIMER is not set
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y

#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_REGPARM=y
# CONFIG_SECCOMP is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
# CONFIG_KEXEC is not set
CONFIG_PHYSICAL_START=0x100000
CONFIG_COMPAT_VDSO=y
CONFIG_GENERIC_TIME_VSYSCALL=y

#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
# CONFIG_SOFTWARE_SUSPEND is not set

#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
# CONFIG_ACPI_SLEEP is not set
# CONFIG_ACPI_AC is not set
# CONFIG_ACPI_BATTERY is not set
CONFIG_ACPI_BUTTON=y
# CONFIG_ACPI_VIDEO is not set
# CONFIG_ACPI_HOTKEY is not set
CONFIG_ACPI_FAN=y
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_IBM is not set
# CONFIG_ACPI_TOSHIBA is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
# CONFIG_ACPI_CONTAINER is not set

#
# APM (Advanced Power Management) BIOS Support
#
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set

#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_MSI is not set
CONFIG_ISA_DMA_API=y
# CONFIG_ISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set

#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set

#
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_AOUT is not set
# CONFIG_BINFMT_MISC is not set

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_NETDEBUG=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
CONFIG_IP_MULTIPLE_TABLES=y
# CONFIG_IP_ROUTE_MULTIPATH is not set
CONFIG_IP_ROUTE_VERBOSE=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
# CONFIG_INET_XFRM_MODE_TUNNEL is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
# CONFIG_NETFILTER is not set

#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set

#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set

#
# TIPC Configuration (EXPERIMENTAL)
#
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
CONFIG_VLAN_8021Q=y
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
# CONFIG_NET_SCH_CLK_JIFFIES is not set
CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
# CONFIG_NET_SCH_CLK_CPU is not set

#
# Queueing/Scheduling
#
# CONFIG_NET_SCH_CBQ is not set
# CONFIG_NET_SCH_HTB is not set
# CONFIG_NET_SCH_HFSC is not set
# CONFIG_NET_SCH_PRIO is not set
# CONFIG_NET_SCH_RED is not set
# CONFIG_NET_SCH_SFQ is not set
# CONFIG_NET_SCH_TEQL is not set
# CONFIG_NET_SCH_TBF is not set
# CONFIG_NET_SCH_GRED is not set
# CONFIG_NET_SCH_DSMARK is not set
CONFIG_NET_SCH_NETEM=y
# CONFIG_NET_SCH_INGRESS is not set

#
# Classification
#
# CONFIG_NET_CLS_BASIC is not set
# CONFIG_NET_CLS_TCINDEX is not set
# CONFIG_NET_CLS_ROUTE4 is not set
# CONFIG_NET_CLS_FW is not set
# CONFIG_NET_CLS_U32 is not set
# CONFIG_NET_CLS_RSVP is not set
# CONFIG_NET_CLS_RSVP6 is not set
# CONFIG_NET_EMATCH is not set
# CONFIG_NET_CLS_ACT is not set
# CONFIG_NET_CLS_POLICE is not set
# CONFIG_NET_ESTIMATOR is not set

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set

#
# Device Drivers
#

#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_SYS_HYPERVISOR is not set

#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set

#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set

#
# Parallel port support
#
# CONFIG_PARPORT is not set

#
# Plug and Play support
#
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
CONFIG_PNPACPI=y

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=y
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_RAM is not set
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set

#
# ATA/ATAPI/MFM/RLL support
#
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
# CONFIG_IDEDISK_MULTI_MODE is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
# CONFIG_IDE_TASK_IOCTL is not set

#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
CONFIG_IDEDMA_PCI_AUTO=y
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_IDE_ARM is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
CONFIG_IDEDMA_AUTO=y
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
# CONFIG_SCSI is not set

#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_IEEE1394 is not set

#
# I2O device support
#
# CONFIG_I2O is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set

#
# ARCnet devices
#
# CONFIG_ARCNET is not set

#
# PHY device support
#
# CONFIG_PHYLIB is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set

#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
CONFIG_E100=y
# CONFIG_FEALNX is not set
CONFIG_NATSEMI=y
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
CONFIG_8139TOO=y
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set

#
# Ethernet (1000 Mbit)
#
# CONFIG_ACENIC is not set
# CONFIG_DL2K is not set
# CONFIG_E1000 is not set
# CONFIG_NS83820 is not set
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SKY2 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set

#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set

#
# Token Ring devices
#
# CONFIG_TR is not set

#
# Wireless LAN (non-hamradio)
#
# CONFIG_NET_RADIO is not set

#
# Wan interfaces
#
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Telephony Support
#
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1280
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1024
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_TSDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=y
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set

#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set

#
# Non-8250 serial port support
#
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256

#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set

#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
CONFIG_HW_RANDOM=y
CONFIG_HW_RANDOM_INTEL=y
# CONFIG_HW_RANDOM_AMD is not set
# CONFIG_HW_RANDOM_GEODE is not set
# CONFIG_HW_RANDOM_VIA is not set
# CONFIG_NVRAM is not set
CONFIG_RTC=y
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set

#
# Ftape, the floppy tape device driver
#
# CONFIG_FTAPE is not set
CONFIG_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=y
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
# CONFIG_DRM is not set
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set

#
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set

#
# I2C support
#
# CONFIG_I2C is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set

#
# Dallas's 1-wire bus
#

#
# Hardware Monitoring support
#
# CONFIG_HWMON is not set
# CONFIG_HWMON_VID is not set

#
# Misc devices
#
# CONFIG_IBM_ASM is not set

#
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set

#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set

#
# Graphics support
#
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64
CONFIG_VIDEO_SELECT=y
CONFIG_DUMMY_CONSOLE=y
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set

#
# Sound
#
CONFIG_SOUND=y

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
# CONFIG_SND_MIXER_OSS is not set
# CONFIG_SND_PCM_OSS is not set
# CONFIG_SND_SEQUENCER_OSS is not set
# CONFIG_SND_RTCTIMER is not set
# CONFIG_SND_DYNAMIC_MINORS is not set
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_AC97_CODEC=y
CONFIG_SND_AC97_BUS=y
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set

#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
CONFIG_SND_INTEL8X0=y
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set

#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
# CONFIG_USB is not set

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#

#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set

#
# MMC/SD Card support
#
# CONFIG_MMC is not set

#
# LED devices
#
# CONFIG_NEW_LEDS is not set

#
# LED drivers
#

#
# LED Triggers
#

#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set

#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#
# CONFIG_EDAC is not set
# CONFIG_EDAC_POLL is not set

#
# Real Time Clock
#
# CONFIG_RTC_CLASS is not set

#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set

#
# DMA Clients
#

#
# DMA Devices
#

#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
# CONFIG_EXT3_FS_XATTR is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
# CONFIG_XFS_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set
# CONFIG_UDF_FS is not set

#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_BEFS_FS is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
# CONFIG_CRAMFS is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set

#
# Network File Systems
#
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
CONFIG_SMB_FS=y
# CONFIG_SMB_NLS_DEFAULT is not set
CONFIG_CIFS=y
CONFIG_CIFS_STATS=y
# CONFIG_CIFS_STATS2 is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-15"
# CONFIG_NLS_CODEPAGE_437 is not set
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
CONFIG_NLS_CODEPAGE_850=y
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
# CONFIG_NLS_CODEPAGE_1251 is not set
# CONFIG_NLS_ASCII is not set
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
# CONFIG_NLS_ISO8859_5 is not set
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
CONFIG_NLS_ISO8859_15=y
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y

#
# Instrumentation Support
#
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
# CONFIG_KPROBES is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_DEBUG_KERNEL is not set
CONFIG_LOG_BUF_SHIFT=14
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_DEBUG_FS is not set
# CONFIG_UNWIND_INFO is not set
CONFIG_EARLY_PRINTK=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
# CONFIG_CRYPTO is not set

#
# Hardware crypto devices
#

#
# Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_PLIST=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
  2007-01-24 19:02 ` john stultz
@ 2007-01-24 20:09   ` Ingo Molnar
  0 siblings, 0 replies; 17+ messages in thread
From: Ingo Molnar @ 2007-01-24 20:09 UTC (permalink / raw)
  To: john stultz; +Cc: John, linux-kernel, tglx, akpm, shill


* john stultz <johnstul@us.ibm.com> wrote:

> On Wed, 2007-01-24 at 10:41 +0100, John wrote:
> > I'm using the POSIX timers API. My platform is x86 running Linux
> > 2.6.18.6 patched with the high-resolution timer subsystem.
> > 
> > http://www.tglx.de/hrtimers.html

> > My process is the only SCHED_FIFO process on the system. There are 
> > no user-space processes with a higher priority. AFAICT, only a 
> > kernel thread could keep the CPU away from my app.
> > 
> > Is there a periodic kernel thread that runs every 2 seconds, cannot 
> > be preempted, and runs for over 50 µs??
> 
> This sounds like a BIOS SMI issue. Can you reproduce this behavior on 
> different hardware?

note that only the -hrt patchset is used - not the full -rt patchset - 
so 50 usecs delays (and more) are quite possible and common.

My question would be: does the same problem occur with the full -rt 
patchset and PREEMPT_RT? (see http://rt.wiki.kernel.org for details)

	Ingo

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: One-shot high-resolution POSIX timer periodically late
       [not found] <45B729AF.4030701@privacy.net>
@ 2007-01-24 19:02 ` john stultz
  2007-01-24 20:09   ` Ingo Molnar
  0 siblings, 1 reply; 17+ messages in thread
From: john stultz @ 2007-01-24 19:02 UTC (permalink / raw)
  To: John; +Cc: linux-kernel, tglx, mingo, akpm, shill

On Wed, 2007-01-24 at 10:41 +0100, John wrote:
> I'm using the POSIX timers API. My platform is x86 running Linux
> 2.6.18.6 patched with the high-resolution timer subsystem.
> 
> http://www.tglx.de/hrtimers.html
> 
> I've written a small "de-jittering engine" that receives packets in
> small bursts due to network jitter (typical average rate of 1000 packets
> per second), and re-sends them at a "smooth" rate.
> 
> Just before I re-send a packet, I arm a one-shot timer in order to
> receive a signal when it is time to send the next packet.
> 
> I've noticed a strange phenomenon that I cannot explain.
> 
> Sometimes (rarely) the one-shot timer will expire more than 50 µs later
> than expected. This would seem normal, except that it happens periodically.
> 
> For example, my app had been running normally for 2 minutes when it
> started printing diagnostics (see below).
> 
> The first T_NEXT_POP is the date the timer was supposed to expire,
> 
> NOW is the date the timer was handled after returning from sigwaitinfo
> (I am aware that blocking signals, and handling them at a specific point
> in the code will add some latency)
> 
> The second T_NEXT_POP is the date the next timer is supposed to expire.
> 
> DIFF is the difference between real and expected dates.
> 
> (All dates are CLOCK_MONOTONIC by the way.)
> 
> As you can see, the first diagnostic came at 472.410501014... Then
> another diagnostic almost exactly two seconds apart 9 times in a row!
> 
> My process is the only SCHED_FIFO process on the system. There are no
> user-space processes with a higher priority. AFAICT, only a kernel
> thread could keep the CPU away from my app.
> 
> Is there a periodic kernel thread that runs every 2 seconds, cannot be
> preempted, and runs for over 50 µs??

This sounds like a BIOS SMI issue. Can you reproduce this behavior on
different hardware? 

thanks
-john


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2007-02-09 16:44 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <fa.4zD54Ie6Ozt0P4YqQSicS+XzXGw@ifi.uio.no>
     [not found] ` <fa.G+/T32f2o1M3+YGLca/O8NaAQyY@ifi.uio.no>
     [not found]   ` <fa.6Ua8xjNfLKQEZZgDsoJgPMyww4g@ifi.uio.no>
     [not found]     ` <fa.yQlV+WU0TgrJTVqjopa01tgCnT0@ifi.uio.no>
     [not found]       ` <fa.ucVrLJ1Lh6FjdBHRglsIUc8/evk@ifi.uio.no>
     [not found]         ` <fa.Id9oufyELrVbe5Wb8SRakwC0V50@ifi.uio.no>
2007-02-01 10:18           ` One-shot high-resolution POSIX timer periodically late John
2007-02-06 12:37             ` Ingo Molnar
2007-02-07 10:13               ` John
2007-02-05 16:37           ` John
2007-02-06  7:31             ` Peter Zijlstra
2007-02-07 10:25               ` John
2007-02-08 17:32                 ` Thomas Gleixner
2007-02-09 15:25                   ` John
2007-02-09 16:21                     ` Benedikt Spranger
2007-02-09 16:43                     ` Thomas Gleixner
     [not found] <fa.mtUvfgenNQkCc8835prYbwyiPQs@ifi.uio.no>
     [not found] ` <fa.lwkMc548uRMcUjd9KZ2pC1DMKT4@ifi.uio.no>
     [not found]   ` <fa.dTtI0ctv1nu+tCWiK6jGPnrX69k@ifi.uio.no>
     [not found]     ` <fa.CMU3scpnLxfHVWRFPcmfRl2CjhA@ifi.uio.no>
2007-01-30 17:38       ` John
2007-01-30 20:25         ` Ingo Molnar
     [not found] <fa.NwnlFyMPfa3XG6my3HKGWnCW3x4@ifi.uio.no>
     [not found] ` <fa.Ji4GnAbBF2FR5JbSxvxn2haJZIk@ifi.uio.no>
2007-01-25  9:59   ` John
2007-01-25 22:19     ` john stultz
     [not found]   ` <fa.8TBiwbgs8B881k+3X+IlFjhqpLI@ifi.uio.no>
2007-01-25 12:03     ` John
     [not found] <45B729AF.4030701@privacy.net>
2007-01-24 19:02 ` john stultz
2007-01-24 20:09   ` Ingo Molnar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.