From edc1928c4d4304a5a631f73834fbafa4574ea059 Mon Sep 17 00:00:00 2001 From: Steve French Date: Tue, 31 May 2005 14:32:44 -0700 Subject: [PATCH] --- yaml --- r: 1949 b: refs/heads/master c: af6f5e3247a68074e384ef93c0b4bce1b73c9d80 h: refs/heads/master i: 1947: df8fdc5e9f53413747b29de46bd4c0182fb839c1 v: v3 --- [refs] | 2 +- trunk/CREDITS | 6 +- trunk/Documentation/DocBook/libata.tmpl | 156 +--- .../Documentation/cpu-freq/cpufreq-stats.txt | 128 --- trunk/MAINTAINERS | 6 - trunk/Makefile | 2 +- trunk/arch/arm/Kconfig | 2 +- trunk/arch/arm/boot/compressed/head-xscale.S | 7 - trunk/arch/arm/configs/badge4_defconfig | 29 +- trunk/arch/arm/configs/h3600_defconfig | 24 +- trunk/arch/arm/configs/hackkit_defconfig | 22 +- trunk/arch/arm/kernel/entry-armv.S | 16 +- trunk/arch/arm/kernel/traps.c | 49 -- trunk/arch/arm/lib/io-writesw-armv4.S | 6 +- trunk/arch/arm/mach-pxa/mainstone.c | 9 - trunk/arch/arm/mach-pxa/pm.c | 32 +- trunk/arch/arm/mach-pxa/pxa25x.c | 29 - trunk/arch/arm/mach-pxa/pxa27x.c | 32 - trunk/arch/arm/mach-s3c2410/dma.c | 4 - trunk/arch/arm/mach-sa1100/Kconfig | 2 +- trunk/arch/arm/mm/Kconfig | 15 +- trunk/arch/arm/mm/Makefile | 2 + trunk/arch/arm/mm/copypage-xscale.S | 113 +++ trunk/arch/arm/mm/copypage-xscale.c | 131 ---- trunk/arch/arm/mm/minicache.c | 73 ++ trunk/arch/h8300/kernel/process.c | 2 +- trunk/arch/i386/kernel/Makefile | 2 +- trunk/arch/i386/kernel/cpu/cpufreq/Kconfig | 14 +- trunk/arch/i386/kernel/cpu/cpufreq/Makefile | 1 - trunk/arch/i386/kernel/cpu/cpufreq/longhaul.c | 58 +- .../i386/kernel/cpu/cpufreq/powernow-k7.c | 11 +- .../i386/kernel/cpu/cpufreq/powernow-k8.c | 113 +-- .../i386/kernel/cpu/cpufreq/powernow-k8.h | 15 - .../arch/i386/kernel/cpu/cpufreq/sc520_freq.c | 186 ----- .../kernel/cpu/cpufreq/speedstep-centrino.c | 6 - .../i386/kernel/cpu/cpufreq/speedstep-lib.c | 6 +- .../i386/kernel/cpu/cpufreq/speedstep-smi.c | 3 - trunk/arch/i386/kernel/setup.c | 2 - trunk/arch/i386/kernel/timers/common.c | 6 +- trunk/arch/i386/kernel/timers/timer_tsc.c | 20 - trunk/arch/ia64/ia32/sys_ia32.c | 2 +- trunk/arch/ia64/kernel/fsys.S | 4 +- trunk/arch/ia64/kernel/mca.c | 4 +- trunk/arch/ia64/kernel/module.c | 10 +- trunk/arch/ia64/kernel/ptrace.c | 6 - trunk/arch/ia64/kernel/setup.c | 3 +- trunk/arch/ia64/kernel/traps.c | 29 +- trunk/arch/ia64/mm/init.c | 19 +- trunk/arch/ia64/sn/kernel/setup.c | 4 +- trunk/arch/m68knommu/kernel/process.c | 17 +- trunk/arch/ppc/kernel/cputable.c | 11 - trunk/arch/ppc/kernel/misc.S | 6 +- trunk/arch/ppc/platforms/pmac_cpufreq.c | 7 +- trunk/arch/ppc/syslib/prom_init.c | 10 - trunk/arch/ppc64/boot/prom.c | 28 +- trunk/arch/ppc64/kernel/entry.S | 9 + trunk/arch/ppc64/kernel/head.S | 10 +- trunk/arch/ppc64/kernel/iSeries_setup.c | 22 - trunk/arch/ppc64/kernel/idle.c | 8 +- trunk/arch/ppc64/kernel/kprobes.c | 18 +- trunk/arch/ppc64/kernel/misc.S | 2 +- trunk/arch/ppc64/kernel/pSeries_reconfig.c | 8 + trunk/arch/ppc64/kernel/process.c | 3 + trunk/arch/ppc64/kernel/prom_init.c | 112 +-- trunk/arch/ppc64/kernel/setup.c | 56 +- trunk/arch/ppc64/kernel/smp.c | 3 +- trunk/arch/ppc64/kernel/sys_ppc32.c | 70 +- trunk/arch/ppc64/kernel/syscalls.c | 33 +- trunk/arch/ppc64/kernel/sysfs.c | 8 +- trunk/arch/ppc64/kernel/time.c | 2 + trunk/arch/s390/appldata/appldata_base.c | 72 +- trunk/arch/s390/appldata/appldata_mem.c | 2 +- trunk/arch/s390/appldata/appldata_net_sum.c | 2 +- trunk/arch/s390/appldata/appldata_os.c | 4 +- trunk/arch/s390/kernel/ptrace.c | 55 +- trunk/arch/s390/mm/fault.c | 2 +- trunk/arch/sparc64/kernel/pci_iommu.c | 88 +-- trunk/arch/sparc64/kernel/pci_psycho.c | 2 +- trunk/arch/sparc64/kernel/pci_sabre.c | 2 +- trunk/arch/sparc64/kernel/pci_schizo.c | 2 +- trunk/arch/sparc64/kernel/sbus.c | 20 +- trunk/arch/um/Kconfig_char | 6 - trunk/arch/um/drivers/chan_user.c | 26 +- trunk/arch/um/drivers/mmapper_kern.c | 24 +- trunk/arch/um/drivers/net_user.c | 2 +- trunk/arch/um/drivers/slip.h | 4 +- trunk/arch/um/drivers/slip_proto.h | 3 +- trunk/arch/um/drivers/slirp.h | 4 +- trunk/arch/um/drivers/stderr_console.c | 6 +- trunk/arch/um/include/mconsole.h | 2 +- trunk/arch/um/include/net_user.h | 2 +- trunk/arch/um/include/os.h | 2 +- trunk/arch/um/include/user_util.h | 3 + trunk/arch/um/kernel/skas/process_kern.c | 7 +- trunk/arch/um/os-Linux/elf_aux.c | 6 +- trunk/arch/um/os-Linux/file.c | 2 +- trunk/arch/x86_64/Kconfig | 1 - trunk/arch/x86_64/kernel/aperture.c | 41 +- trunk/arch/x86_64/kernel/io_apic.c | 1 - trunk/arch/x86_64/kernel/mpparse.c | 1 - trunk/arch/x86_64/kernel/time.c | 2 - trunk/drivers/atm/Makefile | 3 +- trunk/drivers/atm/fore200e.c | 6 +- trunk/drivers/atm/he.c | 6 +- trunk/drivers/atm/nicstar.c | 20 +- trunk/drivers/atm/zatm.c | 11 +- trunk/drivers/block/ub.c | 598 ++++++-------- trunk/drivers/char/agp/agp.h | 2 - trunk/drivers/char/agp/ali-agp.c | 4 +- trunk/drivers/char/agp/amd-k7-agp.c | 6 +- trunk/drivers/char/agp/amd64-agp.c | 4 +- trunk/drivers/char/agp/ati-agp.c | 6 +- trunk/drivers/char/agp/backend.c | 6 +- trunk/drivers/char/agp/efficeon-agp.c | 2 +- trunk/drivers/char/agp/generic.c | 36 +- trunk/drivers/char/agp/hp-agp.c | 4 +- trunk/drivers/char/agp/i460-agp.c | 4 +- trunk/drivers/char/agp/intel-agp.c | 21 +- trunk/drivers/char/agp/sgi-agp.c | 12 +- trunk/drivers/char/agp/sworks-agp.c | 8 +- trunk/drivers/char/agp/uninorth-agp.c | 2 +- trunk/drivers/char/drm/drm_pciids.h | 1 - trunk/drivers/char/drm/radeon_irq.c | 5 + trunk/drivers/char/mxser.c | 38 +- trunk/drivers/cpufreq/Kconfig | 24 - trunk/drivers/cpufreq/Makefile | 1 - trunk/drivers/cpufreq/cpufreq.c | 8 +- trunk/drivers/cpufreq/cpufreq_conservative.c | 586 -------------- trunk/drivers/cpufreq/cpufreq_ondemand.c | 180 +++-- trunk/drivers/cpufreq/cpufreq_stats.c | 47 +- trunk/drivers/firmware/pcdp.c | 1 - trunk/drivers/i2c/busses/i2c-ali1563.c | 46 +- trunk/drivers/ide/pci/amd74xx.c | 3 - trunk/drivers/input/keyboard/atkbd.c | 2 +- trunk/drivers/macintosh/via-pmu.c | 6 - trunk/drivers/md/dm-mpath.c | 3 - trunk/drivers/net/hamradio/baycom_epp.c | 126 ++- trunk/drivers/net/iseries_veth.c | 9 +- trunk/drivers/net/pcmcia/3c574_cs.c | 3 - trunk/drivers/net/r8169.c | 31 +- trunk/drivers/net/shaper.c | 86 ++- trunk/drivers/net/tg3.c | 39 +- trunk/drivers/pci/hotplug/cpci_hotplug_core.c | 304 ++++---- trunk/drivers/pci/hotplug/cpci_hotplug_pci.c | 149 ++-- trunk/drivers/pci/hotplug/shpchprm_acpi.c | 4 +- trunk/drivers/pci/pci.ids | 1 - trunk/drivers/pci/quirks.c | 41 +- trunk/drivers/scsi/ata_piix.c | 16 + trunk/drivers/scsi/libata-core.c | 474 ++---------- trunk/drivers/scsi/libata-scsi.c | 2 +- trunk/drivers/scsi/qla2xxx/qla_os.c | 24 +- trunk/drivers/scsi/sata_sil.c | 8 +- trunk/drivers/scsi/scsi_scan.c | 1 - trunk/drivers/serial/sa1100.c | 2 +- trunk/drivers/serial/vr41xx_siu.c | 66 +- trunk/drivers/usb/core/sysfs.c | 22 +- trunk/drivers/usb/host/Kconfig | 11 - trunk/drivers/usb/host/Makefile | 1 - trunk/drivers/usb/host/sl811-hcd.c | 146 ++-- trunk/drivers/usb/host/sl811_cs.c | 442 ----------- trunk/drivers/usb/input/hid-core.c | 18 - trunk/drivers/usb/media/pwc/ChangeLog | 143 ++++ trunk/drivers/usb/net/usbnet.c | 2 +- trunk/drivers/usb/serial/Kconfig | 11 - trunk/drivers/usb/serial/Makefile | 1 - trunk/drivers/usb/serial/cp2101.c | 363 +++------ trunk/drivers/usb/serial/ftdi_sio.c | 121 +-- trunk/drivers/usb/serial/ftdi_sio.h | 2 - trunk/drivers/usb/serial/option.c | 729 ------------------ trunk/drivers/usb/serial/usb-serial.c | 20 +- trunk/drivers/usb/storage/unusual_devs.h | 9 - trunk/fs/binfmt_flat.c | 6 +- trunk/fs/jbd/checkpoint.c | 5 +- trunk/fs/mpage.c | 5 +- trunk/fs/namei.c | 153 ++-- trunk/fs/nfs/dir.c | 49 +- trunk/fs/proc/proc_devtree.c | 105 ++- trunk/fs/udf/udftime.c | 2 +- trunk/include/asm-alpha/agp.h | 10 - trunk/include/asm-arm/arch-ixp2000/io.h | 16 +- trunk/include/asm-arm/arch-pxa/pxa-regs.h | 2 - trunk/include/asm-arm/elf.h | 4 +- trunk/include/asm-arm26/elf.h | 2 +- trunk/include/asm-h8300/kmap_types.h | 6 +- trunk/include/asm-h8300/mman.h | 3 - trunk/include/asm-i386/agp.h | 10 - trunk/include/asm-i386/mach-numaq/mach_ipi.h | 2 +- trunk/include/asm-i386/timer.h | 1 - trunk/include/asm-ia64/agp.h | 10 - trunk/include/asm-ia64/pgtable.h | 8 +- trunk/include/asm-ia64/processor.h | 10 +- trunk/include/asm-ppc/agp.h | 10 - trunk/include/asm-ppc/sigcontext.h | 2 +- trunk/include/asm-ppc64/agp.h | 10 - trunk/include/asm-ppc64/elf.h | 4 +- trunk/include/asm-ppc64/processor.h | 186 ++++- trunk/include/asm-ppc64/prom.h | 13 +- trunk/include/asm-ppc64/thread_info.h | 4 +- trunk/include/asm-s390/user.h | 2 +- trunk/include/asm-sparc/uaccess.h | 5 +- trunk/include/asm-sparc64/agp.h | 10 - trunk/include/asm-sparc64/iommu.h | 2 - trunk/include/asm-sparc64/pbm.h | 8 +- trunk/include/asm-x86_64/agp.h | 10 - trunk/include/linux/acpi.h | 2 - trunk/include/linux/cpufreq.h | 2 +- trunk/include/linux/if_shaper.h | 3 +- trunk/include/linux/libata.h | 58 -- trunk/include/linux/netdevice.h | 2 +- trunk/include/linux/pci_ids.h | 9 - trunk/include/linux/tc_ematch/tc_em_meta.h | 30 - trunk/include/linux/usb.h | 6 +- trunk/kernel/module.c | 6 - trunk/mm/filemap.c | 8 +- trunk/net/core/dev.c | 1 - trunk/net/core/ethtool.c | 2 +- trunk/net/core/net-sysfs.c | 17 - trunk/net/ipv4/esp4.c | 2 +- trunk/net/ipv4/ipvs/Makefile | 2 +- trunk/net/ipv4/ipvs/ip_vs_proto.c | 3 + trunk/net/ipv4/ipvs/ip_vs_proto_icmp.c | 182 +++++ trunk/net/ipv4/netfilter/ip_queue.c | 10 - trunk/net/ipv4/udp.c | 12 +- trunk/net/ipv6/ip6_tunnel.c | 1 - trunk/net/ipv6/ipv6_syms.c | 1 + trunk/net/sched/Kconfig | 2 +- trunk/net/sched/cls_basic.c | 3 - trunk/net/sched/em_meta.c | 295 +------ trunk/net/sched/sch_dsmark.c | 16 +- 229 files changed, 2695 insertions(+), 6056 deletions(-) delete mode 100644 trunk/Documentation/cpu-freq/cpufreq-stats.txt create mode 100644 trunk/arch/arm/mm/copypage-xscale.S delete mode 100644 trunk/arch/arm/mm/copypage-xscale.c create mode 100644 trunk/arch/arm/mm/minicache.c delete mode 100644 trunk/arch/i386/kernel/cpu/cpufreq/sc520_freq.c delete mode 100644 trunk/drivers/cpufreq/cpufreq_conservative.c delete mode 100644 trunk/drivers/usb/host/sl811_cs.c create mode 100644 trunk/drivers/usb/media/pwc/ChangeLog delete mode 100644 trunk/drivers/usb/serial/option.c create mode 100644 trunk/net/ipv4/ipvs/ip_vs_proto_icmp.c diff --git a/[refs] b/[refs] index 7cb8e43f90c8..e03bff9db362 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a7df849c67f0a5248693e432d03f738e84d6826c +refs/heads/master: af6f5e3247a68074e384ef93c0b4bce1b73c9d80 diff --git a/trunk/CREDITS b/trunk/CREDITS index d65ffe5a4d08..9bd099d960f3 100644 --- a/trunk/CREDITS +++ b/trunk/CREDITS @@ -2475,9 +2475,13 @@ S: Potsdam, New York 13676 S: USA N: Dave Neuer -E: dave.neuer@pobox.com +E: dneuer@innovation-charter.com +E: mr_fred_smoothie@yahoo.com D: Helped implement support for Compaq's H31xx series iPAQs D: Other mostly minor tweaks & bugfixes +S: 325 E. Main St., Suite 3 +S: Carnegie, PA 15105 +S: USA N: Michael Neuffer E: mike@i-Connect.Net diff --git a/trunk/Documentation/DocBook/libata.tmpl b/trunk/Documentation/DocBook/libata.tmpl index 6df1dfd18b65..cf2fce7707da 100644 --- a/trunk/Documentation/DocBook/libata.tmpl +++ b/trunk/Documentation/DocBook/libata.tmpl @@ -14,7 +14,7 @@ - 2003-2005 + 2003 Jeff Garzik @@ -44,38 +44,30 @@ - - Introduction + + Thanks - libATA is a library used inside the Linux kernel to support ATA host - controllers and devices. libATA provides an ATA driver API, class - transports for ATA and ATAPI devices, and SCSI<->ATA translation - for ATA devices according to the T10 SAT specification. + The bulk of the ATA knowledge comes thanks to long conversations with + Andre Hedrick (www.linux-ide.org). - This Guide documents the libATA driver API, library functions, library - internals, and a couple sample ATA low-level drivers. + Thanks to Alan Cox for pointing out similarities + between SATA and SCSI, and in general for motivation to hack on + libata. + + + libata's device detection + method, ata_pio_devchk, and in general all the early probing was + based on extensive study of Hale Landis's probe/reset code in his + ATADRVR driver (www.ata-atapi.com). libata Driver API - - struct ata_port_operations is defined for every low-level libata - hardware driver, and it controls how the low-level driver - interfaces with the ATA and SCSI layers. - - - FIS-based drivers will hook into the system with ->qc_prep() and - ->qc_issue() high-level hooks. Hardware which behaves in a manner - similar to PCI IDE hardware may utilize several generic helpers, - defining at a bare minimum the bus I/O addresses of the ATA shadow - register blocks. - struct ata_port_operations - Disable ATA port void (*port_disable) (struct ata_port *); @@ -86,9 +78,6 @@ void (*port_disable) (struct ata_port *); unplug). - - - Post-IDENTIFY device configuration void (*dev_config) (struct ata_port *, struct ata_device *); @@ -99,9 +88,6 @@ void (*dev_config) (struct ata_port *, struct ata_device *); issue of SET FEATURES - XFER MODE, and prior to operation. - - - Set PIO/DMA mode void (*set_piomode) (struct ata_port *, struct ata_device *); void (*set_dmamode) (struct ata_port *, struct ata_device *); @@ -122,9 +108,6 @@ void (*post_set_mode) (struct ata_port *ap); ->set_dma_mode() is only called if DMA is possible. - - - Taskfile read/write void (*tf_load) (struct ata_port *ap, struct ata_taskfile *tf); void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); @@ -137,9 +120,6 @@ void (*tf_read) (struct ata_port *ap, struct ata_taskfile *tf); taskfile register values. - - - ATA command execute void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); @@ -149,37 +129,17 @@ void (*exec_command)(struct ata_port *ap, struct ata_taskfile *tf); ->tf_load(), to be initiated in hardware. - - - Per-cmd ATAPI DMA capabilities filter - -int (*check_atapi_dma) (struct ata_queued_cmd *qc); - - - -Allow low-level driver to filter ATA PACKET commands, returning a status -indicating whether or not it is OK to use DMA for the supplied PACKET -command. - - - - - Read specific ATA shadow registers u8 (*check_status)(struct ata_port *ap); -u8 (*check_altstatus)(struct ata_port *ap); -u8 (*check_err)(struct ata_port *ap); +void (*dev_select)(struct ata_port *ap, unsigned int device); - Reads the Status/AltStatus/Error ATA shadow register from - hardware. On some hardware, reading the Status register has - the side effect of clearing the interrupt condition. + Reads the Status ATA shadow register from hardware. On some + hardware, this has the side effect of clearing the interrupt + condition. - - - Select ATA device on bus void (*dev_select)(struct ata_port *ap, unsigned int device); @@ -187,13 +147,9 @@ void (*dev_select)(struct ata_port *ap, unsigned int device); Issues the low-level hardware command(s) that causes one of N hardware devices to be considered 'selected' (active and - available for use) on the ATA bus. This generally has no -meaning on FIS-based devices. + available for use) on the ATA bus. - - - Reset ATA bus void (*phy_reset) (struct ata_port *ap); @@ -206,31 +162,17 @@ void (*phy_reset) (struct ata_port *ap); functions ata_bus_reset() or sata_phy_reset() for this hook. - - - Control PCI IDE BMDMA engine void (*bmdma_setup) (struct ata_queued_cmd *qc); void (*bmdma_start) (struct ata_queued_cmd *qc); -void (*bmdma_stop) (struct ata_port *ap); -u8 (*bmdma_status) (struct ata_port *ap); -When setting up an IDE BMDMA transaction, these hooks arm -(->bmdma_setup), fire (->bmdma_start), and halt (->bmdma_stop) -the hardware's DMA engine. ->bmdma_status is used to read the standard -PCI IDE DMA Status register. + When setting up an IDE BMDMA transaction, these hooks arm + (->bmdma_setup) and fire (->bmdma_start) the hardware's DMA + engine. - -These hooks are typically either no-ops, or simply not implemented, in -FIS-based drivers. - - - - - High-level taskfile hooks void (*qc_prep) (struct ata_queued_cmd *qc); int (*qc_issue) (struct ata_queued_cmd *qc); @@ -248,26 +190,20 @@ int (*qc_issue) (struct ata_queued_cmd *qc); ->qc_issue is used to make a command active, once the hardware and S/G tables have been prepared. IDE BMDMA drivers use the helper function ata_qc_issue_prot() for taskfile protocol-based - dispatch. More advanced drivers implement their own ->qc_issue. + dispatch. More advanced drivers roll their own ->qc_issue + implementation, using this as the "issue new ATA command to + hardware" hook. - - - Timeout (error) handling void (*eng_timeout) (struct ata_port *ap); -This is a high level error handling function, called from the -error handling thread, when a command times out. Most newer -hardware will implement its own error handling code here. IDE BMDMA -drivers may use the helper function ata_eng_timeout(). + This is a high level error handling function, called from the + error handling thread, when a command times out. - - - Hardware interrupt handling irqreturn_t (*irq_handler)(int, void *, struct pt_regs *); void (*irq_clear) (struct ata_port *); @@ -280,9 +216,6 @@ void (*irq_clear) (struct ata_port *); is quiet. - - - SATA phy read/write u32 (*scr_read) (struct ata_port *ap, unsigned int sc_reg); void (*scr_write) (struct ata_port *ap, unsigned int sc_reg, @@ -294,9 +227,6 @@ void (*scr_write) (struct ata_port *ap, unsigned int sc_reg, if ->phy_reset hook called the sata_phy_reset() helper function. - - - Init and shutdown int (*port_start) (struct ata_port *ap); void (*port_stop) (struct ata_port *ap); @@ -310,17 +240,15 @@ void (*host_stop) (struct ata_host_set *host_set); tasks. + ->host_stop() is called when the rmmod or hot unplug process + begins. The hook must stop all hardware interrupts, DMA + engines, etc. + + ->port_stop() is called after ->host_stop(). It's sole function is to release DMA/memory resources, now that they are no longer actively being used. - - ->host_stop() is called after all ->port_stop() calls -have completed. The hook must finalize hardware shutdown, release DMA -and other resources, etc. - - - @@ -351,24 +279,4 @@ and other resources, etc. !Idrivers/scsi/sata_sil.c - - Thanks - - The bulk of the ATA knowledge comes thanks to long conversations with - Andre Hedrick (www.linux-ide.org), and long hours pondering the ATA - and SCSI specifications. - - - Thanks to Alan Cox for pointing out similarities - between SATA and SCSI, and in general for motivation to hack on - libata. - - - libata's device detection - method, ata_pio_devchk, and in general all the early probing was - based on extensive study of Hale Landis's probe/reset code in his - ATADRVR driver (www.ata-atapi.com). - - - diff --git a/trunk/Documentation/cpu-freq/cpufreq-stats.txt b/trunk/Documentation/cpu-freq/cpufreq-stats.txt deleted file mode 100644 index e2d1e760b4ba..000000000000 --- a/trunk/Documentation/cpu-freq/cpufreq-stats.txt +++ /dev/null @@ -1,128 +0,0 @@ - - CPU frequency and voltage scaling statictics in the Linux(TM) kernel - - - L i n u x c p u f r e q - s t a t s d r i v e r - - - information for users - - - - Venkatesh Pallipadi - -Contents -1. Introduction -2. Statistics Provided (with example) -3. Configuring cpufreq-stats - - -1. Introduction - -cpufreq-stats is a driver that provices CPU frequency statistics for each CPU. -This statistics is provided in /sysfs as a bunch of read_only interfaces. This -interface (when configured) will appear in a seperate directory under cpufreq -in /sysfs (/devices/system/cpu/cpuX/cpufreq/stats/) for each CPU. -Various statistics will form read_only files under this directory. - -This driver is designed to be independent of any particular cpufreq_driver -that may be running on your CPU. So, it will work with any cpufreq_driver. - - -2. Statistics Provided (with example) - -cpufreq stats provides following statistics (explained in detail below). -- time_in_state -- total_trans -- trans_table - -All the statistics will be from the time the stats driver has been inserted -to the time when a read of a particular statistic is done. Obviously, stats -driver will not have any information about the the frequcny transitions before -the stats driver insertion. - --------------------------------------------------------------------------------- -:/sys/devices/system/cpu/cpu0/cpufreq/stats # ls -l -total 0 -drwxr-xr-x 2 root root 0 May 14 16:06 . -drwxr-xr-x 3 root root 0 May 14 15:58 .. --r--r--r-- 1 root root 4096 May 14 16:06 time_in_state --r--r--r-- 1 root root 4096 May 14 16:06 total_trans --r--r--r-- 1 root root 4096 May 14 16:06 trans_table --------------------------------------------------------------------------------- - -- time_in_state -This gives the amount of time spent in each of the frequencies supported by -this CPU. The cat output will have "