11-10-2008
How to interrupts work queue with signals
Hi masters,
I am doing a project to regulate network bandwidth. I am using workqueue to implement packets management (I uses kernel threads inside each of these work queue) , netfilter hooks to implement packet catcher . All my modules individually works fine . But when I run my workqueues, hence threads , my hook fn and my ioctl function doesnt work . My threads will continuesly work untill I remove the module. how can i change the code so that my hook function should exicute automatically when a packet is received and my ioctl when user application prgm did run. I am looking for some hint which I can work upon. Thanking everybody..
9 More Discussions You Might Find Interesting
1. Filesystems, Disks and Memory
I'm a freshman here and I have a simple question.
Does unix use interrupts which is like Dos? Are they the same?
Thx.:cool: (6 Replies)
Discussion started by: Frank_M
6 Replies
2. UNIX for Dummies Questions & Answers
hey i have been facing a problem,can you tell me if we can catch ctrl d in unix i have tried and sucessfully catched and disabled ctrl-c and ctrl -z but am not sure if we can do the same for CTRL-D, so got any clue mail on he forum or ...i mean c programming in Unix thats what i am working on (1 Reply)
Discussion started by: toughguy2handle
1 Replies
3. UNIX for Advanced & Expert Users
Hi,
My machine is a Unixware 7.1.3 is a files server, and I had never problem with that machine, but since two days, the machine presents slows problems, i think that the problem is te device interrupts, I had checked all and I dont found it any problem.
Any idea?
Thanks, (sorry my... (2 Replies)
Discussion started by: By_Jam
2 Replies
4. UNIX for Dummies Questions & Answers
Well, I don't know where exactly to ask this doubt so I'm asking in the newbie section. I was reading about traps and interrupts when I thought of traps as something that cease the control of the OS from the user and interrupts that cease the control yet provide support for multitasking. Am I right... (3 Replies)
Discussion started by: Legend986
3 Replies
5. UNIX for Dummies Questions & Answers
Hi all,
I am new here ,i want to know about interrupts in detail.What r
Interrupts .how they r handeled.
Thanx in adavnce. (1 Reply)
Discussion started by: vishwasrao
1 Replies
6. UNIX for Dummies Questions & Answers
Hi everybody,
this is the situation. there is a programm XYZ which opens a message queue with the key 47110815 and waits for a SIGUSR1. After receiving this signal it sends a message with type 100 and a number (as ASCII) in the message-body.
I have to write a prog which frist sends the... (1 Reply)
Discussion started by: daredevil82m
1 Replies
7. Programming
Hi. I have a program whose job it is to manage 15 child processes. Sometimes these children die (sometimes deliberately other times with a SEGV). This causes a SIGCHLD to be sent to my program which uses waitpid() in the signal handler to gather information and, in most cases, restart the child.... (3 Replies)
Discussion started by: jrichemont
3 Replies
8. Infrastructure Monitoring
Hi Gurus,
I have a situation runing my ETL tools on the below server. The throughput while processing data is coming very low. When i tried to analyse the CPU stats i got colleceted the mpstat.
Server Physical Host Name *********com
IP**.***.**
OS Type Linux
OS Classlinux red hat... (3 Replies)
Discussion started by: r_t_1601
3 Replies
9. UNIX for Dummies Questions & Answers
Hi folks!
I have been reading Vahalia's Unix Internals book, which states the following in the chapter dedicated to signals:
Given that, my understanding is that processes running in user mode don't become aware of signals until they switch to kernel mode, where the issig() function is called... (3 Replies)
Discussion started by: Tru69
3 Replies
LEARN ABOUT NETBSD
workqueue_enqueue
WORKQUEUE(9) BSD Kernel Developer's Manual WORKQUEUE(9)
NAME
workqueue -- simple do-it-in-thread-context framework
SYNOPSIS
#include <sys/workqueue.h>
int
workqueue_create(struct workqueue **wqp, const char *name, void (*func)(struct work *, void *), void *arg, pri_t prio, int ipl, int flags);
void
workqueue_enqueue(struct workqueue *wq, struct work *wk, struct cpu_info *ci);
void
workqueue_destroy(struct workqueue *wq);
DESCRIPTION
The workqueue utility routines are provided to defer work which is needed to be processed in a thread context.
workqueue_create() creates a workqueue. It takes the following arguments:
wqp Specify where to store the created workqueue.
name The name of the workqueue.
func The function to be called for each work.
arg An argument to be passed as a second argument of func.
prio The priority level for the worker threads.
ipl The highest IPL at which this workqueue is used.
flags The value of 0 indicates a standard create operation, however the following flags may be bitwise ORed together:
WQ_MPSAFE Specifies that the workqueue is multiprocessor safe and does its own locking, otherwise the kernel lock will be held while
work will be processed.
WQ_PERCPU Specifies that the workqueue should have a separate queue for each CPU, thus the work could be enqueued on concrete CPUs.
workqueue_enqueue() enqueues the work wk into the workqueue wq.
If the WQ_PERCPU flag was set on workqueue creation, the ci argument may be used to specify the CPU on which the work should be enqueued.
Also it may be NULL, then work will be enqueued on the current CPU. If WQ_PERCPU flag was not set, ci must be NULL.
The enqueued work will be processed in a thread context. A work must not be enqueued again until the callback is called by the workqueue
framework.
workqueue_destroy() destroys a workqueue and frees associated resources. The caller should ensure that the workqueue has no work enqueued
beforehand.
RETURN VALUES
workqueue_create() returns 0 on success. Otherwise, it returns an errno(2).
CODE REFERENCES
The workqueue subsystem is implemented within the file sys/kern/subr_workqueue.c.
SEE ALSO
callout(9), condvar(9), kthread(9), softint(9)
BSD
October 24, 2011 BSD