unix_master(9r)unix_master(9r)NAME
unix_master - General: Forces execution onto the master CPU
SYNOPSIS
void unix_master(
void );
ARGUMENTS
None
DESCRIPTION
The unix_master routine forces execution of the kernel thread onto the master CPU (also called the boot CPU). In other words, unix_master
binds the kernel thread to the master CPU. To release the kernel thread from the bind to the master CPU, call the unix_release routine. You
can make recursive calls to unix_master as long as you make an equal number of calls to unix_release.
The unix_master routine provides another way besides the simple and complex lock routines to make a kernel module symmetric multiprocessing
(SMP) safe. Although calling unix_master is not optimal for performance on an SMP CPU, it does provide third-party kernel module writers
with an easy way to make their modules SMP safe without using the lock routines.
NOTES
Device drivers should not directly call the unix_master and unix_release routines. One exception to this recommendation is when you want a
device driver's kernel threads to run only on the master CPU. This situation occurs when your driver creates and starts its own kernel
threads and you set the d_funnel member of the associated dsent structure to the value DEV_FUNNEL. In this case, each kernel thread must
call unix_master once to ensure that the kernel thread runs only on the master CPU. Remember to make a corresponding call to unix_release.
CAUTIONS
To avoid deadlock, do not call the unix_master routine under the following circumstances: When holding a simple lock In the driver's inter-
rupt service routine
RETURN VALUES
None
SEE ALSO
routines: unix_release(9r)unix_master(9r)
Check Out this Related Man Page
simple_lock_terminate(9r)simple_lock_terminate(9r)NAME
simple_lock_terminate - General: Terminates, using a simple lock
SYNOPSIS
#include <kern/lock.h>
void simple_lock_terminate(
simple_lock_t slock_ptr );
ARGUMENTS
Specifies a pointer to a simple lock structure. You can declare this simple lock structure by using the decl_simple_lock_data routine.
DESCRIPTION
The simple_lock_terminate routine determines that the kernel module is done using the simple lock permanently. The kernel module must free
the simple lock (that is, the kernel module does not hold the lock) before calling simple_lock_terminate. The kernel module must not refer-
ence the specified simple lock after calling simple_lock_terminate.
NOTES
You must call simple_lock_init (once only) prior to calling simple_lock_terminate to initialize the simple lock structure for the resource.
A resource, from the kernel module's standpoint, is data that more than one kernel thread can manipulate. You can store the resource in
global variables and in data structure members.
RETURN VALUES
None
FILES SEE ALSO
Routines: decl_simple_lock_data(9r), simple_lock_init(9r), simple_lock_try(9r), simple_unlock(9r)
Data Structures: slock(9s)simple_lock_terminate(9r)
Hello,
Trying to solve a nic driver problem on RH linux with kernel 2.4.20-8. I seems that make it is looking in the place for the nic driver. Here is what I have tried and the result errors. Please ignore typos.
modeprobe tulip
/lib/modules/2.4.20-8/kernel/drivers/net/tulip/tulip.o:... (0 Replies)
Hi all,
Recently, i am monitoring my Solaris 9 system and found that there are a lot of kernel invocation, "top" reports about 20% CPU usage on kernel, during the period. But i am not sure how i can find out which application costs the most kernel functions and the proportion.
Such... (2 Replies)
Hi All,
I try to compile new kernel in FC5.
New kernel version - 2.6.20.21
Operating System - Fedora 5
I have followed these steps,
make menuconfig
make
make modules
make modules_install
make install
Then i have changed the grub.cong and reboot the system with new kernel.
The... (0 Replies)
I write kernel module with kernel threads using
linux/kthread.h on 2.6.* kernel
I tried to passing data between two kernel threads
with data argument of kthread_run( fun, data , NAME );
but this is not work I dont know why. I tried many possibility
and nothing works.
So I thought that... (0 Replies)
There might be some problem with my server,
because every morning at 7, it's performance become bad with no DB extra deadlock.
But I just couldn't figure it out.
Please give me some advise, thanks a lot...
According to the CPU performace chart, Daily CPU loading Maximum: 42 %, Average:36%.
... (8 Replies)
Hi,all:
I run my program which consists of one kernel module and one user mode process on a dual core server. The problem here is the kernel module consumes 100% of one core while the user mode process only consumes 10% of the other core, is there any solution that I can assign some computing... (1 Reply)
Hi I m using redhat 6 with kernel release
2.6.32-71.el6.i686
I have downloaded latest kernel 3.3.1 from kernel.org .
when i run make module_install i get below error.
# make modules_install
/usr/src/kernels/linux-3.3.1/scripts/depmod.sh: line 37: 11314 Killed ... (0 Replies)
Hi gud day,
I would like to ask if possible to load the driver i compiled module without installing it in the ubuntu-kernel-distro/updates* or simple not executing "make install". what i mean is i compile the compat wireless driver using make and i want to try to load
on the system without... (1 Reply)
I am currently have Centos 5.5 which consumes more CPU waiting for Kcrypt process. Later came to know that kcrypt is single threaded and hence consumes one CPU, results in performance degradation.
Does any one really knows/practically experimented multithread of Kcryptd process with any of... (1 Reply)
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)
In my oracle db server we have 15 cores (power8). The output of the vmstat is as below.
System configuration: lcpu=128 mem=208800MB ent=16.00
kthr memory page faults cpu time
-----------... (18 Replies)