Skip to content

Tag: timer

How to use SIGEV_THREAD, sigevent for linux-timer(s) expiration handling in C?

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

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