Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-02 Thread Segher Boessenkool
The kernel doesn't care if one CPU is in OF land while the others are doing other stuff -- well you have to make sure the OF won't try to use a hardware device at the same time as the kernel, true. That statement alone hides an absolute can of worms btw ;-) Oh I know. With a sane OF implement

Re: [PATCH] ppc: vio of_node_put cleanup

2007-01-02 Thread Segher Boessenkool
The comment used to be inside the "if" block, is this change correct? You'd prefer an empty line in there? Obviously, you should change the comment to include the conditional, if that is what is needed. [And, do we want all these changes anyway? I don't care either way, both sides have thei

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-02 Thread Segher Boessenkool
Leaving aside the issue of in-memory or not, I don't think it is realistic to think any completely common implementation will work for this -- it might for current SPARC+PowerPC+OLPC, but more stuff will be added over time... And ? I don't see why a mostly common implementations wouldn't work, p

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-02 Thread Segher Boessenkool
Not single thread -- but a "global OF lock" yes. Not that it matters too much, (almost) all property accesses are init time anyway (which is effectively single threaded). Not that true anymore. A lot of driver probe is being threaded nowadays, either bcs of the new multithread probing bits, or

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-02 Thread Segher Boessenkool
Leaving aside the issue of in-memory or not, I don't think it is realistic to think any completely common implementation will work for this -- it might for current SPARC+PowerPC+OLPC, but more stuff will be added over time... I see nothing supporting this IMHO bogus claim. Please keep in mind

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-02 Thread Segher Boessenkool
[snipping a bit for now] It's easier to start merging powerpc and sparc I reckon Well it won't hurt to merge and clean up these two first, sure. and then, "fix" that so that it works on x86 :-) That works, if the goal is to just add x86/OLPC to the list of platforms that have a device tree

Re: inaccurate migration cost calculation?

2007-01-03 Thread Segher Boessenkool
Across different boots using the same 2.6.19 kernel on a quad-core xeon I see huge variance in the migration_cost being reported during boot. -migration_cost=39,3940 +migration_cost=25,4941 This CPU has a very large cache which could be key here... L1 Instruction cache: 32KB, 8-way associative.

Re: [PATCH] i386 kernel instant reboot with older binutils fix

2007-01-03 Thread Segher Boessenkool
Hopefully this patch should solve steve's issue too. Sure looks like it. o Older binutils required explicit flags to mark a section allocatable and executable(AX). Newer binutils automatically mark a section AX if the name starts with .text. More exactly, since 2.15 more section names ar

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-03 Thread Segher Boessenkool
therefore you can't let multiple CPUs call into OFW at one time. You must use some kind of locking mechanism, and that locking mechanism is not simple because it has to not just stop the other cpus, it has to be able to stop the other cpus yet still allow them to receive SMP cross-calls from the

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-03 Thread Segher Boessenkool
Kill OF? sparc does not want that IMO, how else should I return to the 'ok' prompt? PowerPC kills OF because it really has to, No it doesn't. It has to on some (very common, heh) subarchs. that's one of numerous reasons that it started sucking the device tree into a kernel copy early in the

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-03 Thread Segher Boessenkool
In fact, the 'ok' prompt is an ENORMOUS pain in the ass to support on machines with USB keyboards, because sharing the USB host controller is beyond non-trivial. I've never implemented support for that on sparc64 and I frankly have no desire to do the work necessary to support that. It simply is

Re: Subject: [PATCH 2/2] EDAC: K8 Memory scrubbing patch

2007-01-03 Thread Segher Boessenkool
One would also expect that cache scrubbing requires hardware support. You could just write-back invalidate the whole cache periodically if there is no explicit hardware support for cache scrubbing. Less efficient, sure :-) Signed-off-by: doug thompson <[EMAIL PROTECTED]> Shouldn't you

Re: Make sure we populate the initroot filesystem late enough

2007-02-26 Thread Segher Boessenkool
And check that we didn't end up stupidly having the initrd share a page with something else ... (like not aligned end or such thingy). David tested that yesterday, it's not the case. Too bad, would have been too easy ;-) Segher - To unsubscribe from this list: send the line "unsubscribe linu

Re: [RFC] div64_64 support

2007-02-26 Thread Segher Boessenkool
I thought the motivation for div64() was that a 64:32->32 divide could be done a lot faster on a number of platforms (including the important x86) than a generic 64:64->64 divide, but gcc doesn't handle the devolution automatically -- there is no such libgcc function. That there's no such func

Re: Make sure we populate the initroot filesystem late enough

2007-02-27 Thread Segher Boessenkool
I've not been able to reproduce it since, but I know others (BCC'ed on this note) have seen it and might prod them to come forth with details (and broken .config files) In my case, disabling CPU_FREQ_PMAC made the failure go away. After reverting this patch, CPU_FREQ_PMAC is once again operati

Re: lanana: Add major/minor entries for PPC QE UART devices

2007-02-27 Thread Segher Boessenkool
46 = /dev/ttyCPM0 PPC CPM (SCC or SMC) - port 0 ... -47 = /dev/ttyCPM5 PPC CPM (SCC or SMC) - port 5 +49 = /dev/ttyCPM5 PPC CPM (SCC or SMC) - port 5 If CPM0 is 46, then CPM5 is not 47, bu

Re: [RFC] killing the NR_IRQS arrays.

2007-02-28 Thread Segher Boessenkool
pci: each device/function has a unique irq, drivers need not know about it afaics. Then there is msi and with msi-x you can have up to 4K irqs. I have to admit I still don't really understand how this works at all. Can a driver that uses msi-x have different handlers for each of those inte

Re: lanana: Add major/minor entries for PPC QE UART devices

2007-02-28 Thread Segher Boessenkool
46 = /dev/ttyCPM0PPC CPM (SCC or SMC) - port 0 ... - 47 = /dev/ttyCPM5PPC CPM (SCC or SMC) - port 5 + 49 = /dev/ttyCPM5PPC CPM (SCC or SMC) - port 5 If CPM0 is 46, then CPM5 is not 47, but not 49 either. Unless it's not CPM5 but CPM3?

Re: lanana: Add major/minor entries for PPC QE UART devices

2007-02-28 Thread Segher Boessenkool
Just allocate the four slots and we'll deal with anything above this in custom products. Another option is to use 46..49 for UARTs #0..3, and 192..195 for UARTs #4..7. Or, perhaps better, use 46..49 for #0..3, and 192..199 for #0..7, handling the duplication in the driver; and deprecate the old

Re: lanana: Add major/minor entries for PPC QE UART devices

2007-02-28 Thread Segher Boessenkool
Another option is to use 46..49 for UARTs #0..3, and 192..195 for UARTs #4..7. Or, perhaps better, use 46..49 for #0..3, and 192..199 for #0..7, handling the duplication in the driver; and deprecate the old range. That sounds like more hassle than it's worth. The discontinuous range may be ann

Re: lanana: Add major/minor entries for PPC QE UART devices

2007-02-28 Thread Segher Boessenkool
Please, let's just leave the four we have No one is suggesting otherwise. and let the driver just allocate increasing minor numbers. If anyone has a product with more than 4 UARTs, they will have to figure out what to do with the additional minors. Since you say no one has ever used more tha

Re: [PATCH 0/6] MSI portability cleanups

2007-01-30 Thread Segher Boessenkool
I just got an answer from the hypervisor architects. It turns out that the hardware _does_ prevent the device from sending MSI messages to another partition. The OS _can_ write whatever it likes to the MSI address and data registers. It can potentially lose interrupts (or, I expect, get the dev

Re: [LinuxBIOS] #57: libusb host program for PLX NET20DC debug device

2006-12-03 Thread Segher Boessenkool
you could use io delay, one outb uses roughly 1us iirc. On LPC, yes -- or 0.5us or something like that. On ISA it's a lot faster, on PCI too -- better do 20 or so outb's to be safe. Or use a *real* timer instead, you'll have to abstract this for portability anyway... Segher - To unsubscribe

Re: [LinuxBIOS] [linux-usb-devel] [RFC][PATCH 0/2] x86_64 Early usb debug port support.

2006-12-06 Thread Segher Boessenkool
What do you mean by + for (reps = 0; reps >= 0; reps++) { ? If you will not reps is negative. Roughly it is a loop that will timeout eventually if a usb debug cable is not present. So since I didn't know how many loop iterations made sense I allowed it to loop for 2^31 times or until r

Re: kernel + gcc 4.1 = several problems

2007-01-04 Thread Segher Boessenkool
Adjusting gcc flags to eliminate optimizations is another way to go. Adding -fwrapv would be an excellent start. Lack of this flag breaks most code which checks for integer wrap-around. Lack of the flag does not break any valid C code, only code making unwarranted assumptions (i.e., buggy code).

Re: kernel + gcc 4.1 = several problems

2007-01-04 Thread Segher Boessenkool
Lack of the flag does not break any valid C code, only code making unwarranted assumptions (i.e., buggy code). Right, if "C" means "strictly conforming ISO C" to you. Without any further qualification, it of course does, yes. (in which case, nearly all real-world code is broken) Not "nearl

Re: kernel + gcc 4.1 = several problems

2007-01-04 Thread Segher Boessenkool
I'll happily turn off compiler features that are "clever optimizations that never actually matter in practice, but are just likely to possible cause problems". The "signed wrap is undefined" thing doesn't fit in this category though: -- It is an important optimisation for loops with a signed

Re: kernel + gcc 4.1 = several problems

2007-01-04 Thread Segher Boessenkool
(in which case, nearly all real-world code is broken) Not "nearly all" -- but lots of code, yes. I wouldn't say "lots of code". I would say "all real projects". All projects that tell the compiler they're written in ISO C, while they're not, can easily break, sure. You can't say this is GCC

Re: [PATCH] Fix __ucmpdi2 in v4l2_norm_to_name()

2007-01-05 Thread Segher Boessenkool
The largest value we use here is 0x0200. Perhaps v4l2_std_id shouldn't be 64-bit? Too late to change it to 32 bits. It is at V4L2 userspace API since kernel 2.6.0. We can, however use this approach as a workaround, with the proper documentation. Maybe with a BUG_ON(id > UINT_MAX) ? If t

Re: kernel + gcc 4.1 = several problems

2007-01-06 Thread Segher Boessenkool
For a different mailing list indeed; let me just point out that for certain important quite common cases it's an ~50% overall speedup. Hmm, what code was that? 'signed int does not wrap around' does not seem to provide _that_ much info... One of the recent huge threads on the GCC dev list has

Re: [PATCH] math-emu/setcc: avoid gcc extension

2007-01-07 Thread Segher Boessenkool
setcc() in math-emu is written as a gcc extension statement expression macro that returns a value. However, it's not used that way and it's not needed like that, so just make it a do-while non-extension macro so that we don't use an extension when it's not needed. Looks fine, except -#define

Re: kernel + gcc 4.1 = several problems

2007-01-07 Thread Segher Boessenkool
I want this: char v[4]; ... memcmp(v, "abcd", 4) == 0 compile to single cmpl on i386. This (gcc 4.1.1) is ridiculous: callmemcmp i686-linux-gcc (GCC) 4.2.0 20060410 (experimental) movl$4, %ecx#, tmp65 cld movl$v, %esi#, tm

Re: [PATCH] math-emu/setcc: avoid gcc extension

2007-01-07 Thread Segher Boessenkool
-#define setcc(cc) ({ \ +#define setcc(cc) do { \ partial_status &= ~(SW_C0|SW_C1|SW_C2|SW_C3); \ - partial_status |= (cc) & (SW_C0|SW_C1|SW_C2|SW_C3); }) + partial_status |= (cc) & (SW_C0|SW_C1|SW_C2|SW_C3); \ + } while (0) There's an extra tab in that last line. Could you also plea

Re: [PATCH] math-emu/setcc: avoid gcc extension

2007-01-07 Thread Segher Boessenkool
There's an extra tab in that last line. Could you also please fix the indenting (use a tab, not spaces) -- I know it was there originally, but since there are only a few lines in that file like that... :-) how's this one? I meant fix all the wrongly indented lines in that file (there are onl

Re: .version keeps being updated

2007-01-10 Thread Segher Boessenkool
With such a change, you would not need to grep for it. You could use binutils on it. `objdump -sj .rodata.uts vmlinux` would be a start. Maybe not the prettiest output, but guaranteed to contain only the banner. objcopy -j .rodata.uts -O binary vmlinux >(the-checker-script) Segher - To unsubs

Re: .version keeps being updated

2007-01-11 Thread Segher Boessenkool
../drivers/char$ objcopy -j .modinfo -O binary sonypi.ko objcopy: stvfMiji: Permission denied Why does it want to create a file there? This one works better: objcopy works in-place when only one file argument is passed. Yeah. The >(...) syntax in my example provides such a file; of cours

Re: Linux v2.6.20-rc5

2007-01-13 Thread Segher Boessenkool
CC [M] drivers/kvm/vmx.o {standard input}: Assembler messages: {standard input}:3257: Error: bad register name `%sil' make[2]: *** [drivers/kvm/vmx.o] Error 1 make[1]: *** [drivers/kvm] Error 2 make: *** [drivers] Error 2 Am I missing something or this is a real problem? What's on (and sround

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-11 Thread Segher Boessenkool
Segher has a modification to the devtree patch that creates a lower level ops vector that can be implemented with callback or non-callback. It is still being tested. It currently only hooks up OLPC, and I don't have any of those [hint hint], so I need external testers. I'll send the patch to

Re: [PATCH] Open Firmware device tree virtual filesystem

2007-01-11 Thread Segher Boessenkool
I'd like to put in my $.02 in favor of having a way to pass the OF device tree to the kernel, in much the same way we pass stuff like ACPI and PIRQ and MP tables now. This works fine for just passing the device tree, but it will fail for the next step of being able to use the firmware in the OS,

Re: [2.6 patch] let BLK_DEV_AMD74XX depend on X86

2007-01-11 Thread Segher Boessenkool
It's unlikely that this driver will ever be of any use on other architectures. It's already being used, for example, the AMD8111 is used one some PowerPC systems (some with IDE connected even). Segher - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a m

Re: [PATCH 1/5] Add the explanation and sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-18 Thread Segher Boessenkool
You don't need to mention _all_ compatible devices in the "compatible" property, only the few that matter; typically the oldest one, and sometimes some intermediate device that has extra features over the original one. The oldest one is difficult to find out sometime. Can we only set the self na

Re: [PATCH] remove usage of memmem from scripts/kallsyms.c

2007-06-20 Thread Segher Boessenkool
So we could remove the "#define _GNU_SOURCE" at the top of scripts/kallsyms.c too, presumably? If not (i.e. if there are more GNUisms left in that file anyway), then I'm not sure if we really gain by the change. yes, i believe this is true I only tried in on x86 with my toolchain and it works,

Re: NAK (bashizm in the /bin/sh script): [PATCH v3] doc/oops-tracing: add Code: decode info

2007-06-23 Thread Segher Boessenkool
Having the scripts work with other shells is very helpful for porting, cross building and the like. I think it is fair game to require bash to build the kernel -- after all, GCC and GNU make are required already, and bash has many helpful features that not every POSIX shell has. Also on Linux

Re: [PATCH] trivial: the memset operation on a automatic array variable should be optimized out by data initialization

2007-06-23 Thread Segher Boessenkool
gcc is a C compiler and claims to follow the C standard. Not with the options the kernel build uses. But, close enough -- the differences are really minor stuff. Segher - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] Mor

Re: [PATCH 16/16] fix handling of integer constant expressions

2007-06-24 Thread Segher Boessenkool
Hopefully correct handling of integer constant expressions. Please, review. Heh... The first catches are lovely: struct fxsrAlignAssert { int _:!(offsetof(struct task_struct, thread.i387.fxsave) & 15);

Re: [PATCH 16/16] fix handling of integer constant expressions

2007-06-24 Thread Segher Boessenkool
If I understand correctly what bugs you are talking about, most (all?) of those were solved in the dark ages already (i.e., the 3.x series). Alas, no. gcc is amazingly (and inconsistently) sloppy about the things it accepts as integer constant expressions. Ah yes, now I see what you were talk

Re: [PATCH 16/16] fix handling of integer constant expressions

2007-06-24 Thread Segher Boessenkool
Why? I'd say it's not better than BUILD_BUG_ON_ZERO() use instead of that ?: Oh, _that_ part I have no problem with. It's more that it seems that the gcc optimization is ok at least as an extension. Sure, but it's not an extension (yet), but an implementation side-effect; it would have to b

Re: [PATCH 16/16] fix handling of integer constant expressions

2007-06-24 Thread Segher Boessenkool
Humm... Right, so __builtin_offsetof() needs special treatment too. Oh, bugger. Is offsetof(struct foo, a.x[n]) a documented extension? It is. See info gcc -> C Extensions -> Offsetof Segher - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a

Re: [PATCH 16/16] fix handling of integer constant expressions

2007-06-24 Thread Segher Boessenkool
don't forget -> if you're going to accept extra stuff. GCC forgot -> with the parser rewrite, yes I filed a PR. -> is not allowed within the second arg to __builtin_offsetof(). Or do you mean something else? What's the PR #, and did it ever get fixed? Segher - To unsubscribe from this list:

Re: -Os versus -O2

2007-06-25 Thread Segher Boessenkool
In my experience, -Os produced faster code on gcc-2.95 than -O2 or -O3. On what CPU? The effect of different optimisations varies hugely between different CPUs (and architectures). It was not only because of cache considerations, but because gcc used different tricks to avoid poor optimizatio

Re: -Os versus -O2

2007-06-25 Thread Segher Boessenkool
then do we need a new option 'optimize for best overall performance' that goes for size (and the corresponding wins there) most of the time, but is ignored where it makes a huge difference? That's -Os mostly. Some awful CPUs really need higher loop/label/function alignment though to get any pe

Re: -Os versus -O2

2007-06-25 Thread Segher Boessenkool
Also note that whether or not it is profitable to unroll a particular loop depends largely on how "hot" that loop is, and GCC doesn't know much about that if you don't feed it profiling information (it can guess a bit, sure, but it can guess wrong too). actually, what you are saying is that the

Re: -Os versus -O2

2007-06-25 Thread Segher Boessenkool
-Os is "as fast as you can without bloating the code size", so that is the expected result for CPUs that don't need special hand-holding around certain performance pitfalls. this sounds like you are saying that people wanting performance should pick -Os. That is true on most CPUs. Some CPUs

Re: -Os versus -O2

2007-06-25 Thread Segher Boessenkool
In my experience, -Os produced faster code on gcc-2.95 than -O2 or -O3. On what CPU? The effect of different optimisations varies hugely between different CPUs (and architectures). x86 That's not a CPU, that's an architecture. I hope you understand there are very big differences between di

Re: [PATCH 1/5] Add the explanation and sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-12 Thread Segher Boessenkool
+ k) RapidIO + + Required properties: + +- device_type : Should be "rapidio" There is no OF binding, so no. +- compatible : Should be "fsl,rapidio-v0.0" or "fsl,rapidio-v1.0" + and so on. The version number is got from IP Block Revision + Register of RapidIO controller.

Re: [PATCH 1/5] Add the explanation and sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-13 Thread Segher Boessenkool
+- device_type : Should be "rapidio" There is no OF binding, so no. So, we need to define it. If you want to. Until that has been done, don't use a "device_type". Linux won't use it, anyway. +- compatible : Should be "fsl,rapidio-v0.0" or "fsl,rapidio-v1.0" + and so on. Th

Re: [PATCH 1/5] Add the explanation and sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-13 Thread Segher Boessenkool
+- device_type : Should be "rapidio" There is no OF binding, so no. So, we need to define it. If you want to. Until that has been done, don't use a "device_type". Linux won't use it, anyway. Do you have another ideas about that? Only remove it? Yeah, remove it. Using IP Block Rev

Re: [PATCH 1/5] Add the explanation and sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-14 Thread Segher Boessenkool
Not at all. On an 8641 it could be compatible = "fsl,mpc8641-rapidio" "fsl,mpc8548-rapidio"; which states "this is the 8641 thing and it is compatible to the 8548 thing". Perfectly clear. The concern is this isn't just compatible = "..8641.." "..8548.." but something like: "..8641

Re: [PATCH 2/2] [POWERPC] mmio ide support for mpc8349-itx target

2007-07-08 Thread Segher Boessenkool
+ [EMAIL PROTECTED] { + #interrupt-cells = <2>; Hm, why define that prop for a node with no children? + interrupts = <17 8>; + interrupt-map = <0 0 0 1 700 17 8>; + interrupt-map-mask = <0

Re: [x86 setup 13/33] Header file to produce 16-bit code with gcc

2007-07-10 Thread Segher Boessenkool
gcc for i386 can be used with the assembly prefix ".code16gcc" to generate 16-bit (real-mode) code. This header file provides the assembly prefix. This only works correctly with newer GCCs if you pass the -fno-toplevel-reorder option (and it only works on older GCC versions by accident). Th

Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

2007-07-10 Thread Segher Boessenkool
This scales with the number of processors since there is one decrementer per core (is it per thread on SMT chips? I don't know). One per core. Segher - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at

Re: [x86 setup 13/33] Header file to produce 16-bit code with gcc

2007-07-10 Thread Segher Boessenkool
gcc for i386 can be used with the assembly prefix ".code16gcc" to generate 16-bit (real-mode) code. This header file provides the assembly prefix. This only works correctly with newer GCCs if you pass the -fno-toplevel-reorder option (and it only works on older GCC versions by accident). And

Re: [x86 setup 13/33] Header file to produce 16-bit code with gcc

2007-07-10 Thread Segher Boessenkool
gcc for i386 can be used with the assembly prefix ".code16gcc" to generate 16-bit (real-mode) code. This header file provides the assembly prefix. This only works correctly with newer GCCs if you pass the -fno-toplevel-reorder option (and it only works on older GCC versions by accident). And o

Re: [x86 setup 16/33] String-handling functions for the new x86 setup code.

2007-07-10 Thread Segher Boessenkool
Nope. The builtins not only vary between gcc versions, but they also have a nasty tendency to generate calls to library functions, sometimes libgcc functions. Hence -ffreestanding. -ffreestanding will still generate calls to libgcc functions. -ffreestanding doesn't disable _all_ of the C li

Re: [x86 setup 13/33] Header file to produce 16-bit code with gcc

2007-07-10 Thread Segher Boessenkool
It seems to me GCC should grow an option to insert .code16gcc by itself (-m16 perhaps?) -m16 is the right thing, Probably not actually, -m16 might have 16-bit "int" etc. -mabi=16 is closer to what other architectures do here. and it also provides a proper hook for eventually having a real 1

Re: [x86 setup 16/33] String-handling functions for the new x86 setup code.

2007-07-10 Thread Segher Boessenkool
Nope. The builtins not only vary between gcc versions, but they also have a nasty tendency to generate calls to library functions, sometimes libgcc functions. Hence -ffreestanding. -ffreestanding will still generate calls to libgcc functions. -ffreestanding doesn't disable _all_ of the C l

Re: [x86 setup 13/33] Header file to produce 16-bit code with gcc

2007-07-10 Thread Segher Boessenkool
Looks good, except you don't want -fno-unit-at-a-time if -fno-toplevel-reorder works. And of course it would be good to get rid of -fno-strict-aliasing, but let's not go there today ;-P OK, how does this look: CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \

Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

2007-07-10 Thread Segher Boessenkool
This scales with the number of processors since there is one decrementer per core (is it per thread on SMT chips? I don't know). One per core. No, each thread has its own decrementer, but the timebase is shared. Argh, of course you're right, I'm reading the wrong ISA version again. Sorry.

Re: 2.6.22-rc3-mm1

2007-06-02 Thread Segher Boessenkool
Yeah, allmodconfig tends to fall over in a heap on a lot of the less-lavishly-maintained architectures. To be fair, almost all of the powerpc allmodconfig build problems are caused by x86-only drivers (and most of those I doubt still work on x86, even). Segher - To unsubscribe from this list:

Re: [patch 5/6] ps3: BD/DVD/CD-ROM Storage Driver

2007-07-16 Thread Segher Boessenkool
I'm pretty sure that no ppc64 machine needs alias resolution in the kernel, although some are VIPT. Last time we discussed this, Segher explained it to me, but I don't remember which way Cell does it. IIRC, it automatically flushes cache lines that are accessed through aliases. Ah yes, I r

Re: [PATCH 03/33] powerpc: Refuse to build 64-bit with GCC-4.2.0 and CONFIG_MODULES

2007-07-19 Thread Segher Boessenkool
From: Segher Boessenkool <[EMAIL PROTECTED]> ...since this won't work (compiler bug, see <http://gcc.gnu.org/ PR31490>). The bug report says IA64 is broken, too. Please verify and extend the patch if possible... The GCC bug exists on all architectures. Linux build is

Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

2007-05-17 Thread Segher Boessenkool
+* We must write a positive value to the decrementer to clear +* the interrupt on the IBM 970 CPU series. In periodic mode, +* this happens when the decrementer gets reloaded later, but +* in one-shot mode, we have to do it here since an event handler +* ma

Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

2007-05-17 Thread Segher Boessenkool
+ * We must write a positive value to the decrementer to clear + * the interrupt on the IBM 970 CPU series. In periodic mode, + * this happens when the decrementer gets reloaded later, but + * in one-shot mode, we have to do it here since an event handler + * may skip loadin

Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

2007-05-17 Thread Segher Boessenkool
Otherwise, when the contents of DEC0 change, the exception effects of the Decrementer become consistent with the new contents of the Decrementer reasonably soon after the change. And that is guaranteed on all PowerPC as far as I can see. The main thing is that a decrementer exception won't go

Re: [Patch 04/18] include/linux/logfs.h

2007-06-05 Thread Segher Boessenkool
It would be better if GCC had a 'nopadding' attribute which gave us what we need without the _extra_ implications about alignment. That's impossible; removing the padding from a struct _will_ make accesses to its members unaligned (think about arrays of that struct). Segher - To unsubscribe

Re: [Patch 04/18] include/linux/logfs.h

2007-06-05 Thread Segher Boessenkool
It would be better if GCC had a 'nopadding' attribute which gave us what we need without the _extra_ implications about alignment. That's impossible; removing the padding from a struct _will_ make accesses to its members unaligned (think about arrays of that struct). It _might_ make accesses t

Re: [PATCH] PCI: also read revision ID for sparc64, ppc, read class at the same time

2007-06-10 Thread Segher Boessenkool
+ dev->revision = get_int_prop(node, "revision-id", 0); It's not clear to me in the spec if nodes are required to have the "revision-id" property. It is required for every PCI node. I guess 0 is a safe default though. As good as any -- that is, no default is save. 0 should be "good

Re: [PATCH 16/16] fix handling of integer constant expressions

2007-06-28 Thread Segher Boessenkool
Here are three independently invalid non-ICEs that sparse doesn't diagnose. extern int f(void); enum { cast_to_ptr = (int) (void *) 0 }; enum { cast_to_float = (int) (double) 1 }; Those two *really* shouldn't fail. I don't care if the C standard says so, that is *fine*. GCC doesn't guarante

Re: [PATCH 1/5 v2] Add the explanation and a sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-28 Thread Segher Boessenkool
+- #address-cells : Address representation for "rapidio" devices. + This field represents the number of cells needed to represent + the RapidIO address of the registers. For supporting more than + 32-bits RapidIO address, this field should be <2>. + See 1) above for more d

Re: [PATCH 1/5 v2] Add the explanation and a sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-28 Thread Segher Boessenkool
+ k) RapidIO + + Required properties: Should probably recommend a name for the node here, as well. "srio" I guess, from the example below. I would prefer "rapidio", being more generic and more readable. What would parallel RapidIO be, "prio"? No thanks :-) Segher - To unsubscribe fro

Re: [PATCH 3/5 v2] Add the platform device support with RapidIO to MPC8641HPCN platform.

2007-06-28 Thread Segher Boessenkool
Of course, looking at the device tree, rapidio is a device, not a bus, because it does not have a device_type and it does not have any children of its own. It's a device _of course_, but it's also a bus parent, since it has a "#address-cells" not equal to zero (and, if this used real OF, it wo

Re: [PATCH 1/5 v2] Add the explanation and a sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-29 Thread Segher Boessenkool
+- #address-cells : Address representation for "rapidio" devices. + This field represents the number of cells needed to represent + the RapidIO address of the registers. For supporting more than + 32-bits RapidIO address, this field should be <2>. + See 1) above for mo

Re: [PATCH 1/5 v2] Add the explanation and a sample of RapidIO DTS sector to the document of booting-without-of.txt file.

2007-06-29 Thread Segher Boessenkool
No. The #address-cells is determined by the bus binding, so that all RapidIO busses on the planet can be represented in a similar way in the OF device tree. Take for example the PCI binding, which gives you three address cells -- one to distinguish between different address spaces (configuration

Re: [PATCH] .gitignore update

2007-07-04 Thread Segher Boessenkool
headers_install by default puts headers into usr/include/ . They're auto-generated, so should be ignored. Same for *.orig, *.rej . If you have .orig or .rej files hanging around, it means you have an unresolved merge conflict. Better not ignore it. Segher - To unsubscribe from this list: se

Re: [PATCH] ubi: kill homegrown endian macros

2007-05-18 Thread Segher Boessenkool
Out of curiosity, why would a compiler ever insert padding in a structure that has all its elements properly-aligned? Well, it might decide it would be nicer if some elements were aligned to 64 bits. Or to a cache line. Or something. I don't care about _why_ -- the point is that it's _allowed

Re: [Bug 8501] udivdi3 absence with gcc-4.3.0 on kernels 2.6.20.11 & 2.6.22.-rc1

2007-05-18 Thread Segher Boessenkool
gcc-4.3 appears to have cunningly converted this: static inline void timespec_add_ns(struct timespec *a, u64 ns) { ns += a->tv_nsec; while(unlikely(ns >= NSEC_PER_SEC)) { ns -= NSEC_PER_SEC; a->tv_sec++; } a->tv_nsec = ns; } into a

Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

2007-05-18 Thread Segher Boessenkool
I find it extremely silly to implement it as edge anyway. The EE line is level triggered, and having a mix of edge and level on the same exception without a clean way to retrigger the DEC one other than waiting one tick is just causing trouble. It isn't edge triggered, it just automatically cle

Re: [PATCH] ubi: kill homegrown endian macros

2007-05-19 Thread Segher Boessenkool
It's not the compiler who decides -- struct layout is dictated by the ABI you're compiling for. This is true in the case of externally-visible stuff. I think the compiler is permitted to violate the ABI for purely unit-internal things if it makes sense though, isn't it? Sure. It isn't "viol

Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

2007-05-19 Thread Segher Boessenkool
Unfortunately, FIT exists only on Book E CPUs and MPC74xx aren't Book E, IIUC. By the name "FIT" perhaps, but MPC74xx has essentially the same thing. Set MMCR0[TBEE], set MMCR0[PMXE], and choose a TBL bit via MMCR0[TBSEL]. That's the performance monitor, which could very well be in use alre

Re: gcc-4.2.0 breakage on powerpc?

2007-05-19 Thread Segher Boessenkool
and we'll end up having major kernel releases which don't build on i386 with major gcc releases, which isn't altogether desirable. Yeah, like 4.2.0 with powerpc. Seems like no one tested it :-( Details please. What exactly are the gcc-4.2.0 problems on powerpc? http://gcc.gnu.org/PR31490 .

Re: gcc-4.2.0 breakage on powerpc?

2007-05-19 Thread Segher Boessenkool
and we'll end up having major kernel releases which don't build on i386 with major gcc releases, which isn't altogether desirable. Yeah, like 4.2.0 with powerpc. Seems like no one tested it :-( Details please. What exactly are the gcc-4.2.0 problems on powerpc? http://gcc.gnu.org/PR31490

Re: gcc-4.2.0 breakage on powerpc?

2007-05-19 Thread Segher Boessenkool
Over here, the 2.6.21.1 Kernel _builds_ fine with gcc-4.2.0 on an mpc8540 e500 powerpc (mpc8540_ads_defconfig) Yeah, this problem likely doesn't show up on 32-bit platforms. but it just crashes silently on boot. But that's IMHO a DeviceTree/U-Boot issue I haven't solved yet. Quite possible.

Re: [PATCH 2.6.21-rt2] PowerPC: decrementer clockevent driver

2007-05-20 Thread Segher Boessenkool
In fact, while it's never worded explicitely in the spec, it's always been strongly in the "spirit" of the architecture that the timebase and decrementer have a constant frequency. The architecture mentions varying time base frequencies, and how to deal with this, actually. It makes no recommen

Re: [PATCH 2.6.21-rt7] PowerPC: fix clockevents for classic CPUs

2007-05-24 Thread Segher Boessenkool
* We must write a positive value to the decrementer to clear -* the interrupt on the IBM 970 CPU series. In periodic mode, -* this happens when the decrementer gets reloaded later, but -* in one-shot mode, we have to do it here since an event handler -* ma

Re: [PATCH][RFC][POWERPC] i2c: adds support for i2c bus on 8xx

2007-04-20 Thread Segher Boessenkool
+ compatible = "fsl-i2c-cpm"; "fsl,i2c-cpm" instead. Segher - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the

Re: [PATCH] [POWERPC] 8xx: mpc885ads pcmcia support

2007-05-03 Thread Segher Boessenkool
For example, you could make this   compatible = "8xx\0mpc885ads"; "mpc885ads-pcmcia\0mpc8xx-pcmcia" or something like that. Right. I can never remember what goes first... It doesn't really matter all that much; "correct" drivers probe for the most specific thing first, then the next mos

Re: [PATCH] [POWERPC] 8xx: mpc885ads pcmcia support

2007-05-05 Thread Segher Boessenkool
+ [EMAIL PROTECTED] { + #interrupt-cells = <1>; + interrupt-parent = ; + interrupts = ; + }; Since this node's children's interrupt representation is different from the node's parent's, you need a

Re: [PATCH] [POWERPC] 8xx: mpc885ads pcmcia support

2007-05-06 Thread Segher Boessenkool
Since this node's children's interrupt representation is different from the node's parent's, you need an interrupt-map in here. You also forgot "#address-cells" and I think you need "ranges" too? Well, in fact it does not introduce SoC device different from any others represented inside soc885

Re: [PATCH][RFC] PCMCIA support for 8xx using platform devices

2007-04-23 Thread Segher Boessenkool
That's a horrible argument. Please do it properly, and let arch/ppc die as it should. We shouldn't be adding anything to it anymore anyway. I understand your point, but we shouldn't trash existing bits either. Why not? The things that haven't been ported over yet obviously are unmaintained.

Re: [Bugme-new] [Bug 8378] New: Averatec 3156X laptop doesn't reboot with kernels > 2.6.13.5 (responsible commit found)

2007-04-28 Thread Segher Boessenkool
That patch says + outb(0x60, 0x64); /* write Controller Command Byte */ + udelay(50); + kb_wait(); + udelay(50); + outb(0x14, 0x60); /* set "System flag" */ so the comment doesn't agree with the code: it sets al

<    1   2   3   4   5   6   >