All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jack Steiner <steiner@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] 2.4.1 + 010131 patch: sys_nanosleep sleeps... infinitely!
Date: Mon, 26 Feb 2001 15:21:47 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590693005204@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590693005202@msgid-missing>

We have also been seeing hangs running with the latest BIOS. The problem
was isolated to a tiny window in arch/ia64/kernel/time.c where
itm could get loaded with a value that is in the past.
The problems occurs more frequently in recent BIOSs. I saw a reference
to use of PMI interrupts by the new BIOS but am not certain.

We see frequent hangs. Somes it is a hard hang but more often, the
system runs almost OK but any "sleep()" will fail. Also, time stop
advancing for obvious reasons.


I dont know if this could be related to what you see but it is worth a shot....




--- /home/steiner/WA/work240-trillian/linux/arch/ia64/kernel/time.c     Wed Jan 31 13:29:32 2001
+++ arch/ia64/kernel/time.c     Thu Feb  8 12:14:44 2001
@@ -188,10 +250,21 @@
         * because that would force us to call do_timer() which in
         * turn would let our clock run too fast (with the potentially
         * devastating effect of losing monotony of time).
+        *
+        * Note: there is a tiny window between reading itc &
+        * setting itm. It is possible to take a PMI or MCA in this
+        * window. If that happens, we will lose clock interrupts.
+        * To close the window, after writing itm, we reread itc & verify
+        * that the interrupt is still scheduled for the future.
         */
+again:
        while (!time_after(new_itm, ia64_get_itc() + cpu_data[cpu].itm_delta/2))
                new_itm += cpu_data[cpu].itm_delta;
        ia64_set_itm(new_itm);
+
+       if (new_itm <= ia64_get_itc())
+               goto again;
+
 }



-- 
Thanks

Jack Steiner    (651-683-5302)   (vnet 233-5302)      steiner@sgi.com



      reply	other threads:[~2001-02-26 15:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-26 12:52 [Linux-ia64] 2.4.1 + 010131 patch: sys_nanosleep sleeps... infinitely! Francis Galiegue
2001-02-26 15:21 ` Jack Steiner [this message]

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=marc-linux-ia64-105590693005204@msgid-missing \
    --to=steiner@sgi.com \
    --cc=linux-ia64@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.