Problem: I have timer(s) running, upon expiration of timer(s) certain function needs to be invoked. Output: There is a segfault inside Hndlr() function As per man page of sigevent, it says, SIGEV_THREAD – Notify the process by invoking sigev_notify_function “as if” it were the start function of a new thread. (Among the implementā tation possibilities here are that each timer
Tag: timer
Why does a timerfd periodic Linux timer expire a little before than expected?
I am using a Linux periodic timer, in particular, timerfd, which I set to expire periodically, for instance, every 200 ms. I noticed, however, that the timer seems to expire, sometimes, a little before with respect to the timeout I set. In particular, I’m using the following C code to perform a simple test: After compiling it with gcc: I’m
timer using timerfd_create() and timerfd_settime() continually expires even though interval is set to zero
Here is the stripped-down code. The timer expires(reported by epoll_wait) in time but even though interval is set to zero, epoll_wait continually triggers a ready-to-read event (EPOLLIN) for the timer fd. Should it not be triggered just once as interval is set to 0? Answer epoll, poll(), select(), etc. will tell you if the timer descriptor is readable without blocking.
Adaptation from old init_timer to new timer_setup
I have been trying to port a driver from 2.6 to 4.X without support from the original board manufacturer (and very limited Linux experience). The original driver uses init_timer() and passes in a pointer to the timer_list structure. That timer_list structure’s data element was set to a pointer to another memory structure and the function element set to the callback.
Wait for signal, then continue execution
I am trying to make a program that suspends its execution until a signal arrives. Then, after the signal arrives I just want my code to continue its execution from where it was. I don’t want it to execute a function handler or whatsoever. Is there a simple way of doing this? I have been struggling for a week or
weird issue with time function in C
I’m trying to get my Beaglebone Green to read an input from a certain pin, and when that pin sees a 1 to 0 transition (defined in pulse()), then it should set a timer. I want to make my timer like this: In idle, the timer is set to a TIMER_HOLD value (900000) To start the timer, I set it
Is it possible to set timer with local time in Linux?
I’m on my IOT project with raspberry pi, And I want to raise event in certain time like 06:00:00 and 12:00:00 But I can’t do this with jiffies because jiffies only counts the time since the os started. I have an Idea : I may raise interrupt every second and check local time, compare it with certain time. But I
POSIX timer hangs up after a few runs
I have created a POSIX timer in the main function of my program. Each thread of the main program is setting the timer so that on expiry of it, the signal handler update one variable which awakes the next thread of the same process. The timer is working fine most of the time but not always. It sometimes completes the
How to achieve accurate timer in linux kernel
When i write a infrared remote control driver, I have to control delay accurate time during enabling and disabling PWM. At first i used udelay() function in kernel, but i found it’s not accurate at all as i said in another post AFAIK, other timeout functions provided by kernel can’t provide accurate time because of scheduler, when timeout, kernel still
How to change kernel timer frequency?
I wanted to change kernel option on kernel timer frequency. So i found this, it is saying that i can change the configuration via /boot/config-‘uname -r’ (And i also found the post saying unless it builds a tickless kernel – CONFIG_NO_HZ=y i couldn’t change timer frequency but mine is set to CONFIG_NO_HZ=y) And it is also mentioning how to calculate