====== defconfig-tun.diff ====== Subject: enable TUN in cell_defconfig So we can run systemsim on the blade. Signed-off-by: Arnd Bergmann --- diffstat: cell_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ====== defconfig-autofs.diff ====== Subject: cell: enable autofs in defconfig as suggested by William Chung Signed-off-by: Arnd Bergmann --- diffstat: cell_defconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ====== powerpc-pci-scan-2.diff ====== Subject: powerpc: allow PHBs anywhere in the device tree The rtas_pci code currently restricts pci host bridges to locations directly under the device tree root. In order to correctly model a north bridge that has multiple PCI buses, that restriction needs to be relaxed. The new definition is a device node of type "pci" whose parent is of a different type, so we don't treat pci-to-pci bridges as host bridges. It also accepts any device type of "pci", "pcie", "ht" and "pciex" in order to match anything that is currently in use. I have added a new helper "of_find_phb_node" to prom.c so that pci implementations of non-rtas platforms can use this as well. Signed-off-by: Arnd Bergmann --- diffstat: arch/powerpc/kernel/pci_64.c | 4 - arch/powerpc/kernel/prom.c | 66 +++++++++++++++++++++ arch/powerpc/kernel/rtas_pci.c | 20 ------ include/asm-powerpc/prom.h | 1 4 files changed, 70 insertions(+), 21 deletions(-) ====== spidernet-ethtool-S.diff ====== Subject: spidernet: add support for ethtool -S From: Jim Lewis I have added the ethtool -S (show statistics) option to Spidernet. Here is what the output looks like: ethtool -S eth0 NIC statistics: tx_packets: 76231 tx_bytes: 9202230 rx_packets: 64210 rx_bytes: 2165178 tx_errors: 0 tx_dropped: 277 rx_dropped: 0 rx_descriptor_error: 0 tx_timeouts: 0 alloc_rx_skb_error: 0 rx_iommu_map_error: 0 tx_iommu_map_error: 0 rx_desc_unk_state: 0 ethtool -S eth1 NIC statistics: tx_packets: 52909 tx_bytes: 5184426 rx_packets: 52895 rx_bytes: 2962100 tx_errors: 0 tx_dropped: 0 rx_dropped: 0 rx_descriptor_error: 0 tx_timeouts: 0 alloc_rx_skb_error: 0 rx_iommu_map_error: 0 tx_iommu_map_error: 0 rx_desc_unk_state: 0 Not only is this a nice feature to have in a network driver but it should help with debugging as well. --- drivers/net/spider_net.c | 23 ++++++++++++++- drivers/net/spider_net.h | 18 +++++++++++ drivers/net/spider_net_ethtool.c | 59 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 2 deletions(-) --- diffstat: spider_net.c | 22 +++++++++++++++++++++- spider_net.h | 18 +++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) ====== spidernet-burstsize.diff ====== Subject: powerpc/cell spidernet burst alignment patch. From: James K Lewis This patch increases the Burst Address alignment from 64 to 1024 in the Spidernet driver. This improves transmit performance for large packets from about 100Mbps to 300-400Mbps. Signed-off-by: James K Lewis Signed-off-by: Linas Vepstas Signed-off-by: Arnd Bergmann Cc: Utz Bacher Cc: Jens Osterkamp Cc: Arnd Bergmann ---- drivers/net/spider_net.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- diffstat: spider_net.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ====== spidernet-low-watermark.diff ====== Subject: powerpc/cell spidernet low watermark patch. From: Linas Vepstas Implement basic low-watermark support for the transmit queue. The basic idea of a low-watermark interrupt is as follows. The device driver queues up a bunch of packets for the hardware to transmit, and then kicks he hardware to get it started. As the hardware drains the queue of pending, untransmitted packets, the device driver will want to know when the queue is almost empty, so that it can queue some more packets. This is accomplished by setting the DESCR_TXDESFLG flag in one of the packets. When the hardware sees this flag, it will interrupt the device driver. Because this flag is on a fixed packet, rather than at fixed location in the queue, the code below needs to move the flag as more packets are queued up. This implementation attempts to keep te flag at about 3/4's of the way into the queue. This patch boosts driver performance from about 300-400Mbps for 1500 byte packets, to about 710-740Mbps. Signed-off-by: James K Lewis Signed-off-by: Linas Vepstas Signed-off-by: Arnd Bergmann Cc: Utz Bacher Cc: Jens Osterkamp Cc: Arnd Bergmann ---- drivers/net/spider_net.c | 56 ++++++++++++++++++++++++++++++++++++++++++----- drivers/net/spider_net.h | 6 +++-- 2 files changed, 55 insertions(+), 7 deletions(-) --- diffstat: spider_net.c | 55 ++++++++++++++++++++++++++++++++++++--- spider_net.h | 6 ++-- 2 files changed, 55 insertions(+), 6 deletions(-) ====== spidernet-queue-empty-print.diff ====== Subject: powerpc/cell spidernet stop error printing patch. From: Linas Vepstas Turn off mis-interpretation of the queue-empty interrupt status bit as an error. This bit is set as a part of the previous low-watermark patch. Signed-off-by: Linas Vepstas Signed-off-by: James K Lewis Signed-off-by: Arnd Bergmann Cc: Utz Bacher Cc: Jens Osterkamp Cc: Arnd Bergmann ---- drivers/net/spider_net.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) --- diffstat: spider_net.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) ====== spidernet-version.diff ====== Subject: powerpc/cell spidernet ethtool -i version number info. From: James K Lewis This patch adds version information as reported by ethtool -i to the Spidernet driver. Signed-off-by: James K Lewis Signed-off-by: Linas Vepstas Signed-off-by: Arnd Bergmann Cc: Utz Bacher Cc: Jens Osterkamp ---- drivers/net/spider_net.c | 3 +++ drivers/net/spider_net.h | 2 ++ drivers/net/spider_net_ethtool.c | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) --- diffstat: spider_net.c | 1 + spider_net.h | 2 ++ spider_net_ethtool.c | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) ====== spufs-fixme.diff ====== Subject: spufs: add a FIXME SetPageReserved should probably not be called on vmalloc memory. Need to investigate further. Signed-off-by: Arnd Bergmann --- --- diffstat: switch.c | 1 + 1 file changed, 1 insertion(+) ====== spufs-sched-numa-2.diff ====== Subject: [PROTOTYPE] spufs scheduler support for NUMA. From: Mark Nutter This patch adds NUMA support to the the spufs scheduler. The new arch/powerpc/platforms/cell/spufs/sched.c is greatly simplified, in an attempt to reduce complexity while adding support for NUMA scheduler domains. SPUs are allocated starting from the calling thread's node, moving to others as supported by current->cpus_allowed. Preemption is gone as it was buggy, but should be re-enabled in another patch when stable. The new arch/powerpc/platforms/cell/spu_base.c maintains idle lists on a per-node basis, and allows caller to specify which node(s) an SPU should be allocated from, while passing -1 tells spu_alloc() that any node is allowed. Signed-off-by: Arnd Bergmann --- diffstat: arch/powerpc/platforms/cell/spu_base.c | 51 - arch/powerpc/platforms/cell/spufs/sched.c | 438 +++------- include/asm-powerpc/spu.h | 1 3 files changed, 195 insertions(+), 295 deletions(-) ====== spufs-fix-context-switch-during-fault.diff ====== Subject: spufs: fix context switch during page fault From: HyeonSeung Jang For better explanation, I break down the page fault handling into steps: 1) There is a page fault caused by DMA operation initiated by SPU and DMA is suspended. 2) The interrupt handler 'spu_irq_class_1()/__spu_trap_data_map()' is called and it just wakes up the sleeping spe-manager thread. 3) by PPE scheduler, the corresponding bottom half, spu_irq_class_1_bottom() is called in process context and DMA is restarted. There can be a quite large time gap between 2) and 3) and I found the following problem: Between 2) and 3) If the context becomes unbound, 3) is not executed because when the spe-manager thread is awaken, the context is already saved. (This situation can happen, for example, when a high priority spe thread newly started in that time gap) But the actual problem is that the corresponding SPU context does not work even if it is bound again to a SPU. Besides I can see the following warning in mambo simulator when the context becomes unbound(in save_mfc_cmd()), i.e. when unbind() is called for the context after step 2) before 3) : 'WARNING: 61392752237: SPE2: MFC_CMD_QUEUE channel count of 15 is inconsistent with number of available DMA queue entries of 16' After I go through available documents, I found that the problem is because the suspended DMA is not restarted when it is bound again. Signed-off-by: Arnd Bergmann --- diffstat: switch.c | 9 +++++++++ 1 file changed, 9 insertions(+) ====== spufs-dma-events-2.diff ====== Subject: implement error event delivery to user space This tries to fix spufs so we have an interface closer to what is specified in the man page for events returned in the third argument of spu_run. Fortunately, libspe has never been using the returned contents of that register, as they were the same as the return code of spu_run (duh!). Signed-off-by: Arnd Bergmann --- diffstat: run.c | 28 +++++++++++++++------------- syscalls.c | 7 +++++-- 2 files changed, 20 insertions(+), 15 deletions(-) ====== systemsim-2.6.18.diff ====== commit 4ec3ba5c24b1d7de452d410f0c339bacb99a7858 Author: Eric Van Hensbergen Date: Wed Sep 20 10:21:45 2006 -0400 Subject: [FYI] cell: systemsim defconfig This is an update to the default configuration from an earlier binary release on http://bsc.es/. Since the other systemsim patches are still under discussion, this is provided on a purely informational basis. Signed-off-by: Arnd Bergmann Signed-off-by: Eric Van Hensbergen commit bffe5c838cbc132bba12a98311ae56103c369126 Author: Eric Van Hensbergen Date: Wed Sep 20 10:20:17 2006 -0400 Subject: Don't use hvc_fss if hvc_rtas is available The latest version of Systemsim does come with HVC_RTAS support enabled. Use that one instead, since it brings us one step closer to using no special device drivers for systemsim. Signed-off-by: Arnd Bergmann Signed-off-by: Eric Van Hensbergen commit d4fad433bb1d0386cffdf037e101355a9140dd6e Author: Eric Van Hensbergen Date: Wed Sep 20 10:19:18 2006 -0400 Subject: systemsim: don't load systemsim_bd when running on real HW If we don't do this, we crash during bootup Signed-off-by: Arnd Bergmann Signed-off-by: Eric Van Hensbergen commit d7f9a20a51d510fbe8c0438345b695e1b62422c5 Author: Eric Van Hensbergen Date: Wed Sep 20 10:18:30 2006 -0400 Subject: cell: correctly detect systemsim host Systemsim uses a different compatible property in the device tree. Signed-off-by: Christian Krafft Signed-off-by: Arnd Bergmann Signed-off-by: Eric Van Hensbergen commit a310086776d9d3c163a6a46f3c8cfa5da07e4796 Merge: e478bec... fce8c25... Author: Eric Van Hensbergen Date: Wed Sep 20 08:50:08 2006 -0400 Merge ../systemsim-2.6.18-rc4/ into systemsim-2.6.18 commit fce8c2554d430f7ba998884cabf3929c28e26f23 Merge: 9f73763... 64b8767... Author: Eric Van Hensbergen Date: Wed Aug 9 20:24:01 2006 -0500 Merge to tip commit 64b8767f39d329d290a286996401bc754bbd7ee2 Merge: 82d6897... c7c2d69... Author: Eric Van Hensbergen Date: Thu Jul 27 12:36:06 2006 -0500 Merge systemsim patch to tip Conflicts: arch/powerpc/platforms/pseries/setup.c include/asm-powerpc/udbg.h commit c7c2d69e9ec0af0f1b62628a9859e56e729f219b Author: Eric Van Hensbergen Date: Tue Jul 25 22:17:21 2006 -0500 Remove devfs code from Systemsim Block driver Signed-off-by: Eric Van Hensbergen commit 2aefbc181b39847365a5c9cb1cd1793b097f3694 Merge: 427abfa... 1310a6e... Author: Eric Van Hensbergen Date: Tue Jul 25 21:31:25 2006 -0500 Merge systemsim patch to 2.6.17 Conflicts: arch/powerpc/kernel/Makefile arch/powerpc/kernel/setup_64.c drivers/char/Kconfig drivers/char/Makefile drivers/char/hvc_console.c drivers/char/hvc_rtas.c include/asm-powerpc/machdep.h Signed-off-by: Eric Van Hensbergen commit 1310a6e478b04589dd256100a38c8bcc1e1084d0 Author: Eric Van Hensbergen Date: Mon Mar 20 13:02:56 2006 -0600 Updated systemsim default config to include new options. Signed-off-by: Wesley Reiley Signed-off-by: Eric Van Hensbergen commit b5262afff1203891e355726e597493f68f7d00cd Merge: 7705a87... 7f0292c... Author: Eric Van Hensbergen Date: Mon Mar 20 17:55:25 2006 +0000 Merge systemsim patches to v2.6.16 commit 7f0292c5c9dd99d4ed5d2469d4488e993dfb8317 Merge: 5357448... 83ef584... Author: Eric Van Hensbergen Date: Mon Mar 13 17:21:43 2006 +0000 merge to v2.6.16-rc6 commit 83ef5848bcf6bf4a4e7a820a7b4f7375a71ca769 Merge: d040699... 4b1b109... Author: Eric Van Hensbergen Date: Mon Feb 27 16:56:40 2006 -0600 Merge ssh://master.kernel.org/pub/scm/linux/kernel/git/ericvh/systemsim commit d04069941633adbf6f525ecb53d7bc9a12b30d85 Author: Eric Van Hensbergen Date: Mon Feb 27 16:55:57 2006 -0600 systemsim: fix merge problem I screwed up the last merge and for some reason can't revert it. This replaces the screwed up hvc_console.c with the last version from the systemsim branch prior to the merge. Signed-off-by: Eric Van Hensbergen commit 4b1b1097c0ff8683deda1d524ac7af0e3408776f Author: Eric Van Hensbergen Date: Mon Feb 27 22:01:37 2006 +0000 systemsim: fix broken merge This will probably bite me later, but apparently I massively screwed up the previous merge. This fix puts the old hvc_console.c in place and lets you build systemsim again. Signed-off-by: Eric Van Hensbergen commit b3dc101a8a904396a440fa966c681c22cbb5f129 Merge: b4e4add... de5f503... Author: Eric Van Hensbergen Date: Mon Feb 27 20:50:57 2006 +0000 Merge branch 'master' Conflicts: drivers/char/hvc_console.c commit b4e4add5d57f130a422e68787626f96f311658a0 Author: Eric Van Hensbergen Date: Fri Feb 24 16:47:36 2006 -0600 [PATCH] systemsim: add early debug option when using systemsim console This patch adds udbg hooks for early-printk debug when using the IBM Full System Simulator console support. Signed-off-by: Eric Van Hensbergen commit 6f27df783005ca87d1a27370837070b98798fbeb Author: Eric Van Hensbergen Date: Fri Feb 24 16:46:07 2006 -0600 [PATCH] systemsim: add boot hacks for non-standard platforms When booting on some "experimental platforms" under the IBM Full System Simulator - a certain set of boot hacks are required which differentiate the hardware from standard pSeries systems. This patch adds a config flag which allows you to use these hacks. Signed-off-by: Eric Van Hensbergen commit aacd155ef15d97f7ccc2c43922293abef3d7381f Merge: 72e13e7... bd71c2b... Author: Eric Van Hensbergen Date: Sun Feb 19 19:10:39 2006 +0000 Merge branch 'master' commit 72e13e73b5998b853a9bd20e8c425486818ed09a Author: Eric Van Hensbergen Date: Thu Feb 2 09:28:47 2006 -0600 [PATCH] systemsim: clean up default configuration Signed-off-by: Eric Van Hensbergen commit ea40711c3a573b917cade94c1bdca659e4f3f905 Author: Eric Van Hensbergen Date: Thu Feb 2 09:27:48 2006 -0600 [PATCH] systemsim: clean up systemsim block driver Clean-up the systemsim block driver and integrate some of the suggestions from LKML. Signed-off-by: Eric Van Hensbergen commit 79e30c5718a29c6de20e45f00bc1b458b359c29c Author: Eric Van Hensbergen Date: Thu Feb 2 09:26:01 2006 -0600 systemsim: clean-up systemsim network patch Incorporate some of the LKML feedback, clean-up naming conventions and fix a bug. Signed-off-by: Eric Van Hensbergen commit 5468f5b2fb461b7a2af879ad314194c54c70847e Author: Eric Van Hensbergen Date: Thu Feb 2 09:13:32 2006 -0600 [PATCH] powerpc: rtas console Current Cell hardware is using the console through a set of rtas calls. This driver is needed to get console output on those boards. Signed-off-by: Arnd Bergmann commit d07920310527c12c13bd85f1dbc679d85006448d Author: Eric Van Hensbergen Date: Thu Feb 2 09:13:20 2006 -0600 [PATCH] systemsim: hvc based console The IBM full system simulator for PowerPC has its own set of calls used for console interaction, when not simulating actual serial port hardware. This is needed to run the simulator for Cell and can also be used for the PowerPC 970 simulator. It also adds the generic asm/systemsim.h header file that is also used by other device drivers for the system simulator, i.e. the block and network drivers. Signed-off-by: "Ryan S. Arnold" Signed-off-by: Arnd Bergmann commit b03419a54e848087269b885b6668a1f2d2ade61e Author: Eric Van Hensbergen Date: Thu Feb 2 09:13:07 2006 -0600 [PATCH] powerpc: console rework These are some updates from both Ryan and Arnd for the hvc_console driver: The main point is to enable the inclusion of a console driver for rtas and for systemsim, which are needed for the cell platform. Also shuffle around some data-type declarations and moves some functions out of include/asm-ppc64/hvconsole.h and into a new drivers/char/hvc_console.h file. From: "Ryan S. Arnold" Signed-off-by: "Ryan S. Arnold" Signed-off-by: Arnd Bergmann commit 679de1715f7718a25eb813b48855983ec2fac261 Author: Eric Van Hensbergen Date: Thu Feb 2 09:12:48 2006 -0600 [PATCH] systemsim: default configuration This default configuration is supposed to work with both the powerpc970 as well as the cell systemsim. From: Eric Van Hensbergen Signed-off-by: Arnd Bergmann commit 498f943bb2fd8b1766f5fce1ed24a54131726c5a Author: Eric Van Hensbergen Date: Thu Feb 2 09:12:32 2006 -0600 [PATCH] systemsim: network driver support This adds a simple network driver for virtual networking on the IBM Full System Simulator. From: Eric Van Hensbergen Signed-off-by: Arnd Bergmann commit 65b2e6d3cff3e75c9c7cd1ce624dda68dbbb0fba Author: Eric Van Hensbergen Date: Thu Feb 2 09:11:51 2006 -0600 [PATCH] systemsim: bogus idle support The original cpu_idle hack from the systemsim git tree is a bit strange, because it unconditionally changes the native_idle function. This one instead introduces a new idle implementation that is only used on systemsim. Signed-off-by: Arnd Bergmann commit ea136813c9ac655a69693af5aa0473f2ea7e6401 Author: Eric Van Hensbergen Date: Thu Feb 2 09:11:37 2006 -0600 [PATCH] systemsim: block driver support The block device driver for systemsim is currently required for running on the Cell systemsim port, which does not simulate any other block devices. From: Eric Van Hensbergen Signed-off-by: Arnd Bergmann commit 71a1e68425691411ccea71025f6dae8355607ea9 Author: Eric Van Hensbergen Date: Thu Feb 2 09:11:23 2006 -0600 [PATCH] systemsim: basic systemsim support Add some support and doc files for the IBM Full System Simulator and a configuration option that acts as a control for the patches based on this one. No code is changed in this patch, but it is required for the systemsim network, block, hvc_console and cpu_idle patches that are based on the infrastructure in here. From: Eric Van Hensbergen Signed-off-by: Arnd Bergmann --- diffstat: Documentation/systemsim/maple.tcl | 1145 +++++++++++ Documentation/systemsim/systemsim.txt | 92 arch/powerpc/Kconfig | 28 arch/powerpc/configs/cbesim_defconfig | 868 ++++++++ arch/powerpc/configs/systemsim_defconfig | 1127 ++++++++++ arch/powerpc/kernel/Makefile | 1 arch/powerpc/kernel/idle_systemsim.c | 35 arch/powerpc/kernel/setup_64.c | 20 arch/powerpc/kernel/udbg.c | 3 arch/powerpc/platforms/cell/setup.c | 3 arch/powerpc/platforms/pseries/setup.c | 7 drivers/block/Kconfig | 7 drivers/block/Makefile | 2 drivers/block/systemsim_bd.c | 319 +++ drivers/char/Kconfig | 32 drivers/char/Makefile | 1 drivers/char/hvc_fss.c | 134 + drivers/net/Kconfig | 8 drivers/net/Makefile | 1 drivers/net/systemsim_net.c | 393 +++ include/asm-powerpc/machdep.h | 1 include/asm-powerpc/systemsim.h | 132 + include/asm-powerpc/udbg.h | 1 23 files changed, 4341 insertions(+), 19 deletions(-) ====== systemsim-cell_defconfig.diff ====== Subject: [FYI] cell: enable systemsim in cell_defconfig This is a patch against the cell_defconfig to enable systemsim. Signed-off-by: Jens Osterkamp --- --- diffstat: cell_defconfig | 7 +++++++ 1 file changed, 7 insertions(+) ====== dd2-performance.diff ====== Subject: [FYI] Performance hacks for broken Cell CPU revisions The currently used CPUs of the Cell BE DD2.0 release have a few glitches that may result in bad performance, these workarounds are suggested in the Errata: - When a decrementer or external exception occurs, wake up the other SMT thread from pause(0) state. - When a system reset exception occurs (i.e. the CPU wakes up from pause(0) state), do a quick check if we were meant to wake up, otherwise go back to pause(0) state. - change the default floating point exception mode to zero. It is rather unlikely that we find a way to create a patch that won't be harmful to any other platform, so this is definitely not meant for inclusion in the mainline kernel, but only provided for those people that build a special kernel for Cell BE DD2.0. From: Jens Osterkamp Signed-off-by: Arnd Bergmann --- --- diffstat: configs/cell_defconfig | 1 kernel/head_64.S | 44 +++++++++++++++++++++++++++++ platforms/cell/Kconfig | 10 ++++++ 3 files changed, 55 insertions(+) ====== dd2-hack-runlatch-hack.diff ====== Subject: cell: fix dd2-performance.diff Change our DD2 hack for the new runlatch handling. Signed-off-by: Arnd Bergmann --- --- diffstat: head_64.S | 1 - 1 file changed, 1 deletion(-) ====== ib-max_rbc_rrs.diff ====== Subject: backport an infiniband fix From: Erez Cohen Add control of PCIX max read byte count and PCI Express max read request size parameters. This is due to the fact that some chipsets may not work or may not work optimally with the default parametrs. logic as follows: If the user sets a valid value to a paramter this value wins. Otherwise the value read from the device is compared to the default value defined by the spec. If value read does not equal default it is assumed the BIOS configured it and the BIOS value is retained. Signed-off-by: Arnd Bergmann --- diffstat: mthca_main.c | 67 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 2 deletions(-) ====== cbe-regs-update.diff ====== Subject: cell: update cell be register definitions there are a few definitions that are required by subsequent patches, so add them here. This patch probably needs a little cosmetic cleanup. Signed-off-by: Arnd Bergmann --- diffstat: cbe_regs.c | 25 +++ cbe_regs.h | 259 ++++++++++++++++++++++++++++++++++------ pervasive.c | 6 3 files changed, 250 insertions(+), 40 deletions(-) ====== cell-ras-2.diff ====== Subject: Cell: add register access based on SPU device_nodes Signed-off-by: Christian Krafft Signed-off-by: Arnd Bergmann --- diffstat: cbe_regs.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) ====== cell-ras-3.diff ====== Subject: Cell: add MIC register access to RAS Signed-off-by: Christian Krafft --- diffstat: cbe_regs.c | 5 ++++- cbe_regs.h | 13 +++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) ====== spu-add-attributes.diff ====== Subject: Cell: add additional properties to spu struct In order to add sysfs attributes to all spu's, there is a need for a list of all available spu's. Adding the device_node makes also sense, as it is needed for proper register access. Signed-off-by: Christian Krafft --- diffstat: arch/powerpc/platforms/cell/spu_base.c | 33 +++++++++++++ include/asm-powerpc/spu.h | 3 + 2 files changed, 36 insertions(+) ====== cell-thermal-support.diff ====== Subject: Cell: add temperature to SPU sysfs entries Signed-off-by: Christian Krafft --- diffstat: arch/powerpc/configs/cell_defconfig | 1 arch/powerpc/platforms/cell/Kconfig | 5 arch/powerpc/platforms/cell/Makefile | 2 arch/powerpc/platforms/cell/cbe_regs.c | 1 arch/powerpc/platforms/cell/thermal.c | 73 +++++++++++++ include/asm-powerpc/spu.h | 2 6 files changed, 84 insertions(+) ====== thermal-defconfig.diff ====== Subject: Cell: add thermal support to default config Signed-off-by: Christian Krafft --- diffstat: cell_defconfig | 3 +++ 1 file changed, 3 insertions(+) ====== prom-extern-function.diff ====== Subject: externalize a function and a map of cpumasks, both needed by upcomming cpufreq driver Signed-off-by: Christian Krafft --- diffstat: arch/powerpc/kernel/prom.c | 2 +- arch/powerpc/kernel/smp.c | 1 + include/asm-powerpc/prom.h | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) ====== cell-thermal-ppe.diff ====== Subject: Cell: add support for the two additional temperature sensors The temperature can be read from /sys/devices/system/cpu/cpuX/temperatureX. The file temperature0 is belonging to the sensor near the linear thermal diode on the PPE, temperature1 is the other sensor. Signed-off-by: Christian Krafft --- diffstat: arch/powerpc/kernel/sysfs.c | 31 ++++++ arch/powerpc/platforms/cell/thermal.c | 64 +++++++++++++- include/linux/cpu.h | 4 3 files changed, 96 insertions(+), 3 deletions(-) ====== cpufreq-cell.diff ====== Subject: Cell: add cpufreq driver for Cell BE processor Signed-off-by: Christian Krafft --- diffstat: configs/cell_defconfig | 4 platforms/cell/Kconfig | 9 platforms/cell/Makefile | 1 platforms/cell/cbe_cpufreq.c | 263 +++++++++++++++++++++++ 4 files changed, 274 insertions(+), 3 deletions(-) ====== cpufreq-defconfig.diff ====== Subject: Cell: add cpufreq driver to the default config file Signed-off-by: Christian Krafft --- diffstat: cell_defconfig | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) ====== cpufreq-fix-cell-transition-time.diff ====== Subject: cell: update latency time of Cell BE processor to the correct value The original method of measuring the latency time for frequency switches was inaccurate. This fixes the method, and the measured latency time reported by the backend cpufreq driver. Signed-off-by: Christian Krafft --- diffstat: cbe_cpufreq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) ====== cbe_cpufreq-sparse.diff ====== Subject: cbe_cpufreq: fix sparse warnings Signed-off-by: Arnd Bergmann --- diffstat: cbe_cpufreq.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) ====== thermal-rename-module.diff ====== Subject: cell: rename thermal module to cbe_thermal Signed-off-by: Christian Krafft --- diffstat: arch/powerpc/platforms/cell/thermal.c | 131 ---------- linux-2.6/arch/powerpc/platforms/cell/Makefile | 2 linux-2.6/arch/powerpc/platforms/cell/cbe_thermal.c | 131 ++++++++++ 3 files changed, 132 insertions(+), 132 deletions(-) ====== cbe-ras-access-spe-register.diff ====== Subject: cell: introduce unions for some special registers found in pervasive area The pervasive area contains some registers, which contain a byte for each spe. Another register contains upper half for ppe and lower half for spe. This patch adds unions, to access either the spe or ppe value easily. Signed-off-by: Christian Krafft --- diffstat: cbe_regs.h | 28 +++++++++++++++----- cbe_thermal.c | 51 ++++++++++++++++++++++++++++++-------- 2 files changed, 62 insertions(+), 17 deletions(-) ====== thermal-init-throttling.diff ====== Subject: cell: add initial throttling setup to thermal module init. This patch adds a function to cbe_thermal, to initialize the throttling registers with some default temperature values, to protect the cpu in overheating scenarios. This code is likely to change, as soon as dynamic throttling comes into play. Signed-off-by: Christian Krafft --- diffstat: cbe_thermal.c | 61 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) ====== cbe_thermal-sparse.diff ====== Subject: cbe_thermal: fix sparse warnings Some warnings crept in. Signed-off-by: Arnd Bergmann --- diffstat: cbe_thermal.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) ====== nodeaware-netdev-2.diff ====== Subject: Node-aware netdevice allocation Adds alloca_netdev_node & friends to allocate a struct netdevice on a given NUMA node. Note: needs benchmarking to prove a gain. Signed-off-by: Christoph Hellwig --- diffstat: include/linux/etherdevice.h | 1 + include/linux/netdevice.h | 3 +++ net/core/dev.c | 14 +++++++++++--- net/ethernet/eth.c | 24 ++++++++++++++++++++++++ 4 files changed, 39 insertions(+), 3 deletions(-) ====== nodeaware-skb_alloc.diff ====== Subject: node-aware skb allocation Note: needs benchmarking to prove a gain. Note2: Needs to API rework before upstream submission Signed-off-by: Christoph Hellwig --- diffstat: include/linux/skbuff.h | 15 ++++++++++++--- net/core/skbuff.c | 9 ++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) ====== nodeaware-spidernet.diff ====== Subject: use node-aware netdev allocation in spidernet Signed-off-by: Christoph Hellwig --- diffstat: spider_net.c | 10 ++++++---- spider_net.h | 1 + 2 files changed, 7 insertions(+), 4 deletions(-) ====== spufs-event-addon.diff ====== --- diffstat: arch/powerpc/platforms/cell/spu_base.c | 6 +- arch/powerpc/platforms/cell/spufs/inode.c | 9 ++- arch/powerpc/platforms/cell/spufs/run.c | 24 +++++++++- arch/powerpc/platforms/cell/spufs/sched.c | 4 - arch/powerpc/platforms/cell/spufs/spufs.h | 4 + include/asm-powerpc/spu.h | 14 +++++ 6 files changed, 50 insertions(+), 11 deletions(-) ====== spufs-gang-2.diff ====== Subject: spufs: Add infrastructure needed for gang scheduling Add the concept of a gang to spufs as a new type of object. So far, this has no impact whatsover on scheduling, but makes it possible to add that later. A new type of object in spufs is now a spu_gang. It is created with the spu_create system call with the flags argument set to SPU_CREATE_GANG (0x80000000). Inside of a spu_gang, it is then possible to create spu_context objects, which until now was only possible at the root of spufs. There is a new member in struct spu_context pointing to the spu_gang it belongs to, if any. The spu_gang maintains a list of spu_context structures that are its children. This information can then be used in the scheduler in the future. There is still a bug that needs to be resolved in this basic infrastructure regarding the order in which objects are removed. When the spu_gang file descriptor is closed before the spu_context descriptors, we leak the dentry and inode for the gang. Any ideas how to cleanly solve this are appreciated. Signed-off-by: Arnd Bergmann --- diffstat: arch/powerpc/platforms/cell/spufs/Makefile | 2 arch/powerpc/platforms/cell/spufs/context.c | 6 arch/powerpc/platforms/cell/spufs/gang.c | 81 +++ arch/powerpc/platforms/cell/spufs/inode.c | 227 ++++++++-- arch/powerpc/platforms/cell/spufs/spufs.h | 24 - arch/powerpc/platforms/cell/spufs/syscalls.c | 2 include/asm-powerpc/spu.h | 5 7 files changed, 304 insertions(+), 43 deletions(-) ====== spufs-alloc_node-fix.diff ====== Subject: fix oops in spu_alloc_node From: Patrick Mansfield Fix the following oops in spu_alloc_node. I didn't see other reports of this or a fix, and don't know why it is not hit more often, I seemed to only hit it after running a simple spu executable multiple times in a row without much delay (scripted or from command line). Unable to handle kernel paging request for data at address 0x00004060 Faulting instruction address: 0xc0000000000345b4 cpu 0x0: Vector: 300 (Data Access) at [c000000001ffb750] pc: c0000000000345b4: .spu_alloc_node+0x90/0x128 lr: c00000000003459c: .spu_alloc_node+0x78/0x128 sp: c000000001ffb9d0 msr: 9000000000009032 dar: 4060 dsisr: 42000000 current = 0xc00000001ff7a810 paca = 0xc00000000033bf80 pid = 1860, comm = ppu_main enter ? for help 0:mon> t [c000000001ffba60] d00000000002d424 .spu_activate+0x3a4/0x3e4 [spufs] [c000000001ffbb40] d00000000002c648 .spu_acquire_runnable+0x90/0xe0 [spufs] [c000000001ffbbd0] d00000000002e738 .spufs_run_spu+0x9c/0x4e8 [spufs] [c000000001ffbcc0] d00000000002cb34 .do_spu_run+0xac/0x168 [spufs] [c000000001ffbd80] c00000000003556c .sys_spu_run+0xb0/0x140 [c000000001ffbe30] c00000000000861c syscall_exit+0x0/0x40 Signed-off-by: Patrick Mansfield --- diffstat: spu_base.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ====== spufs-new-devnode.diff ====== Subject: spufs: support new OF device tree format The properties we used traditionally in the device tree are somewhat nonstandard, this adds support for a more conventional format using 'interrupts' and 'reg' properties. The interrupts are specified in three cells (class 0, 1 and 2) and registered at the interrupt-parent. The reg property contains either three or four register areas in the order 'local-store', 'problem', 'priv2', and 'priv1', so the priv1 one can be left out in case of hypervisor driven systems that access these through hcalls. Signed-off-by: Arnd Bergmann --- diffstat: spu_base.c | 99 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 94 insertions(+), 5 deletions(-) ====== spufs-sparse.diff ====== Subject: spufs: sparse fixes This does a few annotations required for checking with sparse. Signed-off-by: Arnd Bergmann --- diffstat: spu_base.c | 6 +++--- spufs/hw_ops.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) ====== spu-no-spc-devnode.diff ====== Subject: spufs: remove support for ancient firmware Any firmware that still uses the 'spc' nodes already stopped running for other reasons, so lets get rid of this. Signed-off-by: Arnd Bergmann --- diffstat: spu_base.c | 12 ------------ 1 file changed, 12 deletions(-) ====== spufs-cntl-readwrite.diff ====== Subject: spufs: add support for read/write on cntl Writing to cntl can be used to stop execution on the spu and to restart it, reading from cntl gives the contents of the current status register. The access is always in ascii, as for most other files. This was always meant to be there, but we had a little problem with writing to runctl so it was left out so far. Signed-off-by: Arnd Bergmann --- diffstat: file.c | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) ====== cell-interrupt-2.diff ====== Subject: cell: interrupt handling rework From: Benjamin Herrenschmidt This changes (again) the numbering of iic interrupts so that: - NodeID is back in the interrupt number (only one IRQ host, or domain, is created). This allows interrupts from sources on another node to be routed non-locally and things will still work (that wouldn't work with my previous code). This will allow possibly one day to fix maxcpus=1 or 2 and still get interrupts from devices on BE 1. (A bit more fixing is needed for that) - Added handling of the IO exceptions interrupts (badly named, but I re-used the name used by STI in their initial drop, could be renamed to the "internal interrupts" maybe ?). Those are the interrupts exposed by IIC_ISR and IIC_IRR, such as the IOC translation exception, livelock, performance monitor, etc... Those get their special numbers in the IRQ number space and are internally implemented as a cascade on unit 0xe, class 1 of each node. This is untested at this point, it would be good to adapt & test the oprofile code against that. We still need to cleanup assumptions here or there about HW CPU == linux CPU number, or node <-> CPU mapping, etc... I suspect we really need to put together some global layer to handle these generically, at least for the powerpc architecture, but I didn't have time to work on that. For now, the hacks in the iic code should work for us. Signed-off-by: Arnd Bergmann --- diffstat: interrupt.c | 221 ++++++++++++++++++++++++++------------- interrupt.h | 97 ++++++++++------- spider-pic.c | 9 - spu_base.c | 19 +-- 4 files changed, 227 insertions(+), 119 deletions(-)