summaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/processor.c
AgeCommit message (Collapse)AuthorFilesLines
2018-08-21parisc: Add hardware description to stack tracesHelge Deller1-0/+2
Signed-off-by: Helge Deller <deller@gmx.de>
2017-11-17parisc: Add CPU topology supportHelge Deller1-0/+13
Add topology support, including multi-core scheduler support on PA8800/PA8900 CPUs and enhanced output in /proc/cpuinfo, e.g. lscpu now reports on a single-socket, dual-core machine: Architecture: parisc64 CPU(s): 2 On-line CPU(s) list: 0,1 Thread(s) per core: 1 Core(s) per socket: 2 Socket(s): 1 CPU family: PA-RISC 2.0 Model name: PA8800 (Mako) Signed-off-by: Helge Deller <deller@gmx.de>
2017-09-22parisc: Move init_per_cpu() into init sectionHelge Deller1-1/+1
Signed-off-by: Helge Deller <deller@gmx.de>
2017-08-22parisc/core: Fix section mismatchesHelge Deller1-3/+3
Signed-off-by: Helge Deller <deller@gmx.de>
2017-08-22parisc/random: Add machine specific randomnessHelge Deller1-3/+21
Add some machine-specific information like values of cr16 cycle counter, machine-specific software ID and machine model to the random generator. Signed-off-by: Helge Deller <deller@gmx.de>
2017-05-10parisc: Enhance detection of synchronous cr16 clocksourcesHelge Deller1-1/+4
The cr16 clocks of the physical PARISC CPUs are usually nonsynchronous. Nevertheless, it seems that each CPU socket (which holds two cores) of PA8800 and PA8900 CPUs (e.g. in a C8000 workstation) is fed by the same clock source, which makes the cr16 clocks of each CPU socket syncronous. Let's try to detect such situations and mark the cr16 clocksource stable on single-socket and single-core machines. Signed-off-by: Helge Deller <deller@gmx.de>
2016-12-20parisc: Optimize timer interrupt functionHelge Deller1-5/+0
Restructure the timer interrupt function to better cope with missed timer irqs. Optimize the calculation when the next interrupt should happen and skip irqs if they would happen too shortly after exit of the irq function. The update_process_times() call is done anyway at every timer irq, so we can safely drop the prof_counter and prof_multiplier variables from the per_cpu structure. Signed-off-by: Helge Deller <deller@gmx.de>
2016-12-12parisc: Enhance CPU detection code on PAT machinesHelge Deller1-11/+13
This patch fixes the debug code which runs during the inventory scan on machines with PAT firmware. Additionally print out the relationship between the detected logical CPU number and it's physical location and physical cpu number. This leads to information which can be used to feed numa-structures in the kernel in later patches. An example output is from my single-CPU (2 cores) C8000 machine is: Logical CPU #0 is physical cpu #0 at 0xffff0000ffff15, hpa 0xfffffffffe780000 Logical CPU #1 is physical cpu #1 at 0xffff0000ffff15, hpa 0xfffffffffe781000 Signed-off-by: Helge Deller <deller@gmx.de>
2016-08-20parisc: Fix automatic selection of cr16 clocksourceHelge Deller1-8/+0
Commit 54b66800907 (parisc: Add native high-resolution sched_clock() implementation) added support to use the CPU-internal cr16 counters as reliable clocksource with the help of HAVE_UNSTABLE_SCHED_CLOCK. Sadly the commit missed to remove the hack which prevented cr16 to become the default clocksource even on SMP systems. Signed-off-by: Helge Deller <deller@gmx.de> Cc: stable@vger.kernel.org # 4.7+
2016-06-05parisc: Fix printk time during bootHelge Deller1-2/+3
Avoid showing invalid printk time stamps during boot. Signed-off-by: Helge Deller <deller@gmx.de> Reviewed-by: Aaro Koskinen <aaro.koskinen@iki.fi>
2016-01-12parisc: Reduce overhead of parisc_requires_coherency()Helge Deller1-1/+9
Signed-off-by: Helge Deller <deller@gmx.de>
2013-07-14parisc: delete __cpuinit usage from all usersPaul Gortmaker1-3/+3
The __cpuinit type of throwaway sections might have made sense some time ago when RAM was more constrained, but now the savings do not offset the cost and complications. For example, the fix in commit 5e427ec2d0 ("x86: Fix bit corruption at CPU resume time") is a good example of the nasty type of bugs that can be created with improper use of the various __init prefixes. After a discussion on LKML[1] it was decided that cpuinit should go the way of devinit and be phased out. Once all the users are gone, we can then finally remove the macros themselves from linux/init.h. This removes all the parisc uses of the __cpuinit macros. [1] https://lkml.org/lkml/2013/5/20/589 Acked-by: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: Helge Deller <deller@gmx.de> Cc: linux-parisc@vger.kernel.org Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2013-07-09parisc: more capabilities info in /proc/cpuinfoHelge Deller1-3/+16
Signed-off-by: Helge Deller <deller@gmx.de> Cc: <stable@vger.kernel.org> # 3.10
2009-07-03parisc: processor.c, fix bloated stack frameKyle McMartin1-5/+11
The pa_pdc_cell struct can be kmalloc'd, so do that instead. Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
2009-07-03parisc: remove CVS keywordsAlexander Beregalov1-2/+1
Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Acked-by: Matthew Wilcox <willy@linux.intel.com> Acked-by: Grant Grundler <grundler@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
2009-04-02Merge branch 'rusty-cpumask-parisc' into pariscKyle McMartin1-3/+3
2009-03-31parisc: expose 32/64-bit capabilities in cpuinfoColin Watson1-0/+7
It'd be rather useful for debian-installer if we could get hold of accurate firmware information on whether only 32-bit kernels are supported, only 64-bit kernels, or both; this would allow us to present an accurate menu of kernel packages if more than one is available, rather than the user having to guess. This patch attempts to expose it in cpuinfo. I adjusted pdc_model_capabilities to cope with a potential PDC_INVALID_ARG return as the firmware manual instructs, by assuming 32-bit only. This may be the wrong place for it. I made up user-visible capability names by total fiat and for the moment ignored the other bits that may appear in the capabilities word. I have no PA-RISC machine myself to test on, and no PA experience either, so I rather hope that somebody will kind-heartedly take this and fix it up if needed. I ran it past Dann Frazier on IRC and he said "looks good to me", but I think without testing. Also, this is against the Ubuntu 2.6.28 kernel tree since that's what I had handy and I was a bit tight on disk space to slurp down another tree. Sorry if it's skewed in any relevant way; I'll be happy to adjust if necessary. Thanks in advance! Signed-off-by: Colin Watson <cjwatson@canonical.com> Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
2009-03-16cpumask: Use accessors code.: pariscRusty Russell1-1/+1
Impact: use new API Use the accessors rather than frobbing bits directly. Most of this is in arch code I haven't even compiled, but it is mostly straightforward. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Mike Travis <travis@sgi.com>
2009-03-16cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits.: pariscRusty Russell1-2/+2
Impact: cleanup, futureproof In fact, all cpumask ops will only be valid (in general) for bit numbers < nr_cpu_ids. So use that instead of NR_CPUS in various places. This is always safe: no cpu number can be >= nr_cpu_ids, and nr_cpu_ids is initialized to NR_CPUS at boot. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Mike Travis <travis@sgi.com> Acked-by: Ingo Molnar <mingo@elte.hu>
2009-01-05parisc: Replace NR_CPUS in parisc codeHelge Deller1-33/+35
parisc: Replace most arrays sized by NR_CPUS with percpu variables. Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
2007-10-18[PARISC] Unbreak processor_probe when we have more than NR_CPUSKyle McMartin1-1/+6
If we already have NR_CPUS worth of cpus online, we obviously shouldn't be trying to bring up more... Fixes a particularly vexing issue I had when running another machines kernel on my rp3440. Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
2007-05-27[PARISC] fix section mismatches in arch/parisc/kernelHelge Deller1-3/+3
Hi Kyle, this patch fixes two section mismatches in arch/parisc/kernel: WARNING: arch/parisc/kernel/built-in.o(.data.read_mostly+0xd8): Section mismatch: reference to .init.text:processor_probe (between 'cpu_driver' and 'boot_cpu_data') WARNING: arch/parisc/kernel/built-in.o(.text.alloc_pa_dev+0x140): Section mismatch: reference to .init.text:parisc_hardware_description (after 'alloc_pa_dev') Additionally, mark some tables as constants. Please apply, Helge Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2007-05-22[PARISC] spelling fixes: arch/parisc/Simon Arlott1-4/+4
Spelling fixes in arch/parisc/. Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Acked-by: Grant Grundler <grundler@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2007-05-21Detach sched.h from mm.hAlexey Dobriyan1-1/+1
First thing mm.h does is including sched.h solely for can_do_mlock() inline function which has "current" dereference inside. By dealing with can_do_mlock() mm.h can be detached from sched.h which is good. See below, why. This patch a) removes unconditional inclusion of sched.h from mm.h b) makes can_do_mlock() normal function in mm/mlock.c c) exports can_do_mlock() to not break compilation d) adds sched.h inclusions back to files that were getting it indirectly. e) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were getting them indirectly Net result is: a) mm.h users would get less code to open, read, preprocess, parse, ... if they don't need sched.h b) sched.h stops being dependency for significant number of files: on x86_64 allmodconfig touching sched.h results in recompile of 4083 files, after patch it's only 3744 (-8.3%). Cross-compile tested on all arm defconfigs, all mips defconfigs, all powerpc defconfigs, alpha alpha-up arm i386 i386-up i386-defconfig i386-allnoconfig ia64 ia64-up m68k mips parisc parisc-up powerpc powerpc-up s390 s390-up sparc sparc-up sparc64 sparc64-up um-x86_64 x86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig as well as my two usual configs. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-26[PARISC] clocksource: Move update_cr16_clocksource later in bootKyle McMartin1-0/+8
smp_cpus_done is too early for us... before we even do a device inventory! Move update_cr16_clocksource into the tail end of processor_probe() and stub it out on CONFIG_SMP=n builds. Verified that clocksource0 is properly updated to use jiffies on an SMP build. Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2007-02-17[PARISC] use CONFIG_64BIT instead of __LP64__Helge Deller1-3/+3
- additionally update my copyright timestamps Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2007-02-17[PARISC] kill ENTRY_SYS_CPUSKyle McMartin1-3/+0
it's unlikely iCOD will ever happen on parisc-linux now... ;-) Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2006-12-11[PARISC] Fix thinko in cpu_data.lock removalKyle McMartin1-2/+0
Need to remove the initializer as well. Doh. Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2006-10-04[PARISC] Prevent processor_probe() from clobbering cpu_data[0]Grant Grundler1-2/+3
processor_probe() shouldn't clobber cpu_data[0] cpu_data[0].it_value (used by timer_interrupt()) is already set. Signed-off-by: Grant Grundler <grundler@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2006-06-30Remove obsolete #include <linux/config.h>Jörn Engel1-1/+0
Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de> Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-01-10[PARISC] Add __read_mostly section for pariscHelge Deller1-4/+4
Flag a whole bunch of things as __read_mostly on parisc. Also flag a few branches as unlikely() and cleanup a bit of code. Signed-off-by: Helge Deller <deller@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2005-10-21[PARISC] Convert parisc_device to use struct resource for hpaMatthew Wilcox1-4/+4
Convert pa_dev->hpa from an unsigned long to a struct resource. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Fix up users of ->hpa to use ->hpa.start instead. Signed-off-by: Matthew Wilcox <willy@parisc-linux.org> Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
2005-04-16Linux-2.6.12-rc2v2.6.12-rc2Linus Torvalds1-0/+400
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!