public inbox for linux-m68k@lists.linux-m68k.org
 help / color / mirror / Atom feed
From: Michael Schmitz <schmitzmic@gmail.com>
To: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Michael Schmitz <schmitz@biophys.uni-duesseldorf.de>,
	Mikael Pettersson <mikpe@it.uu.se>,
	Thorsten Glaser <tg@mirbsd.de>,
	Linux/m68k <linux-m68k@vger.kernel.org>,
	Debian m68k <debian-68k@lists.debian.org>
Subject: Re: linux 3.10.1 with initrd (was Re: linux 3.8.12-1 (atari flavour) does not boot)
Date: Sat, 03 Aug 2013 05:26:57 +1200	[thread overview]
Message-ID: <51FBEBE1.1020507@gmail.com> (raw)
In-Reply-To: <CAMuHMdXq1Cz9K9qcVqx=C6sbrDJ4JpWT7c6G+JhY+Z4SdYdnKg@mail.gmail.com>

Hi Geert,
>>
>> Didn't we have that sorted out earlier? I seem to recall this has surfaced
>> before.
> You mean commit 94674cd5299e825cb31979c3b9a4c1a3e6074839
> ("m68k: Correct the Atari ALLOWINT definition")? That was a related but
> slightly different problem.

That's proably what I recalled, yes.
>> What is the cause of the problem exactly - the hsync handler changing the
>> IPL to block out further interrupts, whenever it is called for the first
>> time after interrupts are enabled? We could stop doing that on
>> multi-platform kernels (taking all hsync interrupts will be a performance
>> hit but not stop the system from working).
> AFAICS, it's indeed the hsync handler blocking further interrupts on
> multi-platform kernels.

So we could stop blocking further interrupts in multi platform kernels. 
How much of a performance hit will this be on say a stock Falcon or TT?

>
> We could ignore IPL2 when running on Atari (untested whitespace-damaged
> patch):
>
> --- a/arch/m68k/include/asm/irqflags.h
> +++ b/arch/m68k/include/asm/irqflags.h
> @@ -67,7 +67,11 @@ static inline void arch_local_irq_restore(unsigned long flags
>
>   static inline bool arch_irqs_disabled_flags(unsigned long flags)
>   {
> -       return (flags & ~ALLOWINT) != 0;
> +       if (MACH_IS_ATARI) {
> +               /* Ignore HSYNC = ipl 2 on Atari */
> +               return (flags & ~(ALLOWINT | 0x200)) != 0;
> +       } else
> +           return (flags & ~ALLOWINT) != 0;
>   }
>
>   static inline bool arch_irqs_disabled(void)
>
> or just ignore all priorities on all platforms, and consider interrupts disabled
> iff all priorities are disabled:
>
> --- a/arch/m68k/include/asm/irqflags.h
> +++ b/arch/m68k/include/asm/irqflags.h
> @@ -67,7 +67,7 @@ static inline void arch_local_irq_restore(unsigned long flags
>
>   static inline bool arch_irqs_disabled_flags(unsigned long flags)
>   {
> -       return (flags & ~ALLOWINT) != 0;
> +       return (flags & ~ALLOWINT) != ~ALLOWINT;
>   }
>
>   static inline bool arch_irqs_disabled(void)
>
> The former is safer but slower, the second is faster but will miss cases
> where some interrupt priorities are disabled.
The safer but slower option (we can still use the fast version of it on 
single platform kernels). We should test the faster at any rate to see 
whether there are really cases where we miss disabled interrupts.

I'll revive my Falcon already ...

Cheers,

     Michael

  reply	other threads:[~2013-08-02 17:27 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <alpine.DEB.2.02.1305132122190.14304@tglase.lan.tarent.de>
     [not found] ` <CAMuHMdX+t0=J+8a1JoF6Jf=gO_ROuL_kgAVjF0DJA-cgPGp_Ng@mail.gmail.com>
     [not found]   ` <Pine.BSM.4.64L.1305132126170.11828@herc.mirbsd.org>
     [not found]     ` <5192331E.9010009@debian.org>
     [not found]       ` <Pine.BSM.4.64L.1305141338580.14676@herc.mirbsd.org>
     [not found]         ` <20130514144112.GH11842@chumley.earth.sol>
     [not found]           ` <Pine.BSM.4.64L.1305141642360.9568@herc.mirbsd.org>
     [not found]             ` <Pine.BSM.4.64L.1307201716460.31890@herc.mirbsd.org>
2013-07-31  8:39               ` linux 3.10.1 with initrd (was Re: linux 3.8.12-1 (atari flavour) does not boot) Geert Uytterhoeven
2013-07-31  9:01                 ` linux 3.10.1 with initrd Christian T. Steigies
2013-07-31 11:57                   ` Thorsten Glaser
2013-08-02  9:08                 ` linux 3.10.1 with initrd (was Re: linux 3.8.12-1 (atari flavour) does not boot) Michael Schmitz
2013-08-02 13:01                   ` Geert Uytterhoeven
2013-08-02 17:26                     ` Michael Schmitz [this message]
2013-08-02 19:58                       ` Geert Uytterhoeven
2013-08-03  1:37                         ` Michael Schmitz
2013-08-03  8:05                           ` Geert Uytterhoeven

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=51FBEBE1.1020507@gmail.com \
    --to=schmitzmic@gmail.com \
    --cc=debian-68k@lists.debian.org \
    --cc=geert@linux-m68k.org \
    --cc=linux-m68k@vger.kernel.org \
    --cc=mikpe@it.uu.se \
    --cc=schmitz@biophys.uni-duesseldorf.de \
    --cc=tg@mirbsd.de \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox