All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Hellstrom <daniel@gaisler.com>
To: sparclinux@vger.kernel.org
Subject: Re: SPARC32 SMP IRQ15 question
Date: Wed, 26 Jan 2011 17:02:22 +0000	[thread overview]
Message-ID: <4D40539E.5040100@gaisler.com> (raw)
In-Reply-To: <4D0A2102.8030100@gaisler.com>

David Miller wrote:

>From: Daniel Hellstrom <daniel@gaisler.com>
>Date: Thu, 16 Dec 2010 15:24:02 +0100
>
>  
>
>>Why is IRQ15, the non-maskable IRQ, used for cross calls? Would it not
>>be safer to use IRQ14?
>>
>>Since IRQ15 is non-maskable it will even interrupt spin_lock_irqsave()
>>protected reqions. I assume it is safe as long as the cross call
>>function run in IRQ context does not try to take the same spinlock,
>>for that would create a dead lock I believe. For example atomic_add()
>>on SPARC32 below is implemented using one of four global spinlocks,
>>does that mean that we can not use atomic functions at all from within
>>a cross call function?
>>    
>>
>
>We don't want operations like TLB and cache flushes to be blocked
>by IRQ disabling.
>
>For other operations, we should reschedule it to a software interrupt
>at a lower level than 15, but nobody has done the work to implement
>this yet.
>  
>

I have made an first implementation on the LEON, the hangs that I could 
trigger quite easily are now gone and I can run my system for several 
days without rather heavy load, however I still have some problems on 
another board, but I don't think they are directly related...

Please look at my implementation suggestion (patches in separate email 
soon), I have tried to separate the patches so that it will be easier to 
implement it for other CPU models, however I don't really know the other 
architectures... it would be nice if someone else could have look at it 
and someone how has the hardware...

I have removed the use of smp_cross_call in smp_call_function* and 
instead used the generic implementation by defining 
USE_GENERIC_SMP_HELPERS, I think this is the cleanest approach.

Thanks for applying my GRETH patches on the devnet list before,

Daniel

  parent reply	other threads:[~2011-01-26 17:02 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-16 14:24 SPARC32 SMP IRQ15 question Daniel Hellstrom
2010-12-21 21:02 ` David Miller
2010-12-21 22:44 ` Jiri Gaisler
2010-12-22  3:54 ` David Miller
2010-12-22  9:19 ` Alex Buell
2010-12-22  9:51 ` Jiri Gaisler
2010-12-22 12:27 ` Daniel Hellstrom
2010-12-22 19:53 ` David Miller
2010-12-22 19:56 ` David Miller
2010-12-22 20:23 ` Alex Buell
2010-12-22 22:28 ` David Miller
2010-12-26 12:34 ` Kjetil Oftedal
2010-12-26 14:44 ` Jiri Gaisler
2010-12-27  1:55 ` David Miller
2010-12-27 17:28 ` crn
2011-01-03 14:14 ` Daniel Hellstrom
2011-01-03 14:19 ` Daniel Hellstrom
2011-01-26 17:02 ` Daniel Hellstrom [this message]
2011-01-26 19:52 ` David Miller
2011-01-26 21:28 ` daniel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D40539E.5040100@gaisler.com \
    --to=daniel@gaisler.com \
    --cc=sparclinux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.