tq_timer routines and struct packet_type callbacks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



kernel 2.4.16 on a single processor machine.

I register a callback with dev_add_pack() to analyze socket buffers in a
kernel module.
I register a routine in a task queued to tq_timer.
The timer routine every n ticks writes on a free slot of a ring buffer
(linked list).
The same ring buffer is accessed by the net device callback (it writes too).
The ring buffer is read (therefore freed) by a task queued with
schedule_task.

It seems that the net device callback and the timer routine run
"concurrently" or one interrupts the other.
In fact, in either function, checking the current slot given by the ring
buffer, sometimes it is partially used by the other,
e.g. the next free slot is not free, it's used...
Do I need to use some synchronization mechanism between the two routines?
Are they like interrupts?

Thanks in advance for help and explanations.

Roberto.

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.kernelnewbies.org/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux