Re: [PATCH] Fix DMA nodes in the MPC8610 HPCD device tree

2008-05-31 Thread Kumar Gala


On May 31, 2008, at 12:27 AM, Paul Mackerras wrote:


Timur Tabi writes:

The node for DMA2 in the MPC8610 HPCD device tree has the wrong  
compatible

properties.  This breaks the DMA driver and the sound driver.

Signed-off-by: Timur Tabi [EMAIL PROTECTED]
---

I have no idea how I let this bug slip in, but this is a must-fix  
for 2.6.26.


Kumar, do you have anything else for 2.6.26 at the moment?  If not,
and this patch is OK with you, I'll put it in along with Olof's two
patches and send them to Linus.

Does anyone else have any pending fixes for 2.6.26?


I don't.  I want/need to do defconfig updates but that can wait if you  
plan on getting this out over the weekend.


- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH v4] [POWERPC] Move to runtime allocated exception stacks

2008-05-31 Thread Kumar Gala


On May 31, 2008, at 12:04 AM, Paul Mackerras wrote:


Kumar Gala writes:

For the additonal exception levels (critical, debug, machine check)  
on

40x/book-e we were using static allocations of the stack in the
associated head.S.

Move to a runtime allocation to make the code a bit easier to read as
we mimic how we handle IRQ stacks.  Its also a bit easier to setup  
the

stack with a dummy thread_info in C code.


Looks fine, with just one very minor comment:


-   addir11,r11,THREAD_SIZE; \
-1:	subi	r11,r11,INT_FRAME_SIZE;	/* Allocate an exception frame  
*/\

+1: addir11,r11,THREAD_SIZE; \
+   subir11,r11,INT_FRAME_SIZE; /* Allocate an exception frame */\


You could make that a single addi r11,r11,THREAD_SIZE-INT_FRAME_SIZE
now.


I remember noticing that and thinking I should go back in fix.  Will  
look at doing that and add the patches to my powerpc-next tree.


- k
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


[git pull] Please pull powerpc.git merge branch

2008-05-31 Thread Paul Mackerras
Linus,

Please pull from the 'merge' branch of

git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc.git merge

to get four more bug-fixes for powerpc (including Ben's patch adding
memory clobbers to the asm for I/O accessors) and a pasemi defconfig
update.

Thanks,
Paul.

 arch/powerpc/boot/dts/mpc8610_hpcd.dts |   10 +-
 arch/powerpc/configs/pasemi_defconfig  |  172 +---
 arch/ppc/kernel/ppc_ksyms.c|2 
 drivers/pcmcia/electra_cf.c|1 
 include/asm-powerpc/io.h   |   12 +-
 5 files changed, 126 insertions(+), 71 deletions(-)

Benjamin Herrenschmidt (1):
  [POWERPC] Add memory clobber to MMIO accessors

Olof Johansson (2):
  electra_cf: Add MODULE_DEVICE_TABLE()
  [POWERPC] pasemi: update pasemi_defconfig, enable electra_cf

Timur Tabi (1):
  [POWERPC] Fix DMA nodes in the MPC8610 HPCD device tree

Tony Breeds (1):
  [POWERPC] Export empty_zero_page and copy_page in arch/ppc

___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: MMIO and gcc re-ordering issue

2008-05-31 Thread Jeremy Higdon
On Thu, May 29, 2008 at 10:47:18AM -0400, Jes Sorensen wrote:
 Thats not going to solve the problem on Altix. On Altix the issue is
 that there can be multiple paths through the NUMA fabric from cpuX to
 PCI bridge Y. 
 
 Consider this uber-cooltm ascii art - NR is my abbrevation for NUMA
 router:
 
 --- ---
 |cpu X| |cpu Y|
 --- ---
  |   \  /|
  |\/ |
  |/\ |
  |   /  \|
  -  --
  |NR 1| |NR 2|
  -- --
   \ /
\   /
 ---
 | PCI |
 ---
 
 The problem is that your two writel's, despite being both issued on
 cpu X, due to the spin lock, in your example, can end up with the
 first one going through NR 1 and the second one going through NR 2. If
 there's contention on NR 1, the write going via NR 2 may hit the PCI
 bridge prior to the one going via NR 1.

We don't actually have that problem on the Altix.  All writes issued
by CPU X will be ordered with respect to each other.  But writes by
CPU X and CPU Y will not be, unless an mmiowb() is done by the
original CPU before the second CPU writes.  I.e.

CPU X   writel
CPU X   writel
CPU X   mmiowb

CPU Y   writel
...

Note that this implies some sort of locking.  Also note that if in
the above, CPU Y did the mmiowb, that would not work.

jeremy
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: MMIO and gcc re-ordering issue

2008-05-31 Thread Jeremy Higdon
On Fri, May 30, 2008 at 10:21:00AM -0700, Jesse Barnes wrote:
 On Friday, May 30, 2008 2:36 am Jes Sorensen wrote:
  James Bottomley wrote:
   The only way to guarantee ordering in the above setup, is to either
   make writel() fully ordered or adding the mmiowb()'s inbetween the two
   writel's. On Altix you have to go and read from the PCI brige to
   ensure all writes to it have been flushed, which is also what mmiowb()
   is doing. If writel() was to guarantee this ordering, it would make
   every writel() call extremely expensive :-(
  
   So if a read from the bridge achieves the same effect, can't we just put
   one after the writes within the spinlock (an unrelaxed one).  That way

A relaxed readX would be sufficient.  It's the next lowest cost way (after
mmiowb) of ensuring write ordering between CPUs.  Regular readX is the
most expensive method (well, we could probably come up with something worse,
but we'd have to work at it  :).

   this whole sequence will look like a well understood PCI posting flush
   rather than have to muck around with little understood (at least by most
   driver writers) io barriers?
 
  Hmmm,
 
  I think mmiowb() does some sort of status read from the bridge, I am not
  sure if it's enough to just do a regular readl().
 
  I'm adding Jeremy to the list, he should know for sure.
 
 I think a read from the target host bridge is enough.  What mmiowb() does 
 though is to read a *local* host bridge register, which contains a count of 
 the number of PIO ops still in flight on their way to their target bridge.  
 When it reaches 0, all PIOs have arrived at the target host bridge (they 
 still may be bufferd), so ordering is guaranteed.


Note that is the main advantage over a read.  There is no round trip across
the NUMA fabric.

jeremy
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH 2/2] talitos: Freescale integrated security engine (SEC) driver

2008-05-31 Thread Evgeniy Polyakov
Hi.

On Fri, May 30, 2008 at 05:19:30PM -0500, Kim Phillips ([EMAIL PROTECTED]) 
wrote:
 ok, I see what you are saying now; if a channel gets done during
 talitos_done processing, it'll trigger an interrupt and reset
 priv-status, leaving the tasklet in the dark as to which channel has
 done status, depending on how many channel dones it has already
 processed.  I think the only solution here is to call flush_channel on
 each channel, regardless of the bits in the interrupt status - I'll
 send out a patch shortly.

Out of curiosity, what is number of channels? I had simialar issue with
HIFN crypto driver and limited number of descriptor to 80 iirc, since
with that number HIFN traversal did not show perfromance degradataion on
Ghz x86.

  callback, during that time cached status and priv itself (and tail like
  in two simultaneous flushes) could change (or not?)
 
 I think you're talking about a different 'status' here; flush_channel's
 local 'status' doesn't resemble priv-status bits in any way, it looks
 at the descriptor header writeback bits for done status, on a per
 descriptor basis.  It forwards this descriptor done vs. error status to
 the callback.
 
 priv itself won't change; it's uniquely associated to the device.

I meant descriptor hdr value accessed via it - can it be checked in
tasklet under the lock and in submit path without? Can they correlate
somehow?

-- 
Evgeniy Polyakov
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev


Re: [PATCH] Fix DMA nodes in the MPC8610 HPCD device tree

2008-05-31 Thread Josh Boyer
On Sat, 31 May 2008 15:27:30 +1000
Paul Mackerras [EMAIL PROTECTED] wrote:

 Does anyone else have any pending fixes for 2.6.26?

I don't.

josh
___
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev