In a recent posting to the lkml, Kenneth Chen summarized, "the roller coaster ride continues for the 2.6 kernel on how it measures up in performance using [an] industry standard database transaction processing benchmark. We took a measurement on 2.6.11 and found it is 13% down from the baseline." The baseline he mentioned was run on a RedHat Enterprise 3 Linux kernel, and compared to the latest 2.6.11 [story], as well as several earlier kernels. In their benchmarks, 2.6.9 performed 6% slower than their baseline in database transaction testing, 2.6.8 performed 23% slower, and 2.6.2 only 1% slower. Kenneth noted that going forward the plan is to benchmark each officially released kernel.
Linux creator Linus Torvalds was concerned about how duplicatible these test results were, and requested that they be repeated with each daily snapshot of the kernel if possible, or even every other or every third day. He explains, "doing just release kernels means that there will be a two-month lag between telling developers that something pissed up performance. Doing it every day (or at least a couple of times a week) will be much more interesting." He went on to explain that with more frequent benchmarks, it would be much easier to track down where the problem originated. He then noted that historical daily snapshots live on kernel.org, and that it would even be helpful to "go back in time" and benchmark these older releases to help track down where earlier big changes in performance occured. Linus concluded, "I'd absolutely _love_ [to see regular results] for pretty much any benchmark. So anybody who has a favourite benchmark, whether 'obviously relevant' or not, and has the inclination to make a _simple_ daily number (preferably a nice graph), go for it."
From: Chen, Kenneth W [email blocked] To: "'Andrew Morton'" [email blocked] Subject: Industry db benchmark result on recent 2.6 kernels Date: Mon, 28 Mar 2005 11:33:19 -0800 The roller coaster ride continues for the 2.6 kernel on how it measure up in performance using industry standard database transaction processing benchmark. We took a measurement on 2.6.11 and found it is 13% down from the baseline. We will be taking db benchmark measurements more frequently from now on with latest kernel from kernel.org (and make these measurements on a fixed interval). By doing this, I hope to achieve two things: one is to track base kernel performance on a regular base; secondly, which is more important in my opinion, is to create a better communication flow to the kernel developers and to keep all interested party well informed on the kernel performance for this enterprise workload. With that said, here goes our first data point along with some historical data we have collected so far. 2.6.11 -13% 2.6.9 - 6% 2.6.8 -23% 2.6.2 - 1% baseline (rhel3) The glory detail on the benchmark configuration: 4-way SMP, 1.6 GHz Intel itanium2, 64GB memory, 450 73GB 15k-rpm disks. All experiments were done With exact same hardware and application software, except different kernel versions.
From: Linus Torvalds [email blocked] Subject: Re: Industry db benchmark result on recent 2.6 kernels Date: Tue, 29 Mar 2005 16:00:09 -0800 (PST) On Mon, 28 Mar 2005, Chen, Kenneth W wrote: > > With that said, here goes our first data point along with some historical data > we have collected so far. > > 2.6.11 -13% > 2.6.9 - 6% > 2.6.8 -23% > 2.6.2 - 1% > baseline (rhel3) How repeatable are the numbers across reboots with the same kernel? Some benchmarks will depend heavily on just where things land in memory, especially with things like PAE or even just cache behaviour (ie if some frequenly-used page needs to be kmap'ped or not depending on where it landed). You don't have the PAE issue on ia64, but there could be other issues. Some of them just disk-layout issues or similar, ie performance might change depending on where on the disk the data is written in relationship to where most of the reads come from etc etc. The fact that it seems to fluctuate pretty wildly makes me wonder how stable the numbers are. Also, it would be absolutely wonderful to see a finer granularity (which would likely also answer the stability question of the numbers). If you can do this with the daily snapshots, that would be great. If it's not easily automatable, or if a run takes a long time, maybe every other or every third day would be possible? Doing just release kernels means that there will be a two-month lag between telling developers that something pissed up performance. Doing it every day (or at least a couple of times a week) will be much more interesting. I realize that testing can easily be overwhelming, but if something like this can be automated, and run in a timely fashion, that would be really great. Two months (or half a year) later, and we have absolutely _no_ idea what might have caused a regression. For example, that 2.6.2->2.6.8 change obviously makes pretty much any developer just go "I've got no clue". In fact, it would be interesting (still) to go back in time if the benchmark can be done fast enough, and try to do testing of the historical weekly (if not daily) builds to see where the big differences happened. If you can narrow down the 6-month gap of 2.6.2->2.6.8 to a week or a few days, that would already make people sit up a bit - as it is it's too big a problem for any developer to look at. The daily patches are all there on kernel.org, even if the old ones have been moved into /pub/linux/kernel/v2.6/snapshots/old/.. It's "just" a small matter of automation ;) Btw, this isn't just for you either - I'd absolutely _love_ it for pretty much any benchmark. So anybody who has a favourite benchmark, whether "obviously relevant" or not, and has the inclination to make a _simple_ daily number (preferably a nice graph), go for it. Linus
From: Chen, Kenneth W [email blocked] Subject: RE: Industry db benchmark result on recent 2.6 kernels Date: Tue, 29 Mar 2005 16:22:20 -0800 On Mon, 28 Mar 2005, Chen, Kenneth W wrote: > With that said, here goes our first data point along with some historical data > we have collected so far. > > 2.6.11 -13% > 2.6.9 - 6% > 2.6.8 -23% > 2.6.2 - 1% > baseline (rhel3) Linus Torvalds wrote on Tuesday, March 29, 2005 4:00 PM > How repeatable are the numbers across reboots with the same kernel? Some > benchmarks will depend heavily on just where things land in memory, > especially with things like PAE or even just cache behaviour (ie if some > frequenly-used page needs to be kmap'ped or not depending on where it > landed). Very repeatable. This workload is very steady and resolution in throughput is repeatable down to 0.1%. We toss everything below that level as noise. > You don't have the PAE issue on ia64, but there could be other issues. > Some of them just disk-layout issues or similar, ie performance might > change depending on where on the disk the data is written in relationship > to where most of the reads come from etc etc. The fact that it seems to > fluctuate pretty wildly makes me wonder how stable the numbers are. This workload has been around for 10+ years and people at Intel studied the characteristics of this workload inside out for 10+ years. Every stones will be turned at least more than once while we tune the entire setup making sure everything is well balanced. And we tune the system whenever there is a hardware change. Data layout on the disk spindle are very well balanced. > Also, it would be absolutely wonderful to see a finer granularity (which > would likely also answer the stability question of the numbers). If you > can do this with the daily snapshots, that would be great. If it's not > easily automatable, or if a run takes a long time, maybe every other or > every third day would be possible? I sure will make my management know that Linus wants to see the performance number on a daily bases (I will ask for a couple of million dollar to my manager for this project :-))
Contest?
I remember Con Kolivas running contest on a regular basis and posting numbers. Is that still happening? Running that and the "well known database benchmark whose name cannot be mentioned but it might contain the letters C, P and T in it, not necessarily in that order" on a regular basis would be awesome.
What is the "baseline kernel"
What is the "baseline kernel"?
And what is this database benchmark?
I guess my hint wasn't much o
I guess my hint wasn't much of a hint. I'm guessing it's TPC-C or TPC-D. They can't *say* it's TPC-C or TPC-D, though, without violating TPC's rules. My understanding is that you can use and publish unvalidated TPC performance numbers without calling them TPC performance numbers. You can only publish a TPC number and call it a TPC number if you get the number validated.
That's why the email said "a well known database benchmark."
As for the baseline kernel, this is what RHEL 3 offers, kernel-wise.
Baseline kernel is kernel.org
Baseline kernel is kernel.org's kernel, without any patchsets.
No it's not. You missed this
No it's not. You missed this in the email chain:
2.6.11 -13%
2.6.9 - 6%
2.6.8 -23%
2.6.2 - 1%
baseline (rhel3)
Baseline is the RHEL 3 kernel, and that kernel's a blend of 2.4 with some backported 2.6 features.
450 (!) 73GB 15k-rpm disks - Wow!
"The glory detail on the benchmark configuration: 4-way SMP, 1.6 GHz Intel itanium2, 64GB memory, 450 73GB 15k-rpm disks."
Maybe Intel should start to sell hard disks - should give higher revenue per server ... :-)
Performance
This is a good set of numbers, but realistically the test should be done on say 500Mhz systems and 256MB of ram, and 2XAGP Video Cards for AGP and 64MB for both AGP and PCI Display cards, as I believe this is a more reasonable user base of system configurations. Most tests done on 1.6Ghz systems witha SCSI Wide 68Pin Drive 160MB transfer rates is not realistic. a 30GB or even larger 120GB EIDE Drive system on a 66Mhz bus or even a 100MHz bus has more merrit, as more users have this type of system.
So far I have had to format my Slackware Disk 3 times trying to get 2.6.11.5 and 2.6.11.6 to setup right. I have read carefully all the things I can find regarding the install, now for the real fun is to be able to uninstall this without having to format the drive so it can be working again. I have had the 2.6.11.6 work one time, forgetting the NIC is all I did. Trying to recompile it, it errored and would not write the new BzImage with the NIC settings, as it was pre setup and running. Going backwards tothe prev 2.4.29 it had libs, and modules from the newer 2.6.11.6 and had some issues, so an uninstaller would be greatly appreciated when making these mistakes, rather than having to FDisk the drive with my Win 98SE Boot didk to get rid of the resierjfs, as trying to reinstall Slack, come to find that the Hidden things were still there. I had not yet installed Firefox, yet the Information was there. Bug, or just some crazy thing I did, I don't know for sure.
I will now wait till I can get a Book on what each part of the kernal is and does so that I can wade through all of it and make it work as optimum as I want it to.
CDRecoder issues. No where does it say to use a ATAPI CDRecoder to not use the Generic IDE, and the Cdrecoder that comes with this, the docs say to not use Generic IDE so that the Recorder can actually record. LG CED-8120B 2.0 EPRom Update. DFI K6BV3+ A+ rev. AMD K6-2 500
Anyway I will never ever go back to Windows M$ again, as I have learned so much about Linux in just these past weeks, 2 to be exact. I have come to really enjoy all tha tit has to offer.
Points, taken, suggestions made.
Did you notice that they aren
Did you notice that they aren't interested in normal user systems? These are reasonable numbers for industry databases and that is what they care about.
Testing hardware
But note also what Linus said about welcoming benchmarks
from other people. Someone with the time, interest, and spare hardware should
start doing benchmark series oriented towards typical desktop users.
(I don't have the spare hardware for that, but if the developers are interested in a "creaky old PC benchmark" series, done on a 486DLC with 8Mb of memory, I would have just the system... problem is I would have to set up a cross-compilation: compiling 2.6.x on that machine itself would probably take just a few weeks...)
486s aren't *that* slow.
I have compiled 2.4 kernels on a 486, a couple years ago. I believe it was done in less than 6 hours.
It didn't have all modules enabled, only the ones I used in my hardware, which included several 100-T ethernet chipsets, ide, etc.
Mike
Upgrading to 2.6
If I were you I would install the slackware 2.6 kernel in /testing and get that running before attempting to compile your own. That way you can get your system set up for 2.6 first, which should make installing your own kernel easier and you will have a 2.6 kernel to fall back to *when* you make mistakes.
Performance
Hi,
The suggested test system configurations are all excellent suggestions.
Just note that there is a hidden need from a QA methods perspective to use high performance SCSI drives. The reason SCSI based systems are important has nothing to do with testing SCSI or what the typical systems used for DB based appliucations. The use of SCSI from a QA/Testing perspective has to do with avoiding things IDE/ATA based drives introduce that distract from most performance/stress testing metrics. That said, it is still important to run same tests on exactly same system and configurations with the only difference being SCSI or IDE/ATA drives. I will not go into the reasons why this is or why the other suggestions made by BenneJezzerette are very important and valid. I will add that tests on 486, P133 Dual and some other key n-way SMP systems are important as well and how to make these systems and tests close enough to ensure greatest apples to apples comparisons.
JLM
Willowdale, Ontario
Canada
31 March 2005 06:07
Unit + Performance Testing...
Personally I think the time has now come, where no great new leaps will happen at the kernel level (still need that push on DRI for video cards though) so its time to solidify the build process going into the future and work on fine tuning the whole development process. What I recommend is a central group (just like security initiative earlier) through which organizations will run their different tests with each build (Linus + Andrew release candidates). Open source efforts from Xorg, Mono, Gnome, KDE, OOo, etc would run their unit tests against the builds, not including some kernel level unit testing, and quickly get the results out to the public... With the unit test, additional performance tests can also be done, and statistically compiled over time to provide a baseline... Furthermore a common api should be developed to make it easier for others to created customized performance and unit tests that can integrate with this central system, and allow much of this to be automated...
Performance Vs Value - Units Distributions
Much so, the Video issue is something to be addressed, and yet even in Linux it is much better supported than in Windblows. I run KDE 3.4.0 for Slack and it is by far the best of all. Gnome is slow and cludgy even here. KDE runs sleek and is up and running in 1 to 2 minutes faster than Windblows XP Pro that I was running. Linux is so much faster and seemingly more reliable even at the core of it all. Open source, making the bootstrap the way your system is, not the way they say your system is. (or should be). They really need to work out the GLI GLX and DRI information also 3D graphics enabled programs, better tools for a better os. I am going to try one more time to get this 2.6.11.6 working and hope. Then at least I can determine the true ability of it for myself.
KDE
Bear in mind each KDE release has performance gains, to test a system one has isolate these factors to see true impact. Testing from a system level will not be very useful.
Re[02]: Unit + Performance Testing...
Hi,
Gary D's suggestion of a central group to do testing is excellent. I would suggest that the central group is not going to do Unit testing. Unit testing is a developer activity to validate the code they wrote. The central group would do SIT and the noted Performance, as well as stress, testing on selected release candidates.
It is also very excellent to suggest key base blocks like:
"Open source efforts from Xorg, Mono, Gnome, KDE, OOo, etc would run their unit tests against the builds, not including some kernel level unit testing, and quickly get the results out to the public..."
is also a very long overdue and excellent suggest, but it important that these are not the foundation of the kernel tests done and not unit but SIT and regression testing. The kernel needs to be test as kernel, that means no GUI of any sort, just command line based testing. KDE, Xorg, XFree, Gnome, el at all have there own unique not tied to kernel issues that need to have their own efforts in place to SIT/UAT in their own application scope. That said, certainly it is prudent and desired that these important applications, as well as browsers, all be compiled and key regression functions tested to ensure no kernel issues are introduced to these key applications.
As to creating a API to enable sonsistant testing for the kernel or any other application, that is not possible nor practical. Creating standard ways to measure tests is important. In many cases specific programs and supporting scripting is needed to run the desired tests and enable the required metrics measurements. I strongly suspect all the possible metrics needed to evaluate kernel performance is already available from the kernel having looked at this in some level of detail myself. Therefore automation would be acheived byt a mist of existing applications as noted by Gary D, very specifically written programs to test very specific kernel functions, and supporting shell scripting. Once basic you have tests of the kernel funtions, then you can mix and match in selective ways.
jlm
Willowdale, Ontario
31 March 2005 06:32
My Make file
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.11.6
# Wed Mar 30 18:50:08 2005
#
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_UID16=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
#
# Code maturity level options
#
# CONFIG_EXPERIMENTAL is not set
CONFIG_CLEAN_COMPILE=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SHMEM=y
CONFIG_CC_ALIGN_FUNCTIONS=0
CONFIG_CC_ALIGN_LABELS=0
CONFIG_CC_ALIGN_LOOPS=0
CONFIG_CC_ALIGN_JUMPS=0
# CONFIG_TINY_SHMEM is not set
#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_OBSOLETE_MODPARM=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
#
# Processor type and features
#
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 is not set
CONFIG_MK6=y
# 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_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=5
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_ALIGNMENT_16=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
# CONFIG_HPET_TIMER is not set
# CONFIG_SMP is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_BKL=y
# CONFIG_X86_UP_APIC is not set
CONFIG_X86_TSC=y
CONFIG_X86_MCE=y
CONFIG_X86_MCE_NONFATAL=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
#
# Firmware Drivers
#
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_HAVE_DEC_LOCK=y
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_DEBUG is not set
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BOOT=y
CONFIG_ACPI_INTERPRETER=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
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_BUS=y
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_PCI=y
CONFIG_ACPI_SYSTEM=y
#
# 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_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set
#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# PC-card bridges
#
CONFIG_PCMCIA_PROBE=y
#
# PCI Hotplug Support
#
#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=y
#
# Device Drivers
#
#
# Generic Driver Options
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
#
# Memory Technology Devices (MTD)
#
# CONFIG_MTD is not set
#
# Parallel port support
#
CONFIG_PARPORT=y
CONFIG_PARPORT_PC=y
CONFIG_PARPORT_PC_CML1=y
CONFIG_PARPORT_SERIAL=y
# CONFIG_PARPORT_OTHER is not set
CONFIG_PARPORT_1284=y
#
# Plug and Play support
#
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
# CONFIG_ISAPNP is not set
#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
# CONFIG_BLK_DEV_RAM is not set
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_INITRAMFS_SOURCE=""
CONFIG_LBD=y
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# 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=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=y
# CONFIG_IDE_TASK_IOCTL is not set
#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
CONFIG_BLK_DEV_CMD640=y
# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
CONFIG_BLK_DEV_IDEPNP=y
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_RZ1000=y
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_PCI_AUTO 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_CS5530 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 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=y
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_IDEDMA_AUTO is not set
# CONFIG_BLK_DEV_HD is not set
#
# SCSI device support
#
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#
# CONFIG_BLK_DEV_SD is not set
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
# CONFIG_BLK_DEV_SR is not set
CONFIG_CHR_DEV_SG=y
#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
#
# SCSI Transport Attributes
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
#
# SCSI low-level drivers
#
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_EATA_PIO is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_PPA is not set
# CONFIG_SCSI_IMM is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_ISP is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLA2XXX=y
# CONFIG_SCSI_QLA21XX is not set
# CONFIG_SCSI_QLA22XX is not set
# CONFIG_SCSI_QLA2300 is not set
# CONFIG_SCSI_QLA2322 is not set
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI 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
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
# CONFIG_NETLINK_DEV is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_FWMARK=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
# CONFIG_IP_PNP_RARP is not set
CONFIG_NET_IPIP=y
CONFIG_NET_IPGRE=y
# CONFIG_NET_IPGRE_BROADCAST is not set
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
# 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_TUNNEL=y
CONFIG_IP_TCPDIAG=y
# CONFIG_IP_TCPDIAG_IPV6 is not set
#
# IP: Virtual Server Configuration
#
# CONFIG_IP_VS is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
# IP: Netfilter Configuration
#
CONFIG_IP_NF_CONNTRACK=y
# CONFIG_IP_NF_CT_ACCT is not set
# CONFIG_IP_NF_CONNTRACK_MARK is not set
# CONFIG_IP_NF_FTP is not set
# CONFIG_IP_NF_IRC is not set
# CONFIG_IP_NF_TFTP is not set
# CONFIG_IP_NF_AMANDA is not set
CONFIG_IP_NF_QUEUE=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_LIMIT=y
CONFIG_IP_NF_MATCH_IPRANGE=y
CONFIG_IP_NF_MATCH_MAC=y
CONFIG_IP_NF_MATCH_PKTTYPE=y
CONFIG_IP_NF_MATCH_MARK=y
CONFIG_IP_NF_MATCH_MULTIPORT=y
CONFIG_IP_NF_MATCH_TOS=y
CONFIG_IP_NF_MATCH_RECENT=y
CONFIG_IP_NF_MATCH_ECN=y
CONFIG_IP_NF_MATCH_DSCP=y
CONFIG_IP_NF_MATCH_AH_ESP=y
CONFIG_IP_NF_MATCH_LENGTH=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_MATCH_TCPMSS=y
CONFIG_IP_NF_MATCH_HELPER=y
CONFIG_IP_NF_MATCH_STATE=y
CONFIG_IP_NF_MATCH_CONNTRACK=y
CONFIG_IP_NF_MATCH_OWNER=y
# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
# CONFIG_IP_NF_MATCH_REALM is not set
# CONFIG_IP_NF_MATCH_SCTP is not set
# CONFIG_IP_NF_MATCH_COMMENT is not set
# CONFIG_IP_NF_MATCH_HASHLIMIT is not set
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
CONFIG_IP_NF_TARGET_TCPMSS=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_TARGET_NETMAP=y
CONFIG_IP_NF_TARGET_SAME=y
CONFIG_IP_NF_MANGLE=y
CONFIG_IP_NF_TARGET_TOS=y
CONFIG_IP_NF_TARGET_ECN=y
CONFIG_IP_NF_TARGET_DSCP=y
CONFIG_IP_NF_TARGET_MARK=y
CONFIG_IP_NF_TARGET_CLASSIFY=y
CONFIG_IP_NF_RAW=m
CONFIG_IP_NF_TARGET_NOTRACK=m
CONFIG_IP_NF_ARPTABLES=y
CONFIG_IP_NF_ARPFILTER=y
CONFIG_IP_NF_ARP_MANGLE=y
CONFIG_XFRM=y
# CONFIG_XFRM_USER is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
CONFIG_LLC=y
CONFIG_LLC2=y
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
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
#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set
#
# Tulip family network device support
#
CONFIG_NET_TULIP=y
CONFIG_TULIP=y
# CONFIG_TULIP_MMIO is not set
# CONFIG_TULIP_NAPI is not set
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
CONFIG_DM9102=y
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA 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_APRICOT is not set
# CONFIG_CS89x0 is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139TOO is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_NET_POCKET 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_R8169 is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
# CONFIG_TIGON3 is not set
#
# Ethernet (10000 Mbit)
#
# CONFIG_IXGB is not set
# CONFIG_S2IO 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_PLIP is not set
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
# CONFIG_NET_FC 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=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# 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 I/O drivers
#
# CONFIG_GAMEPORT is not set
CONFIG_SOUND_GAMEPORT=y
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PARKBD is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW 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_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD 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
#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_SERIAL_NONSTANDARD is not set
#
# Serial drivers
#
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_CONSOLE is not set
# CONFIG_SERIAL_8250_ACPI is not set
CONFIG_SERIAL_8250_NR_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set
#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
CONFIG_PRINTER=y
# CONFIG_LP_CONSOLE is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set
#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
#
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM 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
#
# 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 is not set
# CONFIG_AGP_INTEL_MCH is not set
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
CONFIG_AGP_VIA=y
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
# CONFIG_DRM_I830 is not set
# CONFIG_DRM_I915 is not set
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_MWAVE is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set
#
# I2C support
#
CONFIG_I2C=y
# CONFIG_I2C_CHARDEV is not set
#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_ALGOPCF is not set
# CONFIG_I2C_ALGOPCA is not set
#
# I2C Hardware Bus support
#
# CONFIG_I2C_ELEKTOR is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_SCx200_ACB is not set
# CONFIG_I2C_PCA_ISA is not set
#
# Hardware Sensors Chip support
#
# CONFIG_I2C_SENSOR is not set
# CONFIG_SENSORS_LM83 is not set
# CONFIG_SENSORS_LM90 is not set
#
# Other I2C Chip support
#
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
#
# Misc devices
#
#
# Multimedia devices
#
CONFIG_VIDEO_DEV=y
#
# Video For Linux
#
#
# Video Adapters
#
# CONFIG_VIDEO_BT848 is not set
# CONFIG_VIDEO_PMS is not set
# CONFIG_VIDEO_BWQCAM is not set
# CONFIG_VIDEO_W9966 is not set
# CONFIG_VIDEO_CPIA is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
# CONFIG_TUNER_3036 is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_DPC is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
# CONFIG_VIDEO_OVCAMCHIP is not set
#
# Radio Adapters
#
# CONFIG_RADIO_CADET is not set
# CONFIG_RADIO_RTRACK is not set
# CONFIG_RADIO_RTRACK2 is not set
# CONFIG_RADIO_AZTECH is not set
# CONFIG_RADIO_GEMTEK is not set
# CONFIG_RADIO_GEMTEK_PCI is not set
# CONFIG_RADIO_MAXIRADIO is not set
# CONFIG_RADIO_MAESTRO is not set
# CONFIG_RADIO_SF16FMI is not set
# CONFIG_RADIO_SF16FMR2 is not set
# CONFIG_RADIO_TERRATEC is not set
# CONFIG_RADIO_TRUST is not set
# CONFIG_RADIO_TYPHOON is not set
# CONFIG_RADIO_ZOLTRIX is not set
#
# Digital Video Broadcasting Devices
#
# CONFIG_DVB is not set
#
# Graphics support
#
CONFIG_FB=y
CONFIG_FB_MODE_HELPERS=y
# CONFIG_FB_TILEBLITTING is not set
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
CONFIG_FB_VESA=y
CONFIG_VIDEO_SELECT=y
# CONFIG_FB_HGA is not set
CONFIG_FB_RIVA=y
CONFIG_FB_RIVA_I2C=y
# CONFIG_FB_RIVA_DEBUG is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON_OLD is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_SIS is not set
# CONFIG_FB_NEOMAGIC is not set
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_VIRTUAL is not set
#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FONTS=y
# CONFIG_FONT_8x8 is not set
# CONFIG_FONT_8x16 is not set
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
CONFIG_FONT_MINI_4x6=y
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
#
# Logo configuration
#
CONFIG_LOGO=y
CONFIG_LOGO_LINUX_MONO=y
CONFIG_LOGO_LINUX_VGA16=y
CONFIG_LOGO_LINUX_CLUT224=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_RAWMIDI=y
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_SEQUENCER_OSS=y
# CONFIG_SND_RTCTIMER is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
#
# Generic devices
#
CONFIG_SND_MPU401_UART=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=y
#
# ISA devices
#
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_WAVEFRONT is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
#
# PCI devices
#
CONFIG_SND_AC97_CODEC=y
# 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_BT87X is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
CONFIG_SND_CA0106=y
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_CMIPCI 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_MAESTRO3 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
#
# USB devices
#
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_USX2Y is not set
#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
#
# USB support
#
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set
#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_UHCI_HCD=y
# CONFIG_USB_SL811_HCD is not set
#
# USB Device Class drivers
#
# CONFIG_USB_AUDIO is not set
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_MIDI is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
#
# CONFIG_USB_STORAGE is not set
#
# USB Input Devices
#
CONFIG_USB_HID=y
CONFIG_USB_HIDINPUT=y
CONFIG_USB_HIDDEV=y
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
#
# USB Imaging devices
#
# CONFIG_USB_MICROTEK is not set
#
# USB Multimedia devices
#
# CONFIG_USB_DABUSB is not set
CONFIG_USB_IBMCAM=y
# CONFIG_USB_KONICAWC is not set
# CONFIG_USB_OV511 is not set
# CONFIG_USB_SE401 is not set
# CONFIG_USB_SN9C102 is not set
# CONFIG_USB_STV680 is not set
#
# USB Network Adapters
#
# CONFIG_USB_KAWETH is not set
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_USBNET is not set
#
# USB port drivers
#
# CONFIG_USB_USS720 is not set
#
# USB Serial Converter support
#
# CONFIG_USB_SERIAL is not set
#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set
#
# USB ATM/DSL drivers
#
#
# USB Gadget Support
#
# CONFIG_USB_GADGET is not set
#
# MMC/SD Card support
#
# CONFIG_MMC is not set
#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set
#
# File systems
#
CONFIG_EXT2_FS=y
# CONFIG_EXT2_FS_XATTR is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
# CONFIG_EXT3_FS_SECURITY is not set
CONFIG_JBD=y
# CONFIG_JBD_DEBUG is not set
CONFIG_FS_MBCACHE=y
CONFIG_REISERFS_FS=y
CONFIG_REISERFS_CHECK=y
CONFIG_REISERFS_PROC_INFO=y
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
CONFIG_JFS_FS=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_JFS_SECURITY=y
CONFIG_JFS_DEBUG=y
CONFIG_JFS_STATISTICS=y
CONFIG_FS_POSIX_ACL=y
#
# XFS support
#
CONFIG_XFS_FS=y
CONFIG_XFS_QUOTA=y
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
# CONFIG_QUOTA is not set
CONFIG_QUOTACTL=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=y
CONFIG_JOLIET=y
# CONFIG_ZISOFS is not set
CONFIG_UDF_FS=y
CONFIG_UDF_NLS=y
#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
#
# Miscellaneous filesystems
#
# CONFIG_HFSPLUS_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 is not set
# CONFIG_CIFS is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_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-1"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
# CONFIG_NLS_CODEPAGE_855 is not set
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
# CONFIG_NLS_CODEPAGE_866 is not set
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_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=y
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 is not set
# CONFIG_NLS_KOI8_R is not set
# CONFIG_NLS_KOI8_U is not set
# CONFIG_NLS_UTF8 is not set
#
# Kernel hacking
#
# CONFIG_DEBUG_KERNEL is not set
CONFIG_DEBUG_PREEMPT=y
CONFIG_DEBUG_BUGVERBOSE=y
# CONFIG_FRAME_POINTER is not set
CONFIG_EARLY_PRINTK=y
# CONFIG_4KSTACKS is not set
#
# 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_CRC32=y
CONFIG_LIBCRC32C=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_PC=y
DFI K6BV3+ Rev A+
AMD K6-2 500 Step 12
nVidia GeForce 2 MX 400 64MB AGP2X
Soundblaster Live 24 Bit
NetworkEverywhere NC100 (Linksys)
256MB SDRAM PC100
I will not do this unless I have made this right. I had the same errors I posted before and new ones in the sound card but only checked for what I have and nothing else.
Moron
This is not a Makefile and posting it here is useless to us all.
You are a Moron.
MakeFile
No that is the .config file that make made. Ihad 5 errors of which I posted in other places and they are the same errors this gave me. I do note, they took out the IPv6 in the latest build. Would rather be more on than a more off. This way I would know more on what I needed. Get a Life, or at least the other half of the hlaf life, then maybe you could see the post for what it is, a request for help.
Moron
Please give me your email address so that I can send you a file containing pi up to 1 billion decimals.
It may indeed be a request fo
It may indeed be a request for help. But do you feel that it the best place and best form to submit it?
About place: this thread is about benchmarking 2.6 kernel, not about configuring it for your system or bugfixing. You should have opened one (and only one) new thread in the forum to expose your case.
About form: you dump a huge file and in the end you don't even tell us the exact issue (and don't bother to give a pointer to an accurate description of it). It may be more useful to give a detailed account on the issue, then attach useful files and references than the other way round.
Competent people may not have too much time to spare for people who don't bother to make the effort of a good explanation where it is not off-topic (actually that's a guess based on prior exposure because I'm not one of them).
NOT a moron
Reacting a bit less over-the-board would have been a very nice idea.
I really don't want to know how YOU were behaving with 2 weeks of Linux experience (that's what this guy said he was having...).
It's funny to see people recompiling their own kernels after a measly 2 weeks of experience (wow!!), and they're just BOUND to make some grave and not-so-grave mistakes somewhere along the way, given the rollercoaster ride that that 2 weeks remark implied. :)
That said, the config settings are really useless here, since it's way too unspecific (we don't have any information about the system and we don't know about the specific failure either).
Anyway, to the parent:
that's not a "Makefile", that's the Linux kernel config file.
A Makefile tells a project what to rebuild when some part of the project changes (make is a project dependency management program), this kernel config file merely contains a list of defines that tell the kernel build system (called "kbuild" in 2.6) what we want to have.
Perhaps not a moron, but
at least annoying
The post is off-topic, it's not well explained what the actual problem is, there are no system details, the post is *long* and should have been placed elsewhere and a pointer to it given...
I'd suggest the original poster read http://www.catb.org/~esr/faqs/smart-questions.html
Only having 2weeks of experience is no excuse for lack of common sense, and it should be common sense that a post like this would annoy people.
Let us all post our 'Makefiles'
Hi,
Please consider this as an a silent invitation to all, that we should henceforth post our 'Makefiles' here, which include all Word, Excel and Exe files, so as to allow a keen person named 'void' to interpret our problem concerning our hieghtened interest in watching Formula One off lately and as to what should we do to resolve the issue at the earliest.
... and for those who do not fall in the 'all' category, please consider this not as a sarcastic comment, but as a mere remark that probably posting small texts such as the one above, may not be the best things to get help...
robins
That Make file just what I needed
Thank you for that excellent "Make file"; I've been looking everywhere for something like this. It performs flawlessly on my 2.3 CPU Ultragon Matrix Generator. Do you have any other configuration I can borrow?
Again, thanks!
Automatic Benchmarks
Don't know if this exists already. But anyway it would be a good
idea if there were an open source benchmark program that you could
run on your Linux box. It would collect system info and benchmark results and send it to a central database somewhere. From that database you could easy generate graphs and so on to make it easy for kernel developers to track performance on different systems and kernel versions.
Not sure exactly how this would work but I'm sure the kernel gurus can figure out a good solution...
Regards, Albert
Feeback to Linus comments
Linus,
Very important points. If the test, even if random based, is thought out well and test conditions set up correctly the same start and walk pattern conditions will exist. Any differences would stricly be differences in the kernel from the first test and/or internel kernel rando designed behaviour. The tests would be similar, but one cannot control the kernel in the test, nor real life for exact same test, so any test chained after would have to be considered "exactly" same from a testing/QA perspective. I am not going to get into all the reasons and supporting details why this is the case.
This means aside from any tests decided on to be done, the same, even if does not apply to that platform or not, the test still needs to be run. That means all platforms need to be assessed for their unique needs and the suite of tests tests for all these on all platforms even if a specific test does not apply. Tests need to be created in such a manner as to be platform independant, but will casue platform dependant internals when run on platforms that have those specific platform internals. Not doing so would make any testing of as suggested almost worthless.
Very valid and important points. Again this can be addressed very easy and is a part of managing the test environment for test repeatability. So while yes this is an easy and often forgotton element of many stress/performance/benchmarking tests the way to address and ensure it is not a factor is really quite easy to ensure.
Finer granularity has two sides. The one you mention in terms of between builds is one. The granularity that is actually more important is in the development of tests. Having a very isolated specific tests will greatly reduce the need for runing a suit of tests every build or every three days. That said if a very special change was made it is certainly reasonable to request and conduct the full or select subset of tests be done to evaluate the major change.
The tests can certaily be automated. Much effort is needed to do so such that apples to apples comparisions against different platforms, releases, configurations, et al can be created such that the metrics summary of each test suite run generated and test is apples to apples.
Based on my own experience with the few specific CLI kernel tests I have created the kernel tests thatwill need to be run will likely take a week or two to run on a given platform. Remember the first set of tests are all CLI to test the kernel. Then one has to test the suggested OOo, browsers, Xorg, XFree, KDE, Gnome, et al. These are easly to automate in terms of compiling and all their related dependant programs, but that itself takes alot of time to create the automate build and to perform the builds. One then has to manually regression test to see if key functions of these major items work ok even if compile ok. That is likely about a 2 week task in itself with 3-4 people doing per platform/configuration. So you are basically looking at about 4 weeks of effort for one platform to test a desired kernel per platform assuming no bugs are found that pervents the tests from completing.
If tests fail or the test suite cannot be completed, then there is invesigate and re-run the test time required by the testing group. Normally I apply a 3.0 factor to test time to actually complete tests that includes re-test for the various reasons a test can fail. Some of the tests that fail may be due to human error so no bug may be created, but the tests have to be redone from whatever key re-start point that is required of the test(s).
You may say, hey well seems this will take about 3-4 months a cycle to test and know the results. Yes, in the complete form of the test this is true. Much sooner for the key areas as tests are ordered in terms of importance. You may also say, hey at 2-3 months of QA testing it starts to look like, waiting as do now, after release to find out some of the serious problems without doing all this testing effort makes some sense. Not really true. Once the tests are created and the process to ensure same disk file layout, scripts and programs to test created and flushed, and all are set then it is mostly the machines doing the work and running the tests until the OOo, Xorg, XFree, KDE, Gnome, browsers, et al manual testing is required to be done. This will increase kernel stability as issues are found before a release. It also means time can be spent on developing new tests as need arise to increase kernel code test coverage. The manual tests are important as well, but if the write set of supporting automated and written test suite programs written the testing from the kernel perspective of OOo, Xorg, XFree, KDE, Gnome, browsers, et al would strickly be from compile to see if they compile with no isssues from the kernel point of view.
It is important to note that Xorg, XFree, KDE, Gnome, browsers, et al are all living programs that will change unlike the formal kernel test suite. That means these will fail on own to compile due to factors that have nothing to do with the Linux kernel. Compiling and running regression tests on these for a kernel release has its own concerns on how often and to what extent they need to be run for a kernel test. My suggestion is the same release of these is chosen and run as same for a year or more after chosen as verion to test. The test scope woutl be limited to if these will compile with no unexpected warnings or errors beyond that these programs have in past. As to how frequent these are even run, I still say run with every kernel designated to be tested, and run the compiles of them before deciding the kernel is good as a release. If there are no major issues in the compile of these programs then the kernel can be released assuming no other kernel specific issues in tests or from users are found.
Doing it every day is not practical even once one decides on the key subset tests to run. Running the tests at key interest points of change and for first and last RC is more practical. Again remember many platforms will need same tests run, but each platform can have the tests run at same time. The tests will have to be run on each platform against a handfull of key and basically different configurations. This will cause even a key subset of regression tests to take about a week or so to complete against each of the different configurations. For a release candidate the full test suite shoudl be run. Spot checks during development can be a subset regression set of tests.
This all may sound like alot of work, time, effort and all. For sure to get things started, but once you have the base of tests down, working and providing the metrics in easy to summarize and digest ways with the raw supporting metrics for invesigation then most of the time is the machine running the tests as the kernel developers wait patiently ;) Certainly if issue X, Z, or Z shows up on one or more platforms with one set of platform tests, focus on that can be made while the other tests and configurations/platforms tests run. Continuing to run those tests is a subject call based on what issues are seen. It is possible that the issues seen are such that all further tests are stop to address the issue and start the tests over again to validate the fixes.
Some of this delay can be avoided, but fact is unless you have a set of well developed and automated scripts and reporting metrics this will still be a problem as the problem that happens will not be tested. As much as people do nto believe it, QA if done properly takes 200% of the time it took to develop the software. So you can easily see how the kernel is very far behind and even the issues after 2 months out in field are just tip of what is likely existing issues. This is why it is so important to have a team of QA people to review the kernel functions, past areas of frequent failure first and develop tests to address key heartbeat and repeat issues tests as the initial effort to avoid this few months down the road no clue what the problem is delemia. It is very important to have tests that even if it is a few months down the road the tests can isolate the issue(s) so the code in question is clear even if it is a few months down the road.
This is why it is so important to have people dedicated to just kernel QA that can acheive this goal. This is important to stabilize the kernel code as too often it takes a couple years to do so and many large bumps happen in stability along the way. As more and more companies want to use the Linux kernel in mission critical functions the requirement for formal and dedicated QA increases greatly. Right now the kernel depends on perfect developers ;)
This is not practical in my estimation unless ther eare a few specific tests that are off "interest" when an issue arises. Again you need dedicated QA people, access to the hardware, and what may be a selective issue to look back at when a bug issue warrants. If one has the right test and test condition factors usually one does nto need to go back historically that frequently to invesigate an issue. There will be times for sure, but not that often if the right suite of tests are created. Right now the problems exist, but the tests or conditions that caused the issue are so all over the map. Not having a dedicated QA team means developers are distracted from developing a great deal. This means kernel developers are reducing theur developing scale as problems and complications arise from problems eitehr not formally tested first or after out in field and the complicated process of obtaining the necessary detail and time to duplicate problems increases. It would be good to put in place a proper QA team to screen issues, get more detailed information, try to recreate the problem or get supporting audit trail information that will show the progression of the problem that can lead developers to know what to look for specifically in code. If a dedicated QA team is not created then over time various problems that cannot be duplcated will start to accumlate and interact in such strange ways that a reported probblem may be hard to identify or duplicate due to other masking bugs as well. With a dedicated QA team one can allocate dedicated test systems to duplicate by QA issues that would offload the time and effor tof kernel developers that could then be focused on solving bugs that can be duplicated. Bugs that can be duplicated ae bugs developers can almost always fix. Bugs developers cannot see generally can only be fix a small perentage of time and many of those are on blind best techncial guess what the problem was. Those type of guess type fixes will not go away, but would be greatly reduced with formal QA test suite and QA to screen and duplicate reported bugs and issues.
LOL LOL LOL Small matter of automation... once the base tests are done perhaps. Then historical and new issues arise to suggest a test that needs to be created then the incremental effort is faily manageable. It is great all the prior versions and patches and RCs are available is needed on case by case basis. Just bear in mind even with all those prior versions there are many other issues that may affect what prior patches can be tested or not when comes to file system realted bugs, supporting file system utilities, compiler, glibc version and bugs, which version compiled on vs which kernel version being used which are all part of the automated testing to ensure upward compatiability of these programs, file systems and kernels.
I have a few tests realted to test kernel areas including how to simulate some of the different DB system demands. These tests can take a few days to run, let alone are very hard on the hard drives so I care nto to run them as a matter of course. In order for tests to be repeatable and comparative you will need defined test beds that can be set back to same place for each suite or test to be performed to be meaniful as you indicated above. Otherwise, you may be chasing wild bits in the sky that are not an issue for the kernel.
I have not addressed forward compatiability and certain required backward complatibility testing that has not been mentioned but is very important as well. Such testing will add yet anohter very important layer of testing that will need to be done as well.
jlm
Willowdale, Ontario
Canada
31 March 2005 08:58
if you want Linus to read that ...
if you want Linus to read that I'd suggest you email it to him directly and CC the LKML (Linux Kernel Mailing List), the chances of him reading it here are virtually zero.
scripting
I imagine that testing a kernel is quite more diffcult thant any other programme.
Does it existe a framework of test ? Something that could install a new kernel on a machine, reboot and launch the test. Something that enable a full automatic test.
How ?
I have an old (no so old...) machine that could run benchmark continously....
But how to ___automatically___ (meaning without user's intervention:-)
- download a kernel (from where -> security ?)
- compile the kernel
- install it
- reboot
- run the (?) benchmark(s)
- report the result (to a service on internet ?)
- and again
If someone can create something doing this, people will happily run it, and you will (probably) soon have a lot of data.
Re: How ?
Hi,
Excellent idea, but cannot be accomplished quite that way. There is a variation on this idea that could be created.
The big difficulty in both cases is when a problem is discovered. Then someone needs hands on the system to explore what the possible cause of the problem is. Now that said it might be still possible to determine with little effort the cause of the bug(s). I am just not sure if the effort to greate such a method of testing on many spare machines willing people have at home vs fustration cannot get access to machine for the large percentage of bugs found that will need hands on the system to invesigate.
jlm
Willowdale, Ontario
Canada
31 March 2005 12:57
Re: scripting
nicO,
Testing the kernel is unique to test for sure. There are various hardware and device driver combinations. That said, in order to get started one would focus on the core functions of the Kernel to build full automated tests.
Also what is a challenge is to find those with the right skills to test the kernel. You need people who want to test, not test so can become a developer. Developers and QA/Testing people generally have very different mindsets. The kernel is a very unique item and hence not many people about with the knowledge or techncial skills to test any OS kernel. QA/Testing by many is considered boring and not a popular career path.
That said there is the Linux Test Project:
http://ltp.sourceforge.net/
I am sure the LTP is deteloping tests for the Kernel that are helpful, but in all the time it has existed there are holes that seem to still exist in large areas that leave the Kernel untested or tests without a quantive approach to avoid the problems that keep returning over several major releases of the kernel. The LTP I am sure has insight and automated scripts to test the kernel. I have this feeling that either that has not been enough over the years of the LTP for the demands the Kernel has or there are not enough resources to do what is needed to test or increase the scope of tests for the Kernel.
In terms of scripting one basically has to create programs to test a specific part of the kernel. The program for that function has some general design to the kernel function to be tested and then put a wrapper script to broaden the scope of the test conditions.
As to the framework existing, that needs to be determined, designed, and set up I would suspect. I do not believe there is an actual design of framework for testing. This needs to be developed as well.
I would think the Open Source Development Labs:
http://www.osdl.org/
has the hardware to enable kernel testing for most part. That would only be a small part of the framework needed to do any kernel testing. I suspect OSDL is lacking some hardware to do certain important types of tests, but that hardware should be easy to come by and not be expensise if it costs anying at all to obtain for most part. I have no idea if OSDL has the resources to do the required level of kernel testing.
Basically someone has to sit down and design how the kernel will be tested. Then a person or team starts at the most important parts and decides on how the best approach to standards and reusable parts can be done so the effort is efficient and has some structure to the testing and metrics such that the results can be compared in meaningful manner between various verison now and in future. This if part of the "framework" that has to be developed and structured. It needs planning and thought, not just wing it and try to put the pieces together later. The latter approach will be doomed to fail and be ineffective in finding issues or evaluating possible issues that need to be researched and tested further. The fustrating thing for most people I think will be that it would take a few months to come up with what framework is needed, obtain the hardware needed to meet the framework needs and start to develop the building blocks of the framework and first few proof of concept tests to validate the framework.
In testing there are aways issues that arise that were not expected. The key is to have the QA structure to be able to quickly follow these up with least amount of repeat work effort while having repeatability of the issue. An issue that is not repeatable is not an issue any developer can effectively correct.
jlm
Willowdale, Ontario
Canada
31 March 2005 11:57
yummy benchmarking under linux links
Most of the work here has already been done at the Linux Test Project:
To test kernel/system reliability:
http://ltp.sourceforge.net/
More tests can and should be developed as described here in the howto:
http://ltp.sourceforge.net/ltphowto.php
Performance testing?
http://ltp.sourceforge.net/tooltable.php
Among my favorites:
lmbench
contest
tiobench
dbench
netperf
httperf
I have found the best way to test kernel perfomance (multimedia)
Best way to test multimedia performance:
Jackit (jack connection kit) with an effects processor -- I use a very simple one called ExEf and wrap it off with jackdsp and then I run it with several ecamegapedal sessions open processing the effects (then I dump it off to be recorded) -- makes the sound very clean and professional. This is how I discovered that deadline scheduler was the fastest with it optimized for size (small kernel size). If I used some of the other combinations I would get skips in output and dropouts in audio. I don't know how you could actually benchmark this sort of thing ... but it is different from 2.6.2 to 2.6.10. It is interesting because I was always taught that gcc compiled with -O2 is fasters than -Os, but I found optimizing for size is faster in multimedia in some cases. -- some of the early 2.6 kernel could be pushed with more effects and when I upgraded to 2.6.9 then I started getting a lot of dropouts and stuff was not as "fast"? I have not tried the newest kernels because things seemed to be getting worse.
I would think that moving forward that linux is going to make more of a "mainstream" transition to audio/video applications. I think that the kernel team has turned a blind eye to audio/video performance because of the obvious fact that linux's main use is server applications (that could change). Most multimedia stuff can't be easily benchmarked.
I can do some tricked out stuff that I can't do with my Windows or a Mac OS X using jackit and a bunch of other open source software. I just hope that someone is looking at this stuff.
-Ron
Various options
I'd like to see more benchmarks. Databases are good, but cover only very limited areas of the kernel and may not always provide a clear view of what the underlying issues are. It would be good if other benchmarks were provided on a regular basis, to help narrow down where the problems are and also to expose problems in areas of the kernel that aren't otherwise being tested.
Obviously, one person is very unlikely to be willing to tie up enough resources to put the kernel through its paces, but I'm sure there are more than enough people who could - and would - run even simple tests and therefore help in solving the Unsolved Mysteries lurking in 2.6. (I'm thinking here that most people are unlikely to want to run one of the supercomputer benchtests on their main machine, but I'm sure there are people who could. On the other hand, it shouldn't be quite so hard to do filesystem regression tests, and it would be fairly easy for even Joe/Jane Average Kernel Hacker to roll a bunch of kernels and benchmark fractals, MP4 encoding, etc.)
Benchmarks aren't the only thing people can run, either. There are projects for validating the Linux kernel and assorted network functions. (The Linux Test Project and the TAHI test suite used by USAGI for IPv6 testing spring to mind.) It might even help if there were Linux Kernel Maps rolled every so often - coding errors are as likely to be structural as they are syntactical.
The problem doesn't lie in the value of any given set of data - you can always collect more. Nor does it lie in the number of tools - there are actually quite a lot. The problem is that although developers and philosophers have some highly visible, very influential leader/coders who do what they can (and more) and inspire the rest, there really isn't anyone of that kind of stature in software verification. To be of use, testing can't just be something done today and forgotten tomorrow.
The other side of the problem is that people like IBM, SGI and OSDN are less likely to hire Linux kernel validators. Coding is profitable - directly and by landing a good job. Most QA folk I know don't earn a fraction of the salary, and I can't think of a single company that has done a software proof for years. If there's no demand for the skillsets, what's the attraction?
It would be very easy to fix most/all of 2.6's problems, given the means available, but even in murder mysteries, they need a motive and an opportunity.
intermodule.c
I get these errors from this module.
Kernel/Intermodule:179 Warning Inter_module_Register is depreciated Declared Kernel/Intermodule.c 38
Then 180 ... inter_module_unregister ... 79
then 183 ... inter_module_put ... 160
Are these in the Module area of the make menuconfig? I think that this will be the only error I get after I find this out it will be a clean setup. Thank you.
Could you be so nice to start
Could you be so nice to start a new thread in the forum? I doubt anyone will seriously try to help you out if you post off-topic here. Alternatively you could ask for help on LinuxQuestions.org, the Slackware forum.
linuxquestions.org
I did but as of yet I have only rcvd one answer and it was stated from a newbie these are nothing. I finally got it to complie correctly and the NIC did not work, my display reverted back to an EGA monitor and the sound became choppy.
I think some of this is related to perfomance.