From: Alexander Nyberg <alexn@dsv.su.se>
To: Christoph Lameter <clameter@sgi.com>
Cc: George Anzinger <george@mvista.com>,
johnstul@us.ibm.com, Ulrich.Windl@rz.uni-regensburg.de,
jbarnes@sgi.com, linux-kernel@vger.kernel.org, roland@redhat.com,
Ingo Molnar <mingo@elte.hu>
Subject: Re: Periodic posix timer support broke between 2.6.9-rc1 and 2.6.9-rc1-bk17
Date: Wed, 13 Oct 2004 20:08:12 +0200 [thread overview]
Message-ID: <1097690892.615.32.camel@boxen> (raw)
In-Reply-To: <Pine.LNX.4.58.0410121315170.5785@schroedinger.engr.sgi.com>
> I ran some test programs and discovered that the periodic timer support
> is broken. The timer is triggered once and then never again. Single shot
> timers work fine. 2.6.9-rc1 is fine. The first kernel that I tested where
> I noticed the breakage was 2.6.9-rc1-bk17. 2.6.9-rc2 and following all
> cannot do periodic timer signals.
>
> I looked through the changelog but I cannot see anything that would cause
> the problem. Roland's patch surely could not have done this.
>
> Will try to track this down further, time permitting...
I took a bit of a look at this, and it looks like some things changed
with the introduction of the flexible mmap in 2.6.9-rc1-bk1.
If you run the program below it will work, doing as expected. Now
comment out the the line "memset(&sa, 0, sizeof(struct sigaction));"
and program won't run as expected.
Now do "echo -n 1 > /proc/sys/vm/legacy_va_layout" and run the same
program again (the one with memset commented out).
Turning on signal debugging tells us that with legacy_va_layout=0
"SIG deliver (a.out:415): sp=bffff6c0 pc=08048434 ra=00000000"
where ra is the 8-byte instruction that's supposed to get us back to
sys_sigreturn().
Me thinks someone somewhere is using some of the bits that we
"accidently" pass via sa.sa_flags by not setting it to 0, the regular
flags don't seem to show this behaviour, and I couldn't see any real
checking of the passed value of sa.sa_flags.
---------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/time.h>
void sighandler(int signal)
{
printf("hihi\n");
}
int main()
{
struct itimerval timeval;
struct sigaction sa;
memset(&timeval, 0, sizeof(struct timeval));
memset(&sa, 0, sizeof(struct sigaction));
sa.sa_handler = &sighandler;
sigfillset(&sa.sa_mask);
sigaction(SIGALRM, &sa, NULL);
timeval.it_interval.tv_sec = 2;
timeval.it_interval.tv_usec = 0;
timeval.it_value.tv_sec = 2;
timeval.it_value.tv_usec = 0;
if (setitimer(ITIMER_REAL, &timeval, NULL))
printf("Nooo!\n");
for(;;)
;
return 0;
}
next prev parent reply other threads:[~2004-10-13 18:08 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <B6E8046E1E28D34EB815A11AC8CA312902CD3264@mtv-atc-605e--n.corp.sgi.com>
2004-09-24 12:16 ` [time] add support for CLOCK_THREAD_CPUTIME_ID and CLOCK_PROCESS_CPUTIME_ID Christoph Lameter
2004-09-25 4:25 ` Ulrich Drepper
2004-09-25 5:25 ` Christoph Lameter
2004-09-25 5:54 ` Christoph Lameter
2004-09-25 6:08 ` Ulrich Drepper
2004-09-25 14:51 ` Christoph Lameter
2004-09-25 15:19 ` Ulrich Drepper
2004-09-27 15:03 ` Christoph Lameter
2004-09-27 15:34 ` Christoph Lameter
[not found] ` <B6E8046E1E28D34EB815A11AC8CA312902CD327E@mtv-atc-605e--n.corp.sgi.com>
2004-09-27 20:58 ` [RFC] Posix compliant behavior of CLOCK_PROCESS/THREAD_CPUTIME_ID Christoph Lameter
2004-09-27 22:54 ` George Anzinger
2004-09-28 19:18 ` Ulrich Drepper
2004-09-28 19:25 ` Christoph Lameter
2004-09-29 3:25 ` Posix compliant CLOCK_PROCESS/THREAD_CPUTIME_ID V4 Christoph Lameter
2004-09-29 17:45 ` George Anzinger
2004-09-29 18:14 ` Christoph Lameter
2004-09-29 19:27 ` George Anzinger
2004-09-29 19:34 ` Christoph Lameter
2004-09-29 19:52 ` Jesper Juhl
2004-09-30 0:14 ` patches inline in mail George Anzinger
2004-09-30 3:24 ` Paul Jackson
2004-10-01 5:29 ` Andrew Morton
2004-10-01 12:28 ` Alan Cox
2004-10-01 13:42 ` Paul Fulghum
2004-10-01 19:53 ` Lee Revell
2004-10-01 21:58 ` George Anzinger
2004-10-02 15:52 ` Olaf Dietsche
2004-10-02 15:20 ` Alan Cox
2004-10-03 21:01 ` [OT] " Guennadi Liakhovetski
2004-10-03 23:18 ` Jesper Juhl
2004-10-04 6:20 ` Paul Jackson
2004-10-04 19:11 ` Guennadi Liakhovetski
2004-10-04 7:26 ` Ulrich Windl
2004-10-03 21:35 ` George Anzinger
2004-10-04 3:00 ` Jim Nelson
2004-10-01 9:04 ` Jesper Juhl
2004-09-29 19:32 ` Posix compliant CLOCK_PROCESS/THREAD_CPUTIME_ID V5 Christoph Lameter
2004-10-01 19:57 ` Posix compliant cpu clocks V6 [0/3]: Rationale and test program Christoph Lameter
[not found] ` <B6E8046E1E28D34EB815A11AC8CA31290322B307@mtv-atc-605e--n.corp.sgi.com>
2004-10-01 19:59 ` Posix compliant cpu clocks V6 [1/3]: Generic Kernel patch Christoph Lameter
2004-10-01 21:03 ` Andrew Morton
2004-10-01 20:01 ` Posix compliant cpu clocks V6 [2/3]: Glibc patch Christoph Lameter
2004-10-02 5:32 ` Ulrich Drepper
2004-10-04 15:04 ` Christoph Lameter
2004-10-04 16:27 ` Christoph Lameter
2004-10-06 13:53 ` Martijn Sipkema
2004-10-01 20:02 ` Posix compliant cpu clocks V6 [3/3]: mmtimer provides CLOCK_SGI_CYCLE Christoph Lameter
2004-10-07 4:56 ` Posix compliant cpu clocks V7 [0/2]: Rationale and test program Christoph Lameter
2004-10-12 20:19 ` Periodic posix timer support broke between 2.6.9-rc1 and 2.6.9-rc1-bk17 Christoph Lameter
2004-10-12 22:24 ` George Anzinger
2004-10-13 18:08 ` Alexander Nyberg [this message]
2004-10-13 18:11 ` Christoph Lameter
[not found] ` <B6E8046E1E28D34EB815A11AC8CA31290322B331@mtv-atc-605e--n.corp.sgi.com>
2004-10-07 4:57 ` Posix compliant cpu clocks V7 [1/2]: Kernel Patch Christoph Lameter
2004-10-07 4:59 ` Posix compliant cpu clocks V7 [2/2]: Glibc patch Christoph Lameter
2004-10-21 19:32 ` Posix compliant process clock patch for the linux arch in glibc Christoph Lameter
2004-10-01 21:57 ` [RFC] Posix compliant behavior of CLOCK_PROCESS/THREAD_CPUTIME_ID Roland McGrath
2004-10-01 23:30 ` Christoph Lameter
2004-10-04 18:48 ` RFC: Posix compliant clock_getclockcpuid(pid) to access other processes clocks Christoph Lameter
2004-10-13 16:03 Periodic posix timer support broke between 2.6.9-rc1 and Christoph Lameter
2004-10-13 17:25 ` Periodic posix timer support broke between 2.6.9-rc1 and 2.6.9-rc1-bk17 George Anzinger
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=1097690892.615.32.camel@boxen \
--to=alexn@dsv.su.se \
--cc=Ulrich.Windl@rz.uni-regensburg.de \
--cc=clameter@sgi.com \
--cc=george@mvista.com \
--cc=jbarnes@sgi.com \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=roland@redhat.com \
/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.