====== defconfig-tun.diff ====== Subject: enable TUN in cell_defconfig So we can run systemsim on the blade. Signed-off-by: Arnd Bergmann ====== spidernet-tx-queue-rework.diff ====== Subject: spidernet: rework tx queue handling From: Maxim Shchetynin With this patch TX queue descriptors are not chained per default any more. The pointer to next descriptor is set only when next descriptor is prepaired for transfer. Also the mechanism of checking wether Spider is ready has been changed: it checks not for CARDOWNED flag in status of previous descriptor but for a TXDMAENABLED flag in Spider's register. Signed-off-by: Maxim Shchetynin Signed-off-by: Arnd Bergmann ====== spidernet-rxramfull-fix.diff ====== Subject: spidernet: bug fix for init code From: Jens Osterkamp We want to intitialize addr instead of data register first. Signed-off-by: Jens Osterkamp Signed-off-by: Arnd Bergmann ====== 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 ====== 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 ====== 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 ====== cell-defconfigs-oprofile.diff ====== Subject: powerpc: enable oprofile for cell From: David Erb change defconfig so we build with oprofile by default. Signed-off-by: Arnd Bergmann ====== cell-perfmon.diff ====== Subject: Performance Monitor support for Cell From: David Erb This provides basic performance monitor functions for Cell Signed-off-by: Arnd Bergmann ====== cell-oprofile.diff ====== Subject: oprofile support for Cell From: David Erb This provides oprofile functions for Cell Signed-off-by: Arnd Bergmann ====== cell-oprofile-2.6.16.diff ====== Subject: oprofile support for Cell From: David Erb This provides oprofile functions for Cell (linux-2.6.16) TODO: fix code to allow Cell and other PowerPC to be built together Signed-off-by: Arnd Bergmann ====== cell-perfmon-fix.diff ====== Subject: cell: Oprofile sample counter fix From: Carl Love There is a stop ship issue with Oprofile not collecting enough samples. I have a fix for this. I have done some limited testing, it works fine on my machine. I am being pressured to get you this fix sooner then I would like. I don't even have time to give you a proper patch file. Fortunately, the fix is a single line. Signed-off-by: Arnd Bergmann ====== cell-perfmon-more-fixes.diff ====== Subject: make oprofile on cell take more samples From: David Erb Oprofile does not take enough samples - dozens instead of thousands Signed-off-by: Arnd Bergmann ====== cell-perfmon-cleanup.diff ====== Subject: small cleanup for cell perfmon support From: David Erb The cell perfmon patch was disabling some code when compiling for cell, which was wrong in case of buiding a combined kernel image. This reverts that change. Signed-off-by: Arnd Bergmann ====== cell-oprofile-disable.diff ====== Subject: cell: temporarily disable oprofile events From: David Erb When the firmware changed this week, it caused a fatal error that needs to be investigated. Temporarily disable events completely. Signed-off-by: Arnd Bergmann ====== 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 ====== systemsim-base.diff ====== Subject: powerpc: 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 ====== systemsim-block.diff ====== Subject: powerpc: systemsim block device driver 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 ====== systemsim-bd-fixup.diff ====== 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 ====== systemsim-net.diff ====== Subject: powerpc: systemsim network driver This adds a simple network driver for virtual networking on the IBM Full System Simulator. From: Eric Van Hensbergen Signed-off-by: Arnd Bergmann ====== hvc-console-fss-2.diff ====== Subject: powerpc: Add a hvc backend for systemsim 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 ====== cell-hvc-fss-detection.diff ====== 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 ====== cell-cross-build-2.diff ====== Subject: cell: allow building with broken cross-compiler From: "David J. Erb" The currently recommended cross tool chain for cell needs an extra argument to be passed in order to build the kernel correctly. Signed-off-by: Arnd Bergmann ====== cbesim-defconfig-3.diff ====== 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 ====== systemsim-cell-detect.diff ====== 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 ====== 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 ====== 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 ====== pci-fixup-hack.diff ====== Subject: small hacks for running on BPA hardware, v3 This patch is not meant for inclusion in a generic kernel, but is currently needed to support the available HW. Most of the things done in here are workarounds for deficiencies in the present hardware or firmware that will be solved there in later releases. Signed-off-by: Arnd Bergmann ====== parm-fixup.diff ====== Subject: [FYI] cell: hack around broken firmware command line Some firmware versions on cell don't allow setting the kernel command line via nvram and the firmware user interface to set it is not officially supported. If we encounter the broken command line, we change it to the values that we expect to be correct and warn the user that they should upgrade the firmware. This patch is not for inclusion in an official kernel but only provided for information purposes. Signed-off-by: Arnd Bergmann ====== 64-k-page-cell-3.diff ====== Subject: cell: fake mmu_psize array to enable 64k pages Firmware currently does not have the right properties for enabling 64k pages, so just claim we have them anyway. Obviously, this patch must not get merged, instead the firmware will have to fix their device tree. Similarly, the firmware does not set up HID6 correctly and we need some more changes to have that done for secondary CPUs. Signed-off-by: Arnd Bergmann ====== spufs-smm-hid.diff ====== Subject: [FYI/RFC] cell: setting up SMM_HID It turns out that the page sizes for an SPE are not controlled by HID6 but rather by SMM_HID in the hypervisor register space (priv1) of each SPE. Unfortunately, the firmware does not set these up so far (even the one that does set up HID6), so we have to do it ourselves. This is not the real solution, since we cannot simply hardcode this when the firmware might change. Need some discussion with the firmware developers about this. Cc: Hartmut Penner Signed-off-by: Arnd Bergmann ====== fix-null-pgsz-get-pointer.diff ====== Subject: [ibm-linux-cell] [PATCH] cell: fix null smm_pgsz_get pointer When booting the current cell tree, I get a page fault on 0x0, due to spu_priv1_ops->smm_pgsz_set being NULL. This sets adds the omitted assignment. Booted on cell (DD2). Signed-off-by: Jeremy Kerr Signed-off-by: Arnd Bergmann arch/powerpc/platforms/cell/spu_priv1_mmio.c | 1 + 1 file changed, 1 insertion(+) ====== 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 ====== spufs-oprofile.diff ====== Subject: spufs: add infrastructure to support spu profiling In order for oprofile to find the location in an spu-elf binary where an event counter triggered, we need a way to identify the binary in the first place. Unfortunately, that binary itself can be embedded in a powerpc ELF binary. Since we can assume it is mapped into the effective address space of the running process, have that one write the pointer value into a new spufs file. When a context switch occurs, pass the user value to the profiler so that can look at the mapped file (with some care). Signed-off-by: Arnd Bergmann ====== cell-oprofile-cleanup.diff ====== Subject: cell: clean up oprofile code - don't use SilLyCApS - don't use typedef - simplify rtas handling - make rtas call reentrant - handle rtas call missing better - use pr_debug instead of homegrown macros - make mmcr file creation depend on cpu features instead of incorrect CONFIG_PPC_CELL - remove wrong CPU_FTR_MMCRA from cell features - add a few FIXME for potentially broken code - remove some write-only variables Signed-off-by: Arnd Bergmann ====== cell-ras-2.diff ====== Subject: Cell: add register access based on SPU device_nodes Signed-off-by: Christian Krafft ====== cell-ras-3.diff ====== Subject: Cell: add MIC register access to RAS Signed-off-by: Christian Krafft ====== 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 ====== cell-thermal-support.diff ====== Subject: Cell: add temperature to SPU sysfs entries Signed-off-by: Christian Krafft ====== thermal-defconfig.diff ====== Subject: Cell: add thermal support to default config Signed-off-by: Christian Krafft ====== prom-extern-function.diff ====== Subject: externalize a function and a map of cpumasks, both needed by upcomming cpufreq driver Signed-off-by: Christian Krafft ====== 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 ====== cpufreq-cell.diff ====== Subject: Cell: add cpufreq driver for Cell BE processor Signed-off-by: Christian Krafft ====== cpufreq-defconfig.diff ====== Subject: Cell: add cpufreq driver to the default config file Signed-off-by: Christian Krafft ====== nodeaware-netdev.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 ====== 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 ====== nodeaware-spidernet.diff ====== Subject: use node-aware netdev allocation in spidernet Signed-off-by: Christoph Hellwig ====== spufs-event-addon.diff ====== ====== 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 ====== defconfig-2.6.18-rc1.diff ====== Subject: cell: update defconfig for 2.6.18-rc2 Signed-off-by: Arnd Bergmann ====== defconfig-systemsim-off.diff ====== Subject: cell: temporarily disable systemsim support Signed-off-by: Arnd Bergmann